WARPXM v1.10.0
Loading...
Searching...
No Matches
electric_field_effect.h
Go to the documentation of this file.
1#pragma once
2
3// WarpM includes
5
6namespace wxm
7{
8namespace apps
9{
10namespace hallmhd
11{
12namespace hyperresistivity
13{
14
32{
33public:
38
43
48 void setup(const WxCryptSet& wxc) override;
49
55 const std::vector<int>& getInputVariableIndexes(int flag) const override
56 {
57 return _inputVariables;
58 }
59
65 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
66 {
67 return _auxVariables;
68 }
69
75 const std::vector<int>& getOutputVariableIndexes(int flag) const override
76 {
77 return _outputVariables;
78 }
79
89 const real* aux,
90 const solverVariables_t* pSV,
91 std::vector<std::vector<real>>& internalFlux) const override;
92
104 const real* q_r,
105 const real* aux_l,
106 const real* aux_r,
107 const solverVariables_t* pFV,
108 real* numericalFlux) const override;
109
110protected:
111 std::vector<int> _inputVariables;
112 std::vector<int> _auxVariables;
113 std::vector<int> _outputVariables;
117
118 // flux tensor is used to calculate left and right fluxes for numerical flux
119 // mutable because this will continuously be changed upon call, but functions are
120 // labled const.
121 // this is just a helper vector so this behavior should be justified.
122 mutable std::vector<std::vector<real>> _flux_tensor;
123};
124
125} // namespace hyperresistivity
126} // namespace hallmhd
127} // namespace apps
128} // namespace wxm
Base Class for physics applications.
Definition: wmapplication.h:93
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
The ElectricFieldEffect class takes an Electric field term in Ohms Law as defined by the user and app...
Definition: electric_field_effect.h:32
real _omct
Definition: electric_field_effect.h:115
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Get auxiliary variable indices.
Definition: electric_field_effect.h:65
const std::vector< int > & getInputVariableIndexes(int flag) const override
Get input variable indices.
Definition: electric_field_effect.h:55
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 definition.
std::vector< int > _inputVariables
Definition: electric_field_effect.h:111
std::vector< int > _outputVariables
Definition: electric_field_effect.h:113
real _hyperresistive_nu
Definition: electric_field_effect.h:114
std::vector< int > _auxVariables
Definition: electric_field_effect.h:112
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Get output variable indices.
Definition: electric_field_effect.h:75
real _cfl_hyperdiff
Definition: electric_field_effect.h:116
real internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
Internal flux definition.
void setup(const WxCryptSet &wxc) override
Setup.
std::vector< std::vector< real > > _flux_tensor
Definition: electric_field_effect.h:122
list apps
Definition: shock_tube.py:33
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
Definition: wmapplication.h:38
#define real
Definition: wmoclunstructuredreconstruction.h:11