WARPXM v1.10.0
Loading...
Searching...
No Matches
wmapplication_resistive_diffusion.h
Go to the documentation of this file.
1#pragma once
2
3// WarpM includes
5
6namespace wxm
7{
8namespace apps
9{
10namespace rmhd
11{
12
14{
15public:
17
19
20 void setup(const WxCryptSet& wxc) override;
21
22 const std::vector<int>& getInputVariableIndexes(int flag) const override
23 {
24 return _inputVariables;
25 }
26 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
27 {
28 return _auxVariables;
29 }
30 const std::vector<int>& getOutputVariableIndexes(int flag) const override
31 {
32 return _outputVariables;
33 }
34
35 // redefinition of fluxes from parent
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;
42 // real internal_flux(const real * q, const real * aux, const
43 // elementGeometry_t * pEG, real *internalFlux[8]) const;
45 const real* aux,
46 const solverVariables_t* pSV,
47 std::vector<std::vector<real>>& internalFlux) const override;
48
49 // specific calls
51 const real* q_r,
52 const real* aux_l,
53 const real* aux_r,
54 const solverVariables_t* pFV,
55 real* numericalFlux) const;
56
58 const real* q_r,
59 const real* aux_l,
60 const real* aux_r,
61 const solverVariables_t* pFV,
62 real* numericalFlux) const;
63
64protected:
72
75
76 // std::string _imhd_numerical_flux_type; // this is the type of numerical flux you
77 // want to use (rusanov, roe, hll, hlld, etc.)
78
79 std::vector<int> _inputVariables;
80 std::vector<int> _auxVariables;
81 std::vector<int> _outputVariables;
82
83 std::string _resistivity_type;
84 std::string _gradient_method;
85
90
93
95
96 std::string _coordinate_system;
98 int _ir, _ith, _iz; // r, theta, and z indices
99
100 // flux tensor is used to calculate left and right fluxes for numerical flux
101 // mutable because this will continuously be changed upon call, but functions are
102 // labled const.
103 // this is just a helper vector so this behavior should be justified.
104 mutable std::vector<std::vector<real>> _flux_tensor;
105
106private:
108 operator=(const WmApplication_Resistive_Diffusion& var);
110};
111
112} // namespace rmhd
113} // namespace apps
114} // namespace wxm
115
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: wmapplication_resistive_diffusion.h:14
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Definition: wmapplication_resistive_diffusion.h:30
void setup(const WxCryptSet &wxc) override
real _Ai
Definition: wmapplication_resistive_diffusion.h:69
real _omega_p_norm
Definition: wmapplication_resistive_diffusion.h:68
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Definition: wmapplication_resistive_diffusion.h:26
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< std::vector< real > > _flux_tensor
Definition: wmapplication_resistive_diffusion.h:104
real _Zi
Definition: wmapplication_resistive_diffusion.h:70
std::vector< int > _inputVariables
Definition: wmapplication_resistive_diffusion.h:79
real _min_density
Definition: wmapplication_resistive_diffusion.h:86
real _gas_gamma
Definition: wmapplication_resistive_diffusion.h:65
real _constant_resistivity_eta
Definition: wmapplication_resistive_diffusion.h:73
int _ith
Definition: wmapplication_resistive_diffusion.h:98
real _min_pressure
Definition: wmapplication_resistive_diffusion.h:87
real _lnlam
Definition: wmapplication_resistive_diffusion.h:71
int _iz
Definition: wmapplication_resistive_diffusion.h:98
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
int _radial_index
Definition: wmapplication_resistive_diffusion.h:97
std::string _resistivity_type
Definition: wmapplication_resistive_diffusion.h:83
real _n_vac
Definition: wmapplication_resistive_diffusion.h:91
real _eta_vac
Definition: wmapplication_resistive_diffusion.h:92
real _skin_depth_norm
Definition: wmapplication_resistive_diffusion.h:66
real _nu_p_norm
Definition: wmapplication_resistive_diffusion.h:67
real _max_eta
Definition: wmapplication_resistive_diffusion.h:88
bool _const_resisitivity
Definition: wmapplication_resistive_diffusion.h:74
std::vector< int > _auxVariables
Definition: wmapplication_resistive_diffusion.h:80
std::string _gradient_method
Definition: wmapplication_resistive_diffusion.h:84
int _ir
Definition: wmapplication_resistive_diffusion.h:98
real _cfl_diff
Definition: wmapplication_resistive_diffusion.h:94
std::string _coordinate_system
Definition: wmapplication_resistive_diffusion.h:96
real _min_eta
Definition: wmapplication_resistive_diffusion.h:89
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: wmapplication_resistive_diffusion.h:22
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 internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
std::vector< int > _outputVariables
Definition: wmapplication_resistive_diffusion.h:81
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