B-dependent diffusivity for MHD.
This app is generally intended to be used instead of /src/apps/mhd/viscousmhd/wmapplication_intraspecies_collisions_mhd.h/cc although they could be "superimposed" if the user had some specific reason to do so.
The resulting diffusivities have B dependence similar to Braginskii viscous and thermal transport, with 1/B^2 dependence as seen in, e.g., Eqs. 2.12 and 2.13 of [Braginskii RPP Vol 1, 1965], which correspond to perpendicular thermal conductivities in the magnetized limit. See also discussion of a similar form for perpendicular transport in [Meier, UW dissertation (2011), Sec. 1.4].
For the associated cylindrical source term, see BdependentDiffusivityCylSource.
If the _B_ref variable is set to a value > 0, then diffusivity will be set as D = (D0 - D1) / ((B / B0)**2 + 1) + D1, where D represents either momentum or thermal diffusivity. This form leads to D --> D0 at small B, and --> D1 at large B. Generally, D1 < D0 is recommended.
If _B_ref is set to 0, D = D0.
The diffusivity value for momentum is converted to a dynamic viscosity (mu) when evaluating the stress tensor, and likewise thermal diffusivity is converted to a thermal conductivity (kappa) when evaluating thermal conduction.
Additional notes:
- The value of D0 is set by either _const_Dmom or _const_Dtherm.
- The value of D1 is set by the _D_min variable.
- The _n_min variable establishes a minimum density below which D is set to D1, and above which the B-dependent viscosity is applied.
Warpy constructor: warpy.apps.mhd.viscousmhd.viscousmhd.bdependent_diffusivity_flux
|
| BdependentDiffusivityFlux () |
|
| ~BdependentDiffusivityFlux () override |
|
void | setup (const WxCryptSet &wxc) override |
|
const std::vector< int > & | getInputVariableIndexes (int flag) const override |
|
const std::vector< int > & | getAuxiliaryVariableIndexes (int flag) const override |
|
const std::vector< int > & | getOutputVariableIndexes (int flag) const override |
|
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 |
|
real | internal_flux (const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override |
|
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 |
|
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 |
|
| 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 |
|