WARPXM v1.10.0
Loading...
Searching...
No Matches
calc_diffusion_coefficient.h
Go to the documentation of this file.
1#ifndef variable_adjuster_calc_diffusion_coefficient_h
2#define variable_adjuster_calc_diffusion_coefficient_h
3
4// WARPXM includes
7#include "dfem/tools/tools.h"
8
9// STL includes
10#include <memory>
11
12namespace wxm
13{
14namespace dfem
15{
16namespace variable_adjuster
17{
18namespace diffusion_coefficient
19{
20
27{
28public:
34
40 void setup(const WxCryptSet& wxc) override;
41
48 void solve(real time, variables_type& input) override;
49
54
56 // *
57 // *
58 // */
59 std::vector<size_t> convertToOutputIndexes(const std::vector<int>& indexes) const;
60
61protected:
62private:
66 std::vector<std::vector<size_t>> _app_to_out_idcs_func_eval;
67
68 //
69 std::vector<size_t> _input_indexes;
70 std::vector<size_t> _output_indexes;
71
72 // checking of indexes
73 std::vector<size_t> _out_idcs;
74 std::vector<size_t> _all_idcs;
75
76 // scopes
77 wxm::dfem::tools::scope_t _element_flux;
78
79 // basis set
80 std::unique_ptr<WmBasisArraySet> _wavenumber_space_basis_set;
81
82 // number of element nodes
83 int _N_p_kx;
84 int _N_p_ky;
85 int _N_p_kz;
86
87 // quadrature weights
88 size_t _num_weights;
89 std::vector<real> _weights_kx;
90 std::vector<real> _weights_ky;
91 std::vector<real> _weights_kz;
92
93 // Jacobian determinant for k-space line subspaces
94 real _k_space_determinant;
95
96 // Phase space geometry
97 std::shared_ptr<geometry::phase_space::PhaseSpaceDGGeometry> _phase_space_dg_geometry;
98
99 // Wavenumber space geometry
100 std::shared_ptr<geometry::phase_space::PhaseSpaceDGGeometry> _wavenumber_space_dg_geometry;
101
103 CalcDiffusionCoefficient& operator=(const CalcDiffusionCoefficient& var) = delete;
104};
105}
106}
107}
108}
109
110#endif
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
Definition: tools.h:22
This diffusion coefficient class calculates QL diffusion coefficients based on integrals over wavenum...
Definition: calc_diffusion_coefficient.h:27
void solve(real time, variables_type &input) override
Solves the diffusion coefficient quadrature and puts solution back into input.
real calcDeterminant()
Calculates determinant of wavenumber elements.
std::vector< size_t > convertToOutputIndexes(const std::vector< int > &indexes) const
‍**
void setup(const WxCryptSet &wxc) override
Setup the spatial solver using the cryptset.
The WmVariableAdjuster class is a base class for variable adjusters.
Definition: variable_adjuster.h:31
wxm::temporal_solver::variables_type variables_type
Definition: variable_adjuster.h:41
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
#define real
Definition: wmoclunstructuredreconstruction.h:11