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
15{
16public:
18
19 ~pcmaxwell_t() override;
20
21 void setup(const WxCryptSet& wxc) override;
22
23 const std::vector<int>& getInputVariableIndexes(int flag) const override
24 {
25 return _variables;
26 }
27 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
28 {
30 }
31 const std::vector<int>& getOutputVariableIndexes(int flag) const override
32 {
33 return _variables;
34 }
35
37 const real* q_r,
38 const real* aux_l,
39 const real* aux_r,
40 const solverVariables_t* pFV,
41 real* numericalFlux) const override;
43 const real* aux,
44 const solverVariables_t* pSV,
45 std::vector<std::vector<real>>& internalFlux) const override;
46
47protected:
48 std::string _coordinate_system;
49 std::string _gradient_method;
52
54 int _ir, _ith, _iz; // r, theta, and z indices
55
56 std::vector<int> _variables;
57 std::vector<int> _gradient_variables;
58
59 // flux tensor is used to calculate left and right fluxes for numerical flux
60 // mutable because this will continuously be changed upon call, but functions are
61 // labled const this is just a helper vector this behavior should be justified.
62 mutable std::vector<std::vector<real>> _flux_tensor;
63
64 // specific calls
66 const real* aux,
67 const solverVariables_t* pSV,
68 std::vector<std::vector<real>>& internalFlux) const;
69
71 const real* aux,
72 const solverVariables_t* pSV,
73 std::vector<std::vector<real>>& internalFlux) const;
74
76 const real* q_r,
77 const real* aux_l,
78 const real* aux_r,
79 const solverVariables_t* pFV,
80 real* numericalFlux) const;
81
82private:
83 pcmaxwell_t& operator=(const pcmaxwell_t& var);
84 pcmaxwell_t(const pcmaxwell_t& var);
85};
86} // namespace pcmaxwell
87} // namespace apps
88} // namespace wxm
89
90#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
Definition: pcmaxwell.h:15
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:54
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:27
real _chi_e
Definition: pcmaxwell.h:50
int _iz
Definition: pcmaxwell.h:54
std::string _coordinate_system
Definition: pcmaxwell.h:48
std::vector< int > _variables
Definition: pcmaxwell.h:56
real _chi_b
Definition: pcmaxwell.h:51
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:31
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: pcmaxwell.h:23
std::vector< std::vector< real > > _flux_tensor
Definition: pcmaxwell.h:62
std::string _gradient_method
Definition: pcmaxwell.h:49
int _radial_index
Definition: pcmaxwell.h:53
int _ir
Definition: pcmaxwell.h:54
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:57
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