Discontinuous Galerkin Models¶
Compressible Euler Equations¶
Grudge operators modeling compressible, inviscid flows (Euler)
Model definitions¶
- class grudge.models.euler.EulerOperator(dcoll: DiscretizationCollection, bdry_conditions=None, flux_type='lf', gamma=1.4, quadrature_tag=None)[source]¶
This operator discretizes the Euler equations:
\[\partial_t \mathbf{Q} + \nabla\cdot\mathbf{F} = 0,\]where \(\mathbf{Q}\) is the state vector containing density, momentum, and total energy, and \(\mathbf{F}\) is the vector of inviscid fluxes (see
euler_volume_flux()
)
Predefined initial conditions¶
- grudge.models.euler.vortex_initial_condition(x_vec, t=0, center=5, mach_number=0.5, epsilon=1, gamma=1.4)[source]¶
Initial condition adapted from Section 2 (equation 2) of:
K. Mattsson, M. Svärd, M. Carpenter, and J. Nordström (2006). High-order accurate computations for unsteady aerodynamics. DOI.
Helper routines and array containers¶
- class grudge.models.euler.ConservedEulerField(mass: meshmode.dof_array.DOFArray | numpy.ndarray, energy: meshmode.dof_array.DOFArray | numpy.ndarray, momentum: numpy.ndarray)[source]¶
- grudge.models.euler.conservative_to_primitive_vars(cv_state: ConservedEulerField, gamma=1.4)[source]¶
Converts from conserved variables (density, momentum, total energy) into primitive variables (density, velocity, pressure).
- Parameters:
cv_state – A
ConservedEulerField
containing the conserved variables.gamma – The isentropic expansion factor for a single-species gas (default set to 1.4).
- Returns:
A
Tuple
containing the primitive variables: (density, velocity, pressure).
- grudge.models.euler.compute_wavespeed(actx: ArrayContext, cv_state: ConservedEulerField, gamma=1.4)[source]¶
Computes the total translational wavespeed.
- Parameters:
cv_state – A
ConservedEulerField
containing the conserved variables.gamma – The isentropic expansion factor for a single-species gas (default set to 1.4).
- Returns:
A
DOFArray
containing local wavespeeds.
- grudge.models.euler.euler_volume_flux(dcoll: DiscretizationCollection, cv_state: ConservedEulerField, gamma=1.4)[source]¶
Computes the (non-linear) volume flux for the Euler operator.
- Parameters:
cv_state – A
ConservedEulerField
containing the conserved variables.gamma – The isentropic expansion factor for a single-species gas (default set to 1.4).
- Returns:
A
ConservedEulerField
containing the volume fluxes.
- grudge.models.euler.euler_numerical_flux(actx: ArrayContext, dcoll: DiscretizationCollection, tpair: TracePair, gamma=1.4, lf_stabilization=False)[source]¶
Computes the interface numerical flux for the Euler operator.
- Parameters:
tpair – A
grudge.trace_pair.TracePair
containing the conserved variables on the interior and exterior sides of element facets.gamma – The isentropic expansion factor for a single-species gas (default set to 1.4).
lf_stabilization – A boolean denoting whether to apply Lax-Friedrichs dissipation.
- Returns:
A
ConservedEulerField
containing the interface fluxes.