WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::apps::five_moment::limiters::q_h_artificial_dissipation Class Reference

Implements artificial viscosity and heat flux for the 5 moment Euler/Navier Stokes equations. More...

#include <q_h_artificial_dissipation.h>

Inheritance diagram for wxm::apps::five_moment::limiters::q_h_artificial_dissipation:
WmApplication wxm::app_base

Detailed Description

Implements artificial viscosity and heat flux for the 5 moment Euler/Navier Stokes equations.

This model uses artificial heat flux (H) on the shock/contact discontinuities and artificial viscosity (Q) on the rarefaction wave.

Parameters
Fluidfluid variables
FluidGradientGradients of fluid variables (currently must be LDG gradients)
gammagas gamma
massspecies normalized mass
multiplierConstant multiplier which scales all heat flux/viscosity coefficients by. Usually this will be 1, however in some cases there may be some geometric factors to take into account due to how WARPXM computes an effective dx vs. how the method expects and effective dx to be. This method expects the effective dx to be the n-th root of the element volume, where n is the number of dimensions.
EtaScalesWithDXtrue if this method should make the eta jump discontinuity penalty parameter be inversely proportional to the effective dx. Recommended that this be false for LDG (default).

Public Member Functions

 q_h_artificial_dissipation ()
 
 ~q_h_artificial_dissipation () override=default
 
void setup (const WxCryptSet &wxc) override
 
const std::vector< int > & getInputVariableIndexes (int flag) const override
 Grab input variable indices.
 
const std::vector< int > & getAuxiliaryVariableIndexes (int flag) const override
 Grab auxiliary variable indices.
 
const std::vector< int > & getOutputVariableIndexes (int flag) const override
 Grab output variable indices.
 
real numerical_flux (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const override
 Numerical flux redefinition from parent.
 
real internal_flux (const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
 Internal flux redefinition from parent.
 
- Public Member Functions inherited from WmApplication
 WmApplication ()
 
virtual ~WmApplication ()=default
 
virtual void setup (const WxCryptSet &wxc)
 
virtual const std::vector< int > & getAuxiliaryVariableIndexes (int flag=WMAPPLICATIONFLAG_NONE) const
 
virtual const std::vector< int > & getCrossVariableIndexes (int flag=WMAPPLICATIONFLAG_NONE) const
 
const std::vector< std::string > & getBoundaryNames () const
 
bool isOnBoundary (const std::string &boundaryName) const
 
bool has (int flag) const
 
virtual real numerical_flux (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const
 
virtual real internal_flux (const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const
 
virtual real source (const real *q, const real *aux, const elementGeometry_t *pEG, real *source) const
 
virtual void bc_q (const real *q_in, const real *aux_in, const real *aux_out, const solverVariables_t *pFV, real *q_out) const
 Boundary Condition Application which sets the boundary condition on ghost nodes.
 
virtual real bcNumericalFlux (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const
 
virtual void conserved_to_primitive (const real *q, const real *aux, real *w) const
 
virtual void primitive_to_conserved (const real *w, const real *aux, real *q) const
 
virtual void evaluate_function (const real *q, const real *aux, const solverVariables_t *pSV, real *result) const
 
virtual void bc_q_kinetic (const real *q_in, const real *aux_in, const solverVariables_t *pFV, real *q_out) const
 
std::shared_ptr< std::string > app_name ()
 
virtual const std::vector< int > & getInputVariableIndexes (int flag=0) const
 
virtual const std::vector< int > & getOutputVariableIndexes (int flag=0) const
 

Additional Inherited Members

- Public Types inherited from WmApplication
typedef Application_Variable WmApplication_Variable
 
typedef std::map< std::string, std::string > replaceMap_t
 
- Static Public Attributes inherited from wxm::app_base
static std::vector< int > empty
 
- Protected Member Functions inherited from wxm::app_base
virtual ~app_base ()=default
 
- Protected Attributes inherited from WmApplication
std::string _app_name
 
WxLogStream _debStrm
 
std::vector< int > _allowedFlags
 
std::vector< std::string > _onBoundaries
 

Constructor & Destructor Documentation

◆ q_h_artificial_dissipation()

wxm::apps::five_moment::limiters::q_h_artificial_dissipation::q_h_artificial_dissipation ( )

◆ ~q_h_artificial_dissipation()

wxm::apps::five_moment::limiters::q_h_artificial_dissipation::~q_h_artificial_dissipation ( )
overridedefault

Member Function Documentation

◆ getAuxiliaryVariableIndexes()

const std::vector< int > & wxm::apps::five_moment::limiters::q_h_artificial_dissipation::getAuxiliaryVariableIndexes ( int  flag) const
inlineoverridevirtual

Grab auxiliary variable indices.

Parameters
intflag - usually flag is given like flux type but usually not checked
Returns
vector of fluid gradient indices

Reimplemented from WmApplication.

◆ getInputVariableIndexes()

const std::vector< int > & wxm::apps::five_moment::limiters::q_h_artificial_dissipation::getInputVariableIndexes ( int  flag) const
inlineoverridevirtual

Grab input variable indices.

Parameters
intflag - usually flag is given like flux type but usually not checked
Returns
vector of fluid indices

Reimplemented from wxm::app_base.

◆ getOutputVariableIndexes()

const std::vector< int > & wxm::apps::five_moment::limiters::q_h_artificial_dissipation::getOutputVariableIndexes ( int  flag) const
inlineoverridevirtual

Grab output variable indices.

Parameters
intflag - usually flag is given like flux type but usually not checked
Returns
vector of fluid indices

Reimplemented from wxm::app_base.

◆ internal_flux()

real wxm::apps::five_moment::limiters::q_h_artificial_dissipation::internal_flux ( const real q,
const real aux,
const solverVariables_t pSV,
std::vector< std::vector< real > > &  internalFlux 
) const
overridevirtual

Internal flux redefinition from parent.

Parameters
q- conserved variables
aux- auxiliary variables
pSV- solverVariables_t object
internalFlux- the internal flux 2d vector that is calculated and output

Reimplemented from WmApplication.

◆ numerical_flux()

real wxm::apps::five_moment::limiters::q_h_artificial_dissipation::numerical_flux ( const real q_l,
const real q_r,
const real aux_l,
const real aux_r,
const solverVariables_t pFV,
real numericalFlux 
) const
overridevirtual

Numerical flux redefinition from parent.

Parameters
q_l- left node conserved variables
q_r- right node conserved variables
aux_l- left node auxiliary variables
aux_r- right node conserved variables
pFV- solverVariables_t object
numericalFlux- the numerical flux vector that is calculated and output

Reimplemented from WmApplication.

◆ setup()

void wxm::apps::five_moment::limiters::q_h_artificial_dissipation::setup ( const WxCryptSet wxc)
overridevirtual

Reimplemented from WmApplication.


The documentation for this class was generated from the following file: