WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::apps::viscousmhd::BdependentDiffusivityFlux Class Reference

B-dependent diffusivity for MHD. More...

#include <bdependent_diffusivity_flux.h>

Inheritance diagram for wxm::apps::viscousmhd::BdependentDiffusivityFlux:
WmApplication wxm::app_base

Detailed Description

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

Public Member Functions

 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
 
- 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 _charge
 Charge of species.
 
real _mass
 Mass of species.
 
real _B_ref
 Reference magnetic field for B-dependent diffusivities.
 
real _n_min
 Minimum density for B-dependent diffusivities.
 
real _D_min
 Minimum diffusivity for B-dependent diffusivities.
 
real _D_mom0
 Momentum diffusivity coefficient for B=0.
 
real _D_therm0
 Thermal diffusivity coefficient for B=0.
 
real _min_density
 Density floor.
 
real _min_pressure
 Pressure floor.
 
real _cfl_diff
 
std::string _gradient_method
 
std::string _coordinate_system
 
int _radial_index
 
int _ir
 
int _ith
 
int _iz
 
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
 

Constructor & Destructor Documentation

◆ BdependentDiffusivityFlux()

wxm::apps::viscousmhd::BdependentDiffusivityFlux::BdependentDiffusivityFlux ( )

◆ ~BdependentDiffusivityFlux()

wxm::apps::viscousmhd::BdependentDiffusivityFlux::~BdependentDiffusivityFlux ( )
override

Member Function Documentation

◆ getAuxiliaryVariableIndexes()

const std::vector< int > & wxm::apps::viscousmhd::BdependentDiffusivityFlux::getAuxiliaryVariableIndexes ( int  flag) const
inlineoverridevirtual

Reimplemented from WmApplication.

◆ getInputVariableIndexes()

const std::vector< int > & wxm::apps::viscousmhd::BdependentDiffusivityFlux::getInputVariableIndexes ( int  flag) const
inlineoverridevirtual

Reimplemented from wxm::app_base.

◆ getOutputVariableIndexes()

const std::vector< int > & wxm::apps::viscousmhd::BdependentDiffusivityFlux::getOutputVariableIndexes ( int  flag) const
inlineoverridevirtual

Reimplemented from wxm::app_base.

◆ internal_flux()

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

Reimplemented from WmApplication.

◆ numerical_flux()

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::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

Reimplemented from WmApplication.

◆ numerical_flux_ip()

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::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

◆ numerical_flux_ldg()

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::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

◆ setup()

void wxm::apps::viscousmhd::BdependentDiffusivityFlux::setup ( const WxCryptSet wxc)
overridevirtual

Reimplemented from WmApplication.

Member Data Documentation

◆ _aux_variables

std::vector<int> wxm::apps::viscousmhd::BdependentDiffusivityFlux::_aux_variables
protected

◆ _B_ref

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_B_ref
protected

Reference magnetic field for B-dependent diffusivities.

◆ _cfl_diff

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_cfl_diff
protected

◆ _charge

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_charge
protected

Charge of species.

◆ _coordinate_system

std::string wxm::apps::viscousmhd::BdependentDiffusivityFlux::_coordinate_system
protected

◆ _D_min

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_D_min
protected

Minimum diffusivity for B-dependent diffusivities.

◆ _D_mom0

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_D_mom0
protected

Momentum diffusivity coefficient for B=0.

◆ _D_therm0

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_D_therm0
protected

Thermal diffusivity coefficient for B=0.

◆ _flux_tensor

std::vector<std::vector<real> > wxm::apps::viscousmhd::BdependentDiffusivityFlux::_flux_tensor
mutableprotected

◆ _gas_gamma

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_gas_gamma
protected

Adiabatic Index.

◆ _gradient_method

std::string wxm::apps::viscousmhd::BdependentDiffusivityFlux::_gradient_method
protected

◆ _input_variables

std::vector<int> wxm::apps::viscousmhd::BdependentDiffusivityFlux::_input_variables
protected

◆ _ir

int wxm::apps::viscousmhd::BdependentDiffusivityFlux::_ir
protected

◆ _ith

int wxm::apps::viscousmhd::BdependentDiffusivityFlux::_ith
protected

◆ _iz

int wxm::apps::viscousmhd::BdependentDiffusivityFlux::_iz
protected

◆ _mass

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_mass
protected

Mass of species.

◆ _min_density

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_min_density
protected

Density floor.

◆ _min_pressure

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_min_pressure
protected

Pressure floor.

◆ _n_min

real wxm::apps::viscousmhd::BdependentDiffusivityFlux::_n_min
protected

Minimum density for B-dependent diffusivities.

◆ _output_variables

std::vector<int> wxm::apps::viscousmhd::BdependentDiffusivityFlux::_output_variables
protected

◆ _radial_index

int wxm::apps::viscousmhd::BdependentDiffusivityFlux::_radial_index
protected

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