WARPXM v1.10.0
Loading...
Searching...
No Matches
ndg_moe_rossmanith.h
Go to the documentation of this file.
1#ifndef WMNDG_MOE_ROSSMANITH_H
2#define WMNDG_MOE_ROSSMANITH_H
3
4// Wm includes
5#include "dfem/tools/tools.h"
8
9#include <memory>
10
11namespace wxm
12{
13namespace dfem
14{
15namespace variable_adjuster
16{
17namespace limiter
18{
19
40{
41public:
42 /* Constructor */
43 ndg_moe_rossmanith() = default;
44
49 virtual void setup(const WxCryptSet& wxc) override;
50
51protected:
52 real
53 y_func(const real extremum, const real qi_bar, const real element_extremum) const;
54 real phi_func(const real y) const;
55 real alpha_func(const int elementIndex) const;
56
57 virtual void limiting_kernel(const WxRange& element_scope_range,
58 real time,
59 std::vector<wxm::array::patch_array_t*>& input) override;
60
61 virtual void allocate() override;
62
63 std::vector<real>
64 _neighbor_upper_bound; // result of equation 6.4 num_elems x num_vars
65 std::vector<real>
66 _neighbor_lower_bound; // result of equation 6.5 num_elems x num_vars
67 std::vector<real> _theta_M_i; // result of equation 6.6 num_elems
68 std::vector<real> _theta_m_i; // result of equation 6.6 num_elems
69 std::vector<real> _theta_i; // result of equation 6.7 num_elems
70
71 // relevent parameter
73
74private:
76 ndg_moe_rossmanith& operator=(const ndg_moe_rossmanith& var) = delete;
77
79 ndg_moe_rossmanith(const ndg_moe_rossmanith& var) = delete;
80};
81
83} // namespace limiter
84} // namespace variable_adjuster
85} // namespace dfem
86} // namespace wxm
87
88#endif
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
WxRange represents a hyper-rectangular domain of an n-dimensional space of integers.
Definition: wxrange.h:23
The ndg_moe_rossmanith class applies limiters to a dataset.
Definition: ndg_moe_rossmanith.h:40
std::vector< real > _theta_i
Definition: ndg_moe_rossmanith.h:69
std::vector< real > _theta_M_i
Definition: ndg_moe_rossmanith.h:67
real _alpha_coefficient
Definition: ndg_moe_rossmanith.h:72
std::vector< real > _neighbor_lower_bound
Definition: ndg_moe_rossmanith.h:66
virtual void limiting_kernel(const WxRange &element_scope_range, real time, std::vector< wxm::array::patch_array_t * > &input) override
std::vector< real > _neighbor_upper_bound
Definition: ndg_moe_rossmanith.h:64
std::vector< real > _theta_m_i
Definition: ndg_moe_rossmanith.h:68
virtual void setup(const WxCryptSet &wxc) override
Setup the spatial solver using the cryptset.
real y_func(const real extremum, const real qi_bar, const real element_extremum) const
The ndg_moment_slope_base class is a base to apply slope-based limiting to dataset.
Definition: ndg_moment_slope_limiter_base.h:32
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
#define real
Definition: wmoclunstructuredreconstruction.h:11