SpECTRE
v2025.03.17
|
A minmod-based generalized slope limiter for the NewtonianEuler system. More...
#include <Minmod.hpp>
Classes | |
struct | ApplyFlattener |
struct | VariablesToLimit |
Public Types | |
using | ConservativeVarsMinmod = ::Limiters::Minmod< VolumeDim, tmpl::list< NewtonianEuler::Tags::MassDensityCons, NewtonianEuler::Tags::MomentumDensity< VolumeDim >, NewtonianEuler::Tags::EnergyDensity > > |
using | options = implementation defined |
using | PackagedData = typename ConservativeVarsMinmod::PackagedData |
using | package_argument_tags = typename ConservativeVarsMinmod::package_argument_tags |
using | limit_tags = implementation defined |
using | limit_argument_tags = implementation defined |
Public Member Functions | |
Minmod (::Limiters::MinmodType minmod_type, NewtonianEuler::Limiters::VariablesToLimit vars_to_limit, double tvb_constant, bool apply_flattener, bool disable_for_debugging=false) | |
Minmod (const Minmod &)=default | |
Minmod & | operator= (const Minmod &)=default |
Minmod (Minmod &&)=default | |
Minmod & | operator= (Minmod &&)=default |
void | pup (PUP::er &p) |
void | package_data (gsl::not_null< PackagedData * > packaged_data, const Scalar< DataVector > &mass_density_cons, const tnsr::I< DataVector, VolumeDim > &momentum_density, const Scalar< DataVector > &energy_density, const Mesh< VolumeDim > &mesh, const std::array< double, VolumeDim > &element_size, const OrientationMap< VolumeDim > &orientation_map) const |
Package data for sending to neighbor elements. | |
bool | operator() (gsl::not_null< Scalar< DataVector > * > mass_density_cons, gsl::not_null< tnsr::I< DataVector, VolumeDim > * > momentum_density, gsl::not_null< Scalar< DataVector > * > energy_density, const Mesh< VolumeDim > &mesh, const Element< VolumeDim > &element, const tnsr::I< DataVector, VolumeDim, Frame::ElementLogical > &logical_coords, const std::array< double, VolumeDim > &element_size, const Scalar< DataVector > &det_inv_logical_to_inertial_jacobian, const EquationsOfState::EquationOfState< false, 2 > &equation_of_state, const std::unordered_map< DirectionalId< VolumeDim >, PackagedData, boost::hash< DirectionalId< VolumeDim > > > &neighbor_data) const |
Limits the solution on the element. | |
Static Public Member Functions | |
static std::string | name () |
Static Public Attributes | |
static constexpr Options::String | help |
Friends | |
template<size_t LocalDim> | |
bool | operator== (const Minmod< LocalDim > &lhs, const Minmod< LocalDim > &rhs) |
A minmod-based generalized slope limiter for the NewtonianEuler system.
Implements the three minmod-based generalized slope limiters from [41] Sec. 2.4:
This implemention is specialized to the NewtonianEuler evolution system. By specializing the limiter to the system, we can add two features that improve its robustness:
|
staticconstexpr |