WARPXM v1.10.0
Loading...
Searching...
No Matches
pcmaxwell.h
Go to the documentation of this file.
1#ifndef WXM_APPS_PCMAXWELL_H
2#define WXM_APPS_PCMAXWELL_H
3
4// WarpM includes
6
7namespace wxm
8{
9namespace apps
10{
11namespace pcmaxwell
12{
13
24{
25public:
27
28 ~pcmaxwell_t() override;
29
30 void setup(const WxCryptSet& wxc) override;
31
32 const std::vector<int>& getInputVariableIndexes(int flag) const override
33 {
34 return _variables;
35 }
36 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
37 {
39 }
40 const std::vector<int>& getOutputVariableIndexes(int flag) const override
41 {
42 return _variables;
43 }
44
46 const real* q_r,
47 const real* aux_l,
48 const real* aux_r,
49 const solverVariables_t* pFV,
50 real* numericalFlux) const override;
52 const real* aux,
53 const solverVariables_t* pSV,
54 std::vector<std::vector<real>>& internalFlux) const override;
55
56protected:
57 std::string _coordinate_system;
58 std::string _gradient_method;
61
63 int _ir, _ith, _iz; // r, theta, and z indices
64
65 std::vector<int> _variables;
66 std::vector<int> _gradient_variables;
67
68 // flux tensor is used to calculate left and right fluxes for numerical flux
69 // mutable because this will continuously be changed upon call, but functions are
70 // labled const this is just a helper vector this behavior should be justified.
71 mutable std::vector<std::vector<real>> _flux_tensor;
72
73 // specific calls
75 const real* aux,
76 const solverVariables_t* pSV,
77 std::vector<std::vector<real>>& internalFlux) const;
78
80 const real* aux,
81 const solverVariables_t* pSV,
82 std::vector<std::vector<real>>& internalFlux) const;
83
85 const real* q_r,
86 const real* aux_l,
87 const real* aux_r,
88 const solverVariables_t* pFV,
89 real* numericalFlux) const;
90
91private:
92 pcmaxwell_t& operator=(const pcmaxwell_t& var);
93 pcmaxwell_t(const pcmaxwell_t& var);
94};
95} // namespace pcmaxwell
96} // namespace apps
97} // namespace wxm
98
99#endif // WXM_APPS_PCMAXWELL_H
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
Applies the parabolically cleaned Maxwell equations.
Definition: pcmaxwell.h:24
real internal_flux_cylindrical(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const
int _ith
Definition: pcmaxwell.h:63
real internal_flux_cartesian(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Definition: pcmaxwell.h:36
real _chi_e
Definition: pcmaxwell.h:59
int _iz
Definition: pcmaxwell.h:63
std::string _coordinate_system
Definition: pcmaxwell.h:57
std::vector< int > _variables
Definition: pcmaxwell.h:65
real _chi_b
Definition: pcmaxwell.h:60
real internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
void setup(const WxCryptSet &wxc) 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
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Definition: pcmaxwell.h:40
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: pcmaxwell.h:32
std::vector< std::vector< real > > _flux_tensor
Definition: pcmaxwell.h:71
std::string _gradient_method
Definition: pcmaxwell.h:58
int _radial_index
Definition: pcmaxwell.h:62
int _ir
Definition: pcmaxwell.h:63
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
std::vector< int > _gradient_variables
Definition: pcmaxwell.h:66
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