WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper Class Reference

Helper class for the NDGMHDPositivityPreservingLimiter. More...

#include <ndg_mhd_positivity_enforcing_limiter.h>

Detailed Description

Helper class for the NDGMHDPositivityPreservingLimiter.

Contains data and methods used to perform the limiting.

See also
NDGMHDPositivityPreservingLimiter
Writeup document

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.
 

Constructor & Destructor Documentation

◆ MHDLimiterHelper()

wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::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 
)
inline

Member Function Documentation

◆ calculateAndScalePPQuadNodesByThetaRho()

real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::calculateAndScalePPQuadNodesByThetaRho ( int  element_index,
real  eps_rho 
)

Perform the scaling by theta_rho.

◆ calculateThetaE()

real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::calculateThetaE ( int  element_index,
real  internal_energy_bar,
real  eps_p 
)

◆ convertElementLagrangeToPPQuadNodes()

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.

◆ internal_energy()

static real wxm::dfem::variable_adjuster::limiter::positivity_enforcing::MHDLimiterHelper::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 
)
static

Compute the internal energy, E - |rho_u|^2/(2*rho) - |B|^2/2.

◆ internalEnergyOfCellAverage()

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.

◆ scaleByThetaRhoAndThetaE()

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.

◆ take_elementwise_averages()

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.


The documentation for this class was generated from the following file: