WARPXM v1.10.0
Loading...
Searching...
No Matches
idealmhd.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 imhd
16{
27{
28public:
30
32
33 void setup(const WxCryptSet& wxc) override;
34
35 const std::vector<int>& getInputVariableIndexes(int flag) const override
36 {
37 return q_indexes_;
38 }
39
40 const std::vector<int>& getOutputVariableIndexes(int flag) const override
41 {
42 return q_indexes_;
43 }
44
45 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
46 {
47 return grad_q_indexes_;
48 }
49
52 const real* q_r,
53 const real* aux_l,
54 const real* aux_r,
55 const solverVariables_t* pFV,
56 real* numericalFlux) const override;
58 const real* aux,
59 const solverVariables_t* pSV,
60 std::vector<std::vector<real>>& internalFlux) const override;
61
62 real source(const real* q,
63 const real* aux,
64 const elementGeometry_t* pEG,
65 real* source) const override;
66
67protected:
69 std::unique_ptr<wxm::apps::mhd_two_temperature::AppSetupHelper> setup_helper_;
70
74
75 std::string coordinate_system_;
78 int ir_, ith_, iz_;
79
80 std::vector<int> q_indexes_;
81 std::vector<int> grad_q_indexes_;
82
87 mutable std::vector<std::vector<real>> flux_tensor_;
88};
89} // namespace imhd
90} // namespace mhd_two_temperature
91} // namespace apps
92} // 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 Ideal MHD for the Two-Temperature MHD model.
Definition: idealmhd.h:27
real internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
int ir_
r, theta, and z indices
Definition: idealmhd.h:78
real gas_gamma_
Definition: idealmhd.h:73
std::vector< int > grad_q_indexes_
Definition: idealmhd.h:81
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Definition: idealmhd.h:40
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Definition: idealmhd.h:45
std::unique_ptr< wxm::apps::mhd_two_temperature::AppSetupHelper > setup_helper_
Helper object that automates common setup routines.
Definition: idealmhd.h:69
void setup(const WxCryptSet &wxc) 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: idealmhd.h:87
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: idealmhd.h:35
real min_pressure_floor_
Definition: idealmhd.h:72
std::string coordinate_system_
Definition: idealmhd.h:75
std::vector< int > q_indexes_
Definition: idealmhd.h:80
real source(const real *q, const real *aux, const elementGeometry_t *pEG, real *source) const override
int radial_index_
Definition: idealmhd.h:76
real min_density_floor_
Definition: idealmhd.h:71
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
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