The OhmsLawCylSource class calculates the Cylindrical Source term for the hyperresistive term of Ohm's Law:
\begin{align*}
E + \nu \nabla^{2} J = 0
\mathrm{.}
\end{align*}
- See also
- Latex Documentation: MHD Cylindrical Source Terms File
-
Warpy constructor: warpy::apps::mhd::hallmhd::hyperresistivity::hyperresistivity::ohms_law_cyl_source
We solve for \(E\) by formulatiing the equation as \(E_{i}
+ d/dx_{j} \left(F_{ij}\right) = S_{ij}\) where \(F_{ij} = \nu \nabla J_{ij} = \nu
dJ_{i}/dx_{j}\) and \(S_{ij}\) are cylindrical source terms.
This is used in for wxm::dfem::variable_adjuster::auxiliary_variables::DivergenceIntegralByParts to calculate E which can then feed into MHD equations via DG calculation using wxm::apps::hallmhd::hyperresistivity::ElectricFieldEffect and wxm::apps::hallmhd::hyperresistivity::ElectricFieldEffectCylSource
The source terms are the cylindrical terms arising from the divergence of a tensor in cylindrical coordinates, assuming axisymmetry (d/dtheta = 0). These terms are:
\begin{align*}
\left(\nabla \cdot \overline{\overline{F}}\right)_{r} = \frac{F_{rr} -
F_{\theta\theta}}{r}
\mathrm{,}
\end{align*}
\begin{align*}
\left(\nabla \cdot \overline{\overline{F}}\right)_{\theta} = \frac{F_{r\theta} +
F_{\theta r}}{r}
\mathrm{,}
\end{align*}
\begin{align*}
\left(\nabla \cdot \overline{\overline{F}}\right)_{z} = \frac{F_{rz}}{r}
\mathrm{.}
\end{align*}
NOTE: The source term is on the RHS of the equation while the Flux is on the LHS. So the Cylindrical source terms arising from the LHS fluxes have to be negated because they are put on the RHS.
|
| OhmsLawCylSource () |
| Constructor.
|
|
| ~OhmsLawCylSource () 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 | source (const real *q, const real *aux, const elementGeometry_t *pEG, real *source) const override |
| Source definition.
|
|
| 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 |
|