dragonfly_sim.core.MUSCL_Euler_model
Euler equations at p = 0 with MUSCL reconstruction: second-order inviscid fluxes.
The plain p = 0 CompressibleEulerModel evaluates the HLL flux on the cell averages, a first-order scheme whose numerical dissipation dominates the drag of a wing (it scales with the wetted area). MUSCLEulerModel installs the same Green-Gauss reconstruction the RANS model uses (core/reconstruction.py) on the Euler model: the interior-facet traces become U_K + G_K . (x_f - x_K), the gradient G is condensed out of Newton exactly, and the adjoint and shape derivatives include the chain terms through G and the cell centres.
The solver defaults are the RANS model’s: pseudo-transient continuation from the free stream (CFL0 5), one Newton step per pseudo step, FGMRES on the exact condensed Jacobian, preconditioned with ASM(1)/ILU(2) of its compact, gradient-frozen part (jacobian_mode “compact_pc”).
Use it through DG_windtunnel_model(model_class=MUSCLEulerModel, model_kwargs={…}).
Classes
CompressibleEulerModel with a MUSCL (Green-Gauss) reconstruction. |
Module Contents
- class dragonfly_sim.core.MUSCL_Euler_model.MUSCLEulerModel(mesh, poly_order=0, gamma=1.4, limiter=None, limiter_eps=0.01, jacobian_mode='compact_pc', use_ptc=True, cfl0=5.0)
Bases:
dragonfly_sim.core.Euler_model.CompressibleEulerModelCompressibleEulerModel with a MUSCL (Green-Gauss) reconstruction.
- limiter: None (unlimited MUSCL, the RANS default) or “vanalbada” (smooth,
so the exact Jacobian survives; see GreenGaussReconstruction).
- limiter_eps: the van Albada smoothing parameter, relative to the
free-stream scale of each state component.
jacobian_mode: what Newton’s linear solve uses (utils/gradient_condensation.py). use_ptc, cfl0: pseudo-transient continuation from the free stream.
- _limiter_scales()
Free-stream magnitude of each state component (van Albada limiter).
- define_elements_functionspaces()
- set_up_solver()
- asm_overlap = 1
- ilu_levels = 2
- jacobian_mode = 'compact_pc'
- krylov_type = 'fgmres'
- limiter = None
- limiter_eps = 0.01
- ptc_settings
- reconstruction = None
- use_ptc = True