WARPXM v1.10.0
Loading...
Searching...
No Matches
bennett_equilibrium.h
Go to the documentation of this file.
1#pragma once
2
3// WARPXM includes
5
6// STL includes
7#include <memory>
8
9namespace wxm
10{
11namespace apps
12{
13namespace functions
14{
15namespace mhd
16{
52{
53public:
59
65
70 void setup(const WxCryptSet& wxc) override;
71
77 const std::vector<int>& getOutputVariableIndexes(int flag) const override
78 {
79 return _mhd_fluid;
80 }
81
89 void evaluate_function(const real* q,
90 const real* aux,
91 const solverVariables_t* pSV,
92 real* result) const override;
93
102 void bc_q(const real* q_in,
103 const real* aux_in,
104 const real* aux_out,
105 const solverVariables_t* pFV,
106 real* q_out) const override;
107
108protected:
109 std::vector<int> _mhd_fluid;
110
112 int _ir, _ith, _iz; // r, theta, and z indices
113
114 real _gas_gamma; // gamma
115 real _Ai; // mass
116 real _Zi; // charge
117 real _T; // uniform temperature
118 real _a; // pinch radius
119 real _I; // pinch current
120 real _wct; // (omega_c tau)
121
122 real _pert; // perturbation fraction on pressure
123 real _lambda; // wavelength of perturbation in z-coordinate
124
125 // pointer to subapplications
126 std::unique_ptr<WmApplication> _vz_app;
127 std::unique_ptr<WmApplication> _vr_app;
128 std::unique_ptr<WmApplication> _vth_app;
129
130private:
131 BennettEquilibrium& operator=(const BennettEquilibrium& var);
133};
134
135} // namespace mhd
136} // namespace functions
137} // namespace apps
138} // 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
Bennett Equilibrium for Ideal MHD Should Work for Cylindrical and Cartesian cases Ref.
Definition: bennett_equilibrium.h:52
int _ith
Definition: bennett_equilibrium.h:112
void setup(const WxCryptSet &wxc) override
Setup.
std::vector< int > _mhd_fluid
Definition: bennett_equilibrium.h:109
real _pert
Definition: bennett_equilibrium.h:122
real _wct
Definition: bennett_equilibrium.h:120
real _Ai
Definition: bennett_equilibrium.h:115
std::unique_ptr< WmApplication > _vz_app
Definition: bennett_equilibrium.h:126
real _lambda
Definition: bennett_equilibrium.h:123
std::unique_ptr< WmApplication > _vth_app
Definition: bennett_equilibrium.h:128
void evaluate_function(const real *q, const real *aux, const solverVariables_t *pSV, real *result) const override
Redefinition of the function evaluator.
std::string _coordinate_system
Definition: bennett_equilibrium.h:111
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Grab output variable indices.
Definition: bennett_equilibrium.h:77
real _I
Definition: bennett_equilibrium.h:119
int _iz
Definition: bennett_equilibrium.h:112
real _a
Definition: bennett_equilibrium.h:118
int _ir
Definition: bennett_equilibrium.h:112
real _T
Definition: bennett_equilibrium.h:117
real _gas_gamma
Definition: bennett_equilibrium.h:114
std::unique_ptr< WmApplication > _vr_app
Definition: bennett_equilibrium.h:127
real _Zi
Definition: bennett_equilibrium.h:116
void bc_q(const real *q_in, const real *aux_in, const real *aux_out, const solverVariables_t *pFV, real *q_out) const override
Redefinition of the bc.
list apps
Definition: shock_tube.py:33
warpy mhd
Definition: mhd_shock.py:32
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