WARPXM v1.10.0
Loading...
Searching...
No Matches
density_diffusion_flux.h
Go to the documentation of this file.
1#pragma once
2
3// wxm includes
5
6namespace wxm
7{
8namespace apps
9{
10namespace five_moment
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 _input_variables;
25 }
26 const std::vector<int>& getAuxiliaryVariableIndexes(int flag) const override
27 {
28 return _aux_variables;
29 }
30 const std::vector<int>& getOutputVariableIndexes(int flag) const override
31 {
32 return _input_variables;
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
44 const real* aux,
45 const solverVariables_t* pSV,
46 std::vector<std::vector<real>>& internalFlux) const override;
47
48 // specific calls
50 const real* q_r,
51 const real* aux_l,
52 const real* aux_r,
53 const solverVariables_t* pFV,
54 real* numericalFlux) const;
55
56protected:
57 std::string _gradient_method;
58 std::vector<real> _D_params;
59
60 std::vector<int> _input_variables;
61 std::vector<int> _aux_variables;
62
63 real _cfl_diff; // Diffusion CFL
64
65 // flux tensor is used to calculate left and right fluxes for numerical flux
66 // mutable because this will continuously be changed upon call, but functions are
67 // labled const this is just a helper vector this behavior should be justified.
68 mutable std::vector<std::vector<real>> _flux_tensor;
69
70private:
71 DensityDiffusionFlux& operator=(const DensityDiffusionFlux& var) = delete;
72 DensityDiffusionFlux(const DensityDiffusionFlux& var) = delete;
73};
74} // namespace five_moment
75} // namespace apps
76} // 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
Definition: density_diffusion_flux.h:14
const std::vector< int > & getInputVariableIndexes(int flag) const override
Definition: density_diffusion_flux.h:22
std::string _gradient_method
Definition: density_diffusion_flux.h:57
std::vector< real > _D_params
Definition: density_diffusion_flux.h:58
std::vector< std::vector< real > > _flux_tensor
Definition: density_diffusion_flux.h:68
real internal_flux(const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const override
real _cfl_diff
Definition: density_diffusion_flux.h:63
std::vector< int > _aux_variables
Definition: density_diffusion_flux.h:61
const std::vector< int > & getAuxiliaryVariableIndexes(int flag) const override
Definition: density_diffusion_flux.h:26
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:60
const std::vector< int > & getOutputVariableIndexes(int flag) const override
Definition: density_diffusion_flux.h:30
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