WARPXM v1.10.0
Loading...
Searching...
No Matches
density_diffusion_flux.h
Go to the documentation of this file.
1#ifndef WXM_APPS_5MOMENT_DENSITYDIFFUSIONFLUX_H
2#define WXM_APPS_5MOMENT_DENSITYDIFFUSIONFLUX_H
3
4// Wm includes
6
7// #include "5-moment_base.h"
8
9namespace wxm
10{
11namespace apps
12{
13namespace five_moment
14{
15
17{
18public:
20
22
23 void setup(const WxCryptSet& wxc) override;
24
25 const std::vector<int>& getInputVariableIndexes(int flag) const override
26 {
27 return _input_variables;
28 }
29 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
30 {
31 return _aux_variables;
32 }
33 const std::vector<int>& getOutputVariableIndexes(int flag) const override
34 {
35 return _input_variables;
36 }
37
38 // redefinition of fluxes from parent
40 const real* q_r,
41 const real* aux_l,
42 const real* aux_r,
43 const solverVariables_t* pFV,
44 real* numericalFlux) const override;
45
47 const real* aux,
48 const solverVariables_t* pSV,
49 std::vector<std::vector<real>>& internalFlux) const override;
50
51 // specific calls
53 const real* q_r,
54 const real* aux_l,
55 const real* aux_r,
56 const solverVariables_t* pFV,
57 real* numericalFlux) const;
58
59protected:
60 std::string _gradient_method;
61 std::vector<real> _D_params;
62
63 std::vector<int> _input_variables;
64 std::vector<int> _aux_variables;
65
66 // flux tensor is used to calculate left and right fluxes for numerical flux
67 // mutable because this will continuously be changed upon call, but functions are
68 // labled const this is just a helper vector this behavior should be justified.
69 mutable std::vector<std::vector<real>> _flux_tensor;
70
71private:
72 DensityDiffusionFlux& operator=(const DensityDiffusionFlux& var) = delete;
73 DensityDiffusionFlux(const DensityDiffusionFlux& var) = delete;
74};
75} // namespace five_moment
76} // namespace apps
77} // namespace wxm
78
79#endif // WXM_APPS_5MOMENT_DENSITYDIFFUSIONFLUX_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: density_diffusion_flux.h:17
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: density_diffusion_flux.h:25
std::string _gradient_method
Definition: density_diffusion_flux.h:60
std::vector< real > _D_params
Definition: density_diffusion_flux.h:61
std::vector< std::vector< real > > _flux_tensor
Definition: density_diffusion_flux.h:69
real internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
std::vector< int > _aux_variables
Definition: density_diffusion_flux.h:64
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Definition: density_diffusion_flux.h:29
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
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
void setup(const WxCryptSet &wxc) override
std::vector< int > _input_variables
Definition: density_diffusion_flux.h:63
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Definition: density_diffusion_flux.h:33
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