WARPXM v1.10.0
Loading...
Searching...
No Matches
phase_space_gradient.h
Go to the documentation of this file.
1#ifndef variable_adjuster_phase_space_gradient_h
2#define variable_adjuster_phase_space_gradient_h
3
4// WARPXM includes
5#include "dfem/tools/tools.h"
9
10// STL includes
11#include <memory>
12
13namespace wxm
14{
15namespace dfem
16{
17namespace variable_adjuster
18{
19namespace phase_space_gradient
20{
21
27{
28public:
33 PhaseSpaceGradient() = default;
34
39 void setup(const WxCryptSet& wxc) override;
40
44 void solve(real time, variables_type& input) override;
45
46 /* /\** */
47 /* * @brief Get a range of elements associated with the entire */
48 /* * patch (periphery+interior) */
49 /* *\/ */
50 /* const WxRange& element_full_range() const override */
51 /* { */
52 /* return _element_flux._full; */
53 /* } */
54
55protected:
56 // input and output indices
57 std::vector<size_t> _gradient_input_indexes;
58 std::vector<size_t> _gradient_output_indexes;
59
60 // gradient method
61 std::string _gradient_method;
62
63 // gradient solver penalties
66
67private:
68 // One function needs it
69 real _cfl;
70
71 // Element range
72 wxm::dfem::tools::scope_t _element_flux;
73
74 // Velocity space range
75 std::unique_ptr<WxRange> _velocity_space_element_range;
76 std::unique_ptr<WxRange> _velocity_space_interior_element_range;
77
78 // Phase space geometry
79 std::shared_ptr<geometry::phase_space::PhaseSpaceDGGeometry> _phase_space_dg_geometry;
80
81 // Phase space element type
82 std::unique_ptr<geometry::phase_space_element::PhaseSpaceElement> _phase_space_element;
83
84 // assignment and copy operators?
86 PhaseSpaceGradient& operator=(const PhaseSpaceGradient& var) = delete;
87
89 PhaseSpaceGradient(const PhaseSpaceGradient& var) = delete;
90};
91} // namespace phase_space_gradient
92} // namespace variable_adjuster
93} // namespace dfem
94} // namespace wxm
95
96#endif // variable_adjuster_phase_space_gradient_h
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
Definition: tools.h:22
The velocity space gradient class determines the gradient in velocity space for DG calculation of dif...
Definition: phase_space_gradient.h:27
std::vector< size_t > _gradient_input_indexes
Definition: phase_space_gradient.h:57
void solve(real time, variables_type &input) override
Solves the spatial system and puts result in _rhs.
std::vector< size_t > _gradient_output_indexes
Definition: phase_space_gradient.h:58
void setup(const WxCryptSet &wxc) override
Setup the spatial solver using the cryptset.
std::string _gradient_method
Definition: phase_space_gradient.h:61
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