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

MUSCLEulerModel

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.CompressibleEulerModel

CompressibleEulerModel 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