WARPXM v1.10.0
Loading...
Searching...
No Matches
wmapplication_hallmhd.h
Go to the documentation of this file.
1#ifndef WMAPPLICATION_HALLMHD_H
2#define WMAPPLICATION_HALLMHD_H
3
4// WarpM includes
6
7namespace wxm
8{
9namespace apps
10{
11namespace hallmhd
12{
13
25{
26public:
28
30
31 void setup(const WxCryptSet& wxc) override;
32
33 const std::vector<int>& getInputVariableIndexes(int flag) const override
34 {
35 return _inputVariables;
36 }
37 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
38 {
39 return _auxVariables;
40 }
41 const std::vector<int>& getOutputVariableIndexes(int flag) const override
42 {
43 return _outputVariables;
44 }
45 const std::vector<int>& getCrossVariableIndexes(int flag) const override
46 {
47 return _inputVariables;
48 }
49
50 // redefinition of fluxes from parent
52 const real* q_r,
53 const real* aux_l,
54 const real* aux_r,
55 const solverVariables_t* pFV,
56 real* numericalFlux) const override;
57
59 const real* q_r,
60 const real* aux_l,
61 const real* aux_r,
62 const solverVariables_t* pFV,
63 real* numericalFlux) const;
64
66 const real* q_r,
67 const real* aux_l,
68 const real* aux_r,
69 const solverVariables_t* pFV,
70 real* numericalFlux) const;
71
73 const real* q_r,
74 const real* aux_l,
75 const real* aux_r,
76 const solverVariables_t* pFV,
77 real* numericalFlux) const;
78
80 const real* aux,
81 const solverVariables_t* pSV,
82 std::vector<std::vector<real>>& internalFlux) const override;
83
84protected:
87 // real _nu_p_norm;
88
92
93 std::vector<int> _inputVariables;
94 std::vector<int> _auxVariables;
95 std::vector<int> _outputVariables;
96
97 std::string _gradient_method;
98
101
104 int _ir, _ith, _iz; // r, theta, and z indices
105
108 // flux tensor is used to calculate left and right fluxes for numerical flux
109 // mutable because this will continuously be changed upon call, but functions are
110 // labled const.
111 // this is just a helper vector so this behavior should be justified.
112 mutable std::vector<std::vector<real>> _flux_tensor;
113
115
123private:
124 WmApplication_HALLMHD& operator=(const WmApplication_HALLMHD& var);
126};
127
128} // namespace hallmhd
129} // namespace apps
130} // namespace wxm
131
132#endif // WMAPPLICATION_HALLMHD
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
Implements Hall MHD terms that can be added to Ideal MHD.
Definition: wmapplication_hallmhd.h:25
real _skin_depth_norm
Definition: wmapplication_hallmhd.h:86
real _min_density
Definition: wmapplication_hallmhd.h:99
const std::vector< int > & getCrossVariableIndexes(int flag) const override
Definition: wmapplication_hallmhd.h:45
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
real _jxb_factor
< Weight of drift pressure energy term, default 1.
Definition: wmapplication_hallmhd.h:118
real _grad_pe_factor
< Weight of JxB term, default 1.
Definition: wmapplication_hallmhd.h:120
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: wmapplication_hallmhd.h:33
void setup(const WxCryptSet &wxc) override
real _drift_pe_factor
Definition: wmapplication_hallmhd.h:116
real _Zi
Definition: wmapplication_hallmhd.h:89
int _ith
Definition: wmapplication_hallmhd.h:104
int _ir
Definition: wmapplication_hallmhd.h:104
bool _use_rusanov_flux
Definition: wmapplication_hallmhd.h:114
real numerical_flux_rusanov(const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const
std::vector< int > _inputVariables
Definition: wmapplication_hallmhd.h:93
real internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
int _radial_index
Definition: wmapplication_hallmhd.h:103
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
std::vector< int > _outputVariables
Definition: wmapplication_hallmhd.h:95
std::vector< std::vector< real > > _flux_tensor
< Electron mass for Hall MHD model
Definition: wmapplication_hallmhd.h:112
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Definition: wmapplication_hallmhd.h:37
real _gas_gamma
Definition: wmapplication_hallmhd.h:85
std::string _coordinate_system
Definition: wmapplication_hallmhd.h:102
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
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Definition: wmapplication_hallmhd.h:41
real _min_pressure
Definition: wmapplication_hallmhd.h:100
int _iz
Definition: wmapplication_hallmhd.h:104
real _Ae_hall
Definition: wmapplication_hallmhd.h:106
std::string _gradient_method
Definition: wmapplication_hallmhd.h:97
real _Ai
Definition: wmapplication_hallmhd.h:90
std::vector< int > _auxVariables
Definition: wmapplication_hallmhd.h:94
real _theta
Definition: wmapplication_hallmhd.h:91
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