Helper class for the NDGEulerPositivityPreservingLimiter.
More...
#include <ndg_euler_positivity_enforcing_limiter.h>
Helper class for the NDGEulerPositivityPreservingLimiter.
This class and its methods should not be used in isolation, only by the limiter class.
- See also
- NDGEulerPositivityPreservingLimiter
-
Writeup document
|
| EulerLimiterHelper (std::vector< real > &rho_bar, std::vector< real > &rho_ux_bar, std::vector< real > &rho_uy_bar, std::vector< real > &rho_uz_bar, std::vector< real > &e_bar, wxm::array::patch_array_t *rho, wxm::array::patch_array_t *rho_ux, wxm::array::patch_array_t *rho_uy, wxm::array::patch_array_t *rho_uz, wxm::array::patch_array_t *e, int num_pp_quad_nodes, int num_lagrange_nodes, int ndims) |
|
void | take_elementwise_averages (WmBasisArraySet &basis_set, WxRange &_element_range, int ndims) |
| Take elementwise averages over the given element range, and write them to the _bar suffixed instance variables.
|
|
void | convertElementLagrangeToPPQuadNodes (WmBasisArraySet &basis_set, int element_start, bool include_gaussian_quad_nodes, bool include_interior_lgl_nodes) |
| Perform the conversion of Lagrange nodal to Positivity-preserving quadrature nodal values, for the given element start index.
|
|
real | internalEnergyOfCellAverage (int element_index) |
| Compute the internal energy of the cell average, e_bar - |rho_u_bar|^2 / (2*rho_bar).
|
|
real | calculateAndScalePPQuadNodesByThetaRho (int element_index, real eps_rho) |
| Perform the scaling by theta_rho.
|
|
real | calculateThetaE (int element_index, real internal_energy_bar, real eps_p) |
|
void | scaleByThetaRhoAndThetaE (int element_index, real theta_rho, real theta_e) |
| Complete the scaling by theta_rho and theta_e, overwriting the given element's data in _rho_array , _rho_ux_array , etc.
|
|
◆ EulerLimiterHelper()
wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::EulerLimiterHelper |
( |
std::vector< real > & |
rho_bar, |
|
|
std::vector< real > & |
rho_ux_bar, |
|
|
std::vector< real > & |
rho_uy_bar, |
|
|
std::vector< real > & |
rho_uz_bar, |
|
|
std::vector< real > & |
e_bar, |
|
|
wxm::array::patch_array_t * |
rho, |
|
|
wxm::array::patch_array_t * |
rho_ux, |
|
|
wxm::array::patch_array_t * |
rho_uy, |
|
|
wxm::array::patch_array_t * |
rho_uz, |
|
|
wxm::array::patch_array_t * |
e, |
|
|
int |
num_pp_quad_nodes, |
|
|
int |
num_lagrange_nodes, |
|
|
int |
ndims |
|
) |
| |
|
inline |
◆ calculate_theta_rho()
static real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::calculate_theta_rho |
( |
std::vector< real > & |
rho, |
|
|
real |
rho_bar, |
|
|
real |
eps_rho |
|
) |
| |
|
static |
◆ calculateAndScalePPQuadNodesByThetaRho()
real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::calculateAndScalePPQuadNodesByThetaRho |
( |
int |
element_index, |
|
|
real |
eps_rho |
|
) |
| |
Perform the scaling by theta_rho.
◆ calculateThetaE()
real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::calculateThetaE |
( |
int |
element_index, |
|
|
real |
internal_energy_bar, |
|
|
real |
eps_p |
|
) |
| |
◆ convertElementLagrangeToPPQuadNodes()
void wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::convertElementLagrangeToPPQuadNodes |
( |
WmBasisArraySet & |
basis_set, |
|
|
int |
element_start, |
|
|
bool |
include_gaussian_quad_nodes, |
|
|
bool |
include_interior_lgl_nodes |
|
) |
| |
Perform the conversion of Lagrange nodal to Positivity-preserving quadrature nodal values, for the given element start index.
Overwrites the _pp_quad_node_values
arrays.
If include_gaussian_quad_nodes is set, also includes the basis's gaussian quadrature nodes in the positivity-preserving node set.
If include_interior_lgl_nodes is set, includes the basis's interior LGL collocation nodes.
◆ internal_energy()
static real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::internal_energy |
( |
real |
rho, |
|
|
real |
rho_ux, |
|
|
real |
rho_uy, |
|
|
real |
rho_uz, |
|
|
real |
E, |
|
|
int |
ndims |
|
) |
| |
|
static |
Compute the internal energy, E - |rho_u|^2/(2*rho)
◆ internalEnergyOfCellAverage()
real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::internalEnergyOfCellAverage |
( |
int |
element_index | ) |
|
Compute the internal energy of the cell average, e_bar - |rho_u_bar|^2 / (2*rho_bar).
◆ scaleByThetaRhoAndThetaE()
void wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::scaleByThetaRhoAndThetaE |
( |
int |
element_index, |
|
|
real |
theta_rho, |
|
|
real |
theta_e |
|
) |
| |
Complete the scaling by theta_rho and theta_e, overwriting the given element's data in _rho_array
, _rho_ux_array
, etc.
◆ take_elementwise_averages()
void wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::take_elementwise_averages |
( |
WmBasisArraySet & |
basis_set, |
|
|
WxRange & |
_element_range, |
|
|
int |
ndims |
|
) |
| |
Take elementwise averages over the given element range, and write them to the _bar
suffixed instance variables.
◆ _e
◆ _e_array
◆ _e_bar
std::vector<real>& wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_e_bar |
◆ _e_pp_quad_node_values
std::vector<real> wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_e_pp_quad_node_values |
◆ _rho
◆ _rho_array
◆ _rho_bar
std::vector<real>& wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_bar |
◆ _rho_pp_quad_node_values
std::vector<real> wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_pp_quad_node_values |
◆ _rho_ux
◆ _rho_ux_array
◆ _rho_ux_bar
std::vector<real>& wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_ux_bar |
◆ _rho_ux_pp_quad_node_values
std::vector<real> wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_ux_pp_quad_node_values |
◆ _rho_uy
◆ _rho_uy_array
◆ _rho_uy_bar
std::vector<real>& wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_uy_bar |
◆ _rho_uy_pp_quad_node_values
std::vector<real> wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_uy_pp_quad_node_values |
◆ _rho_uz
◆ _rho_uz_array
◆ _rho_uz_bar
std::vector<real>& wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_uz_bar |
◆ _rho_uz_pp_quad_node_values
std::vector<real> wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::_rho_uz_pp_quad_node_values |
◆ ndims
int wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::ndims |
◆ num_lagrange_nodes
int wxm::dfem::variable_adjuster::limiter::positivity_enforcing::EulerLimiterHelper::num_lagrange_nodes |
The documentation for this class was generated from the following file: