WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients Class Reference

Class to set gradient variables for conducting wall for Hall MHD. More...

#include <conducting_wall_freeslip_gradients_bc.h>

Inheritance diagram for wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients:
WmApplication wxm::app_base

Detailed Description

Class to set gradient variables for conducting wall for Hall MHD.

See also
Latex Documentation: MHD BC File
Warpy constructor: warpy.apps.mhd.hallmhd.hallmhd.conducting_wall_freeslip_gradients

Conducting Wall applies:

\begin{align*} \boldsymbol{\hat{n}} \cdot \boldsymbol{B} =& 0 \end{align*}

\begin{align*} \boldsymbol{\hat{n}} \cdot \boldsymbol{v} =& 0 \end{align*}

\begin{align*} \boldsymbol{\hat{n}} \times \boldsymbol{E} =& 0 \end{align*}

where

\begin{align} \boldsymbol{E} =& -\boldsymbol{v}\times\boldsymbol{B} + \frac{1}{n_{\mathrm{e}}}\left(\boldsymbol{j}\times\boldsymbol{B} - \frac{1}{\left(\omega_{c}\tau\right)}\nabla p_{\mathrm{e}}\right) + \frac{\left(\nu_{p}\tau\right)}{\left(\omega_{c}\tau\right)}\eta\boldsymbol{j} \end{align}

This leads to a condition on the tangential components of \(\boldsymbol{j}\). If we assume we are in the frame of the wall, where \(\boldsymbol{\hat{n}} = \boldsymbol{\hat{x}}\), and \(\theta \equiv \frac{p_\mathrm{e}}{p_\mathrm{i}} \rightarrow \frac{p_\mathrm{e}}{p} = \frac{\theta}{\left(\theta + 1\right)} \), this leads to

\begin{align*} j_{y} =& \frac{\left(\omega_{c}\tau\right)}{\left(\nu_{p}\tau\right)}\frac{B_{z}}{n_{\mathrm{e}}\eta}j_{x} + \frac{1}{n_{\mathrm{e}}\eta\left(\nu_{p}\tau\right)}\frac{\theta}{\left(\theta + 1\right)} \left(\nabla p\right)_{y} \end{align*}

\begin{align*} j_{z} =& -\frac{\left(\omega_{c}\tau\right)}{\left(\nu_{p}\tau\right)}\frac{B_{y}}{n_{\mathrm{e}}\eta}j_{x} + \frac{1}{n_{\mathrm{e}}\eta\left(\nu_{p}\tau\right)}\frac{\theta}{\left(\theta + 1\right)} \left(\nabla p\right)_{z} \end{align*}

Public Member Functions

 ConductingWallFreeslipGradients ()
 
 ~ConductingWallFreeslipGradients () 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
 
void bc_q (const real *q_in, const real *aux_in, const real *aux_out, const solverVariables_t *pFV, real *q_out) const override
 Boundary Condition Application which sets the boundary condition on ghost nodes.
 
- 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
 
real _skin_depth_norm
 
real _Zi
 
real _Ai
 
real _theta
 
std::vector< int > _var_idcs
 
std::vector< int > _aux_var_idcs
 
real _min_density_floor
 
real _min_pressure_floor
 
std::string _coordinate_system
 
int _radial_index
 
int _ir
 r index
 
int _ith
 theta index
 
int _iz
 z index
 
std::string _resistivity_type
 
real _max_eta
 
real _min_eta
 
real _n_vac
 
real _eta_vac
 
real _constant_resistivity_eta
 
bool _const_resistivity
 
real _omega_p_norm
 
real _lnlam
 
real _nu_p_norm
 
real _Ae_hall
 
real _Ze
 < Electron mass for Hall MHD model
 
- 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

◆ ConductingWallFreeslipGradients()

wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::ConductingWallFreeslipGradients ( )

◆ ~ConductingWallFreeslipGradients()

wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::~ConductingWallFreeslipGradients ( )
override

Member Function Documentation

◆ bc_q()

void wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::bc_q ( const real q_in,
const real aux_in,
const real aux_out,
const solverVariables_t pFV,
real q_out 
) const
overridevirtual

Boundary Condition Application which sets the boundary condition on ghost nodes.

Parameters
q_inis the q variable vector on the inside (or "internal", "interior", "left", "minus", etc.) face node of the interface on which the boundary condition is set - this is an input
aux_inis the aux variable vector on the inside (or "internal", "interior", "left", "minus", etc.) face node of the interface on which the boundary condition is set - this is an input
aux_outis the aux variable vector on the outside (or "external", "exterior", "right", "plus", etc.) face node (a.k.a ghost node) of the interface on which the boundary condition is set - this is an input
q_outis the q variable vector on the outside (or "external", "exterior", "right", "plus", etc.) face node (a.k.a ghost node) of the interface on which the boundary condition is set - this is an output - this is waht is being set

NOTE: If the boundary condition is virtual - the in and out nodes actually becomes the same: Thus q_in and q_out as well as aux_in and aux_out are actually the same internal node of the virtual subdomain. See dfem/variable_adjusters/boundary_conditions/boundary_condition.cc

Reimplemented from WmApplication.

◆ getAuxiliaryVariableIndexes()

const std::vector< int > & wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::getAuxiliaryVariableIndexes ( int  flag) const
inlineoverridevirtual

Reimplemented from WmApplication.

◆ getInputVariableIndexes()

const std::vector< int > & wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::getInputVariableIndexes ( int  flag) const
inlineoverridevirtual

Reimplemented from wxm::app_base.

◆ getOutputVariableIndexes()

const std::vector< int > & wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::getOutputVariableIndexes ( int  flag) const
inlineoverridevirtual

Reimplemented from wxm::app_base.

◆ setup()

void wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::setup ( const WxCryptSet wxc)
overridevirtual

Reimplemented from WmApplication.

Member Data Documentation

◆ _Ae_hall

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_Ae_hall
protected

◆ _Ai

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_Ai
protected

◆ _aux_var_idcs

std::vector<int> wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_aux_var_idcs
protected

◆ _const_resistivity

bool wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_const_resistivity
protected

◆ _constant_resistivity_eta

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_constant_resistivity_eta
protected

◆ _coordinate_system

std::string wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_coordinate_system
protected

◆ _eta_vac

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_eta_vac
protected

◆ _gas_gamma

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_gas_gamma
protected

◆ _ir

int wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_ir
protected

r index

◆ _ith

int wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_ith
protected

theta index

◆ _iz

int wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_iz
protected

z index

◆ _lnlam

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_lnlam
protected

◆ _max_eta

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_max_eta
protected

◆ _min_density_floor

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_min_density_floor
protected

◆ _min_eta

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_min_eta
protected

◆ _min_pressure_floor

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_min_pressure_floor
protected

◆ _n_vac

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_n_vac
protected

◆ _nu_p_norm

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_nu_p_norm
protected

◆ _omega_p_norm

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_omega_p_norm
protected

◆ _radial_index

int wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_radial_index
protected

◆ _resistivity_type

std::string wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_resistivity_type
protected

◆ _skin_depth_norm

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_skin_depth_norm
protected

◆ _theta

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_theta
protected

◆ _var_idcs

std::vector<int> wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_var_idcs
protected

◆ _Ze

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_Ze
protected

< Electron mass for Hall MHD model

◆ _Zi

real wxm::apps::hallmhd::bc::ConductingWallFreeslipGradients::_Zi
protected

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