WARPXM v1.10.0
Loading...
Searching...
No Matches
hall_terms.h
Go to the documentation of this file.
1#pragma once
2
5
6// std includes
7#include <memory>
8
9namespace wxm
10{
11namespace apps
12{
13namespace mhd_two_temperature
14{
15namespace hallmhd
16{
27{
28public:
31
32 void setup(const WxCryptSet& wxc) override;
33
34 const std::vector<int>& getInputVariableIndexes(int flag) const override
35 {
36 return q_indexes_;
37 }
38
39 const std::vector<int>& getOutputVariableIndexes(int flag) const override
40 {
41 return q_indexes_;
42 }
43
44 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
45 {
46 return grad_q_indexes_;
47 }
48
51 const real* q_r,
52 const real* aux_l,
53 const real* aux_r,
54 const solverVariables_t* pFV,
55 real* numericalFlux) const override;
57 const real* aux,
58 const solverVariables_t* pSV,
59 std::vector<std::vector<real>>& internalFlux) const override;
60
61 real source(const real* q,
62 const real* aux,
63 const elementGeometry_t* pEG,
64 real* source) const override;
65
66protected:
68 std::unique_ptr<wxm::apps::mhd_two_temperature::AppSetupHelper> setup_helper_;
69
76
80
84
88
89 std::string coordinate_system_;
92 int ir_, ith_, iz_;
93
94 std::vector<int> q_indexes_;
95 std::vector<int> grad_q_indexes_;
96
102 mutable std::vector<std::vector<real>> flux_tensor_;
103
104private:
105 HallTerms& operator=(const HallTerms& var);
106 HallTerms(const HallTerms& var);
107};
108} // namespace hallmhd
109} // namespace mhd_two_temperature
110} // namespace apps
111} // 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
Class used implement Hall term for the Two-Temperature MHD model.
Definition: hall_terms.h:27
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Definition: hall_terms.h:44
real min_pressure_floor_
Definition: hall_terms.h:71
void setup(const WxCryptSet &wxc) override
real source(const real *q, const real *aux, const elementGeometry_t *pEG, real *source) const override
std::vector< std::vector< real > > flux_tensor_
Flux tensor is used to calculate left and right fluxes for numerical flux mutable because this will c...
Definition: hall_terms.h:102
std::string coordinate_system_
Definition: hall_terms.h:89
std::vector< int > q_indexes_
Definition: hall_terms.h:94
real gas_gamma_
Definition: hall_terms.h:74
std::unique_ptr< wxm::apps::mhd_two_temperature::AppSetupHelper > setup_helper_
Helper object that automates common setup routines.
Definition: hall_terms.h:68
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
redefinition of fluxes from parent
int radial_index_
Definition: hall_terms.h:90
std::vector< int > grad_q_indexes_
Definition: hall_terms.h:95
real min_density_floor_
Definition: hall_terms.h:70
real internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
real drift_pe_factor_
< Weight of drift pressure energy term, default 1.
Definition: hall_terms.h:79
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: hall_terms.h:34
int ir_
r, theta, and z indices
Definition: hall_terms.h:92
real jxb_factor_
< Weight of JxB term, default 1.
Definition: hall_terms.h:83
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Definition: hall_terms.h:39
real grad_pe_factor_
< Weight of grad pe term, default 1.
Definition: hall_terms.h:87
real skin_depth_norm_
Definition: hall_terms.h:75
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