WARPXM v1.10.0
|
An artificial dissipation limiter for MHD that uses divergence of velocity as a shock sensor. More...
#include <artificial_dissipation.h>
An artificial dissipation limiter for MHD that uses divergence of velocity as a shock sensor.
Similar to Von Neumann and Richtmyer, J. Appl. Phys. 21, 232 (1950) dissipation may be added to continuity, momentum, and energy equations.
See writeup document for details.
Associated cylindrical source term is ArtificialDissipationCylSource.
Warpy constructor: warpy.apps.mhd.imhd.imhd.artificial_dissipation
Public Member Functions | |
ArtificialDissipation () | |
Constructor. | |
~ArtificialDissipation () override | |
Destructor. | |
void | setup (const WxCryptSet &wxc) override |
Setup. | |
const std::vector< int > & | getInputVariableIndexes (int flag) const override |
Get input variable indices. | |
const std::vector< int > & | getAuxiliaryVariableIndexes (int flag) const override |
Get auxiliary variable indices. | |
const std::vector< int > & | getOutputVariableIndexes (int flag) const override |
Get 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 wmapplication 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 wmapplication parent. | |
real | numerical_flux_ldg (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const |
Specific Numerical flux definition for local discontinuous galerkin method Called by the numerical flux function. | |
real | numerical_flux_ip (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const |
Specific Numerical flux definition for interior penalty method Called by the numerical flux function. | |
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 |
Protected Attributes | |
real | _gas_gamma |
Adiabatic Index. | |
real | _mass |
Mass of species. | |
real | _charge |
Ion charge of species. | |
real | _min_density |
Density floor. | |
real | _min_pressure |
Pressure floor. | |
real | _coeff_dens |
Coefficient on artificial diffusivity for density. | |
real | _coeff_mom |
Coefficient on artificial diffusivity for moment. | |
real | _coeff_heat |
Coefficient on artificial diffusivity for heat flux. | |
real | _diff_cap |
Maximum diffusivity. | |
bool | _use_v_anom |
If True will convect momentum and energy consistent with an anomalous velocity associated with artificial density diffusion. | |
real | _cfl_diff |
Factor in dt calculation for diffusion. | |
real | _dx_cut |
Minimum value for dx_eff. | |
bool | _is_cyl |
int | _ir |
int | _ith |
int | _iz |
std::string | _gradient_method |
gradient calculation method ("ip" or "ldg") | |
std::vector< int > | _input_variables |
std::vector< int > | _aux_variables |
std::vector< int > | _output_variables |
std::vector< std::vector< real > > | _flux_tensor |
Protected Attributes inherited from WmApplication | |
std::string | _app_name |
WxLogStream | _debStrm |
std::vector< int > | _allowedFlags |
std::vector< std::string > | _onBoundaries |
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 |
wxm::apps::mhd::limiters::ArtificialDissipation::ArtificialDissipation | ( | ) |
Constructor.
|
override |
Destructor.
|
inlineoverridevirtual |
Get auxiliary variable indices.
int | flag - usually flag is given like flux type but usually not checked |
Reimplemented from WmApplication.
|
inlineoverridevirtual |
Get input variable indices.
int | flag - usually flag is given like flux type but usually not checked |
Reimplemented from wxm::app_base.
|
inlineoverridevirtual |
Get output variable indices.
int | flag - usually flag is given like flux type but usually not checked |
Reimplemented from wxm::app_base.
|
overridevirtual |
Internal flux redefinition from wmapplication parent.
const | pointer to q vars |
const | pointer to aux vars |
const | pointer to solverVariables_t struct |
2D | vector of internal flux to be modified by this function |
Reimplemented from WmApplication.
|
overridevirtual |
Numerical flux redefinition from wmapplication parent.
const | pointer to left q vars |
const | pointer to right q vars |
const | pointer to left aux vars |
const | pointer to right aux vars |
const | pointer to solverVariables_t struct |
pointer | to numerical flux array to be modified by this function |
Reimplemented from WmApplication.
real wxm::apps::mhd::limiters::ArtificialDissipation::numerical_flux_ip | ( | const real * | q_l, |
const real * | q_r, | ||
const real * | aux_l, | ||
const real * | aux_r, | ||
const solverVariables_t * | pFV, | ||
real * | numericalFlux | ||
) | const |
Specific Numerical flux definition for interior penalty method Called by the numerical flux function.
const | pointer to left q vars |
const | pointer to right q vars |
const | pointer to left aux vars |
const | pointer to right aux vars |
const | pointer to solverVariables_t struct |
pointer | to numerical flux array to be modified by this function |
real wxm::apps::mhd::limiters::ArtificialDissipation::numerical_flux_ldg | ( | const real * | q_l, |
const real * | q_r, | ||
const real * | aux_l, | ||
const real * | aux_r, | ||
const solverVariables_t * | pFV, | ||
real * | numericalFlux | ||
) | const |
Specific Numerical flux definition for local discontinuous galerkin method Called by the numerical flux function.
const | pointer to left q vars |
const | pointer to right q vars |
const | pointer to left aux vars |
const | pointer to right aux vars |
const | pointer to solverVariables_t struct |
pointer | to numerical flux array to be modified by this function |
|
overridevirtual |
|
protected |
|
protected |
Factor in dt calculation for diffusion.
|
protected |
Ion charge of species.
|
protected |
Coefficient on artificial diffusivity for density.
|
protected |
Coefficient on artificial diffusivity for heat flux.
|
protected |
Coefficient on artificial diffusivity for moment.
|
protected |
Maximum diffusivity.
|
protected |
Minimum value for dx_eff.
If 0, will just use cfl grid-dependent dx metric, dx_eff = cfl * dx
|
mutableprotected |
|
protected |
Adiabatic Index.
|
protected |
gradient calculation method ("ip" or "ldg")
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Mass of species.
|
protected |
Density floor.
|
protected |
Pressure floor.
|
protected |
|
protected |
If True will convect momentum and energy consistent with an anomalous velocity associated with artificial density diffusion.
Default False.