SpECTRE
v2025.03.17
|
Positivity-preserving adaptive order reconstruction. See fd::reconstruction::positivity_preserving_adaptive_order() for details. The rest mass density, electron fraction, and the pressure are kept positive. Use unlimited 5th order (degree 4 polynomial) reconstruction on the metric variables. More...
#include <PositivityPreservingAdaptiveOrder.hpp>
Classes | |
struct | Alpha5 |
struct | Alpha7 |
struct | Alpha9 |
struct | AtmosphereTreatment |
struct | LowOrderReconstructor |
Public Types | |
using | options = implementation defined |
using | reconstruction_argument_tags = implementation defined |
![]() | |
using | creatable_classes = implementation defined |
Public Member Functions | |
PositivityPreservingAdaptiveOrderPrim (PositivityPreservingAdaptiveOrderPrim &&)=default | |
PositivityPreservingAdaptiveOrderPrim & | operator= (PositivityPreservingAdaptiveOrderPrim &&)=default |
PositivityPreservingAdaptiveOrderPrim (const PositivityPreservingAdaptiveOrderPrim &)=default | |
PositivityPreservingAdaptiveOrderPrim & | operator= (const PositivityPreservingAdaptiveOrderPrim &)=default |
PositivityPreservingAdaptiveOrderPrim (double alpha_5, std::optional< double > alpha_7, std::optional< double > alpha_9, FallbackReconstructorType low_order_reconstructor, ::VariableFixing::FixReconstructedStateToAtmosphere fix_reconstructed_state_to_atmosphere, const Options::Context &context={}) | |
PositivityPreservingAdaptiveOrderPrim (CkMigrateMessage *msg) | |
WRAPPED_PUPable_decl_base_template (Reconstructor, PositivityPreservingAdaptiveOrderPrim) | |
auto | get_clone () const -> std::unique_ptr< Reconstructor > override |
bool | supports_adaptive_order () const override |
void | pup (PUP::er &p) override |
size_t | ghost_zone_size () const override |
template<size_t ThermodynamicDim, typename TagsList > | |
void | reconstruct (gsl::not_null< std::array< Variables< TagsList >, dim > * > vars_on_lower_face, gsl::not_null< std::array< Variables< TagsList >, dim > * > vars_on_upper_face, gsl::not_null< std::optional< std::array< gsl::span< std::uint8_t >, dim > > * > reconstruction_order, const Variables< hydro::grmhd_tags< DataVector > > &volume_prims, const Variables< typename System::variables_tag::type::tags_list > &volume_spacetime_and_cons_vars, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &eos, const Element< dim > &element, const DirectionalIdMap< dim, evolution::dg::subcell::GhostData > &ghost_data, const Mesh< dim > &subcell_mesh, const VariableFixing::FixToAtmosphere< dim > &fix_to_atmosphere) const |
template<size_t ThermodynamicDim, typename TagsList > | |
void | reconstruct_fd_neighbor (gsl::not_null< Variables< TagsList > * > vars_on_face, const Variables< hydro::grmhd_tags< DataVector > > &subcell_volume_prims, const Variables< grmhd::GhValenciaDivClean::Tags::spacetime_reconstruction_tags > &subcell_volume_spacetime_metric, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &eos, const Element< dim > &element, const DirectionalIdMap< dim, evolution::dg::subcell::GhostData > &ghost_data, const Mesh< dim > &subcell_mesh, const VariableFixing::FixToAtmosphere< dim > &fix_to_atmosphere, Direction< dim > direction_to_reconstruct) const |
Called by an element doing DG when the neighbor is doing subcell. | |
![]() | |
Reconstructor (const Reconstructor &)=default | |
Reconstructor & | operator= (const Reconstructor &)=default |
Reconstructor (Reconstructor &&)=default | |
Reconstructor & | operator= (Reconstructor &&)=default |
virtual std::unique_ptr< Reconstructor > | get_clone () const =0 |
virtual size_t | ghost_zone_size () const =0 |
virtual bool | supports_adaptive_order () const |
void | pup (PUP::er &p) override |
Static Public Attributes | |
static constexpr size_t | dim = 3 |
static constexpr Options::String | help |
static constexpr bool | use_adaptive_order = true |
Friends | |
bool | operator== (const PositivityPreservingAdaptiveOrderPrim &lhs, const PositivityPreservingAdaptiveOrderPrim &rhs) |
bool | operator!= (const PositivityPreservingAdaptiveOrderPrim &lhs, const PositivityPreservingAdaptiveOrderPrim &rhs) |
Positivity-preserving adaptive order reconstruction. See fd::reconstruction::positivity_preserving_adaptive_order() for details. The rest mass density, electron fraction, and the pressure are kept positive. Use unlimited 5th order (degree 4 polynomial) reconstruction on the metric variables.
Only the spacetime metric is reconstructed when we and the neighboring element in the direction are doing FD. If we are doing DG and a neighboring element is doing FD, then the spacetime metric,
|
overridevirtual |
Implements grmhd::GhValenciaDivClean::fd::Reconstructor.
|
inlineoverridevirtual |
Implements grmhd::GhValenciaDivClean::fd::Reconstructor.
|
inlineoverridevirtual |
Reimplemented from grmhd::GhValenciaDivClean::fd::Reconstructor.
|
staticconstexpr |