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
49 void solve(real time, variables_type& input, real dt) override;
50
55
57 // *
58 // *
59 // */
60 std::vector<size_t> convertToOutputIndexes(const std::vector<int>& indexes) const;
61
62protected:
63private:
67 std::vector<std::vector<size_t>> _app_to_out_idcs_func_eval;
68
69 //
70 std::vector<size_t> _input_indexes;
71 std::vector<size_t> _output_indexes;
72
73 // checking of indexes
74 std::vector<size_t> _out_idcs;
75 std::vector<size_t> _all_idcs;
76
77 // scopes
78 wxm::dfem::tools::scope_t _element_flux;
79
80 // basis set
81 std::unique_ptr<WmBasisArraySet> _wavenumber_space_basis_set;
82
83 // number of element nodes
84 int _N_p_kx;
85 int _N_p_ky;
86 int _N_p_kz;
87
88 // quadrature weights
89 size_t _num_weights;
90 std::vector<real> _weights_kx;
91 std::vector<real> _weights_ky;
92 std::vector<real> _weights_kz;
93
94 // Jacobian determinant for k-space line subspaces
95 real _k_space_determinant;
96
97 // Phase space geometry
98 std::shared_ptr<geometry::phase_space::PhaseSpaceDGGeometry> _phase_space_dg_geometry;
99
100 // Wavenumber space geometry
101 std::shared_ptr<geometry::phase_space::PhaseSpaceDGGeometry>
102 _wavenumber_space_dg_geometry;
103
105 CalcDiffusionCoefficient& operator=(const CalcDiffusionCoefficient& var) = delete;
106};
107} // namespace diffusion_coefficient
108} // namespace variable_adjuster
109} // namespace dfem
110} // namespace wxm
111
112#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
real calcDeterminant()
Calculates determinant of wavenumber elements.
void solve(real time, variables_type &input, real dt) override
Solves the diffusion coefficient quadrature and puts solution back into input.
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