WARPXM v1.10.0
|
Helper class for the NDGMHDPositivityPreservingLimiter. More...
#include <ndg_mhd_positivity_enforcing_limiter.h>
Helper class for the NDGMHDPositivityPreservingLimiter.
Contains data and methods used to perform the limiting.
Public Member Functions | |
MHDLimiterHelper (EulerLimiterHelper euler_helper, std::vector< real > &B_x_bar, std::vector< real > &B_y_bar, std::vector< real > &B_z_bar, wxm::array::patch_array_t *B_x, wxm::array::patch_array_t *B_y, wxm::array::patch_array_t *B_z, 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) - |B_bar|^2/2. | |
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. | |
Static Public Member Functions | |
static real | internal_energy (real rho, real rho_ux, real rho_uy, real rho_uz, real E, real B_x, real B_y, real B_z, int ndims) |
Compute the internal energy, E - |rho_u|^2/(2*rho) - |B|^2/2. | |
|
inline |
real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::calculateAndScalePPQuadNodesByThetaRho | ( | int | element_index, |
real | eps_rho | ||
) |
Perform the scaling by theta_rho.
real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::calculateThetaE | ( | int | element_index, |
real | internal_energy_bar, | ||
real | eps_p | ||
) |
void wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::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.
|
static |
Compute the internal energy, E - |rho_u|^2/(2*rho) - |B|^2/2.
real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::internalEnergyOfCellAverage | ( | int | element_index | ) |
Compute the internal energy of the cell average, e_bar - |rho_u_bar|^2 / (2*rho_bar) - |B_bar|^2/2.
void wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::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.
void wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::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.