SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
grmhd::GhValenciaDivClean::fd::MonotonisedCentralPrim< System > Class Template Reference

Monotonised central reconstruction on the GRMHD primitive variables (see fd::reconstruction::monotonised_central() for details) and unlimited 3rd order (degree 2 polynomial) reconstruction on the metric variables. More...

#include <MonotonisedCentral.hpp>

Classes

struct  AtmosphereTreatment
struct  ReconstructRhoTimesTemperature

Public Types

using options
using reconstruction_argument_tags
Public Types inherited from grmhd::GhValenciaDivClean::fd::Reconstructor< System >
using system = System
using creatable_classes

Public Member Functions

 MonotonisedCentralPrim (::VariableFixing::FixReconstructedStateToAtmosphere fix_reconstructed_state_to_atmosphere, bool reconstruct_rho_times_temperature)
 MonotonisedCentralPrim (MonotonisedCentralPrim &&)=default
MonotonisedCentralPrimoperator= (MonotonisedCentralPrim &&)=default
 MonotonisedCentralPrim (const MonotonisedCentralPrim &)=default
MonotonisedCentralPrimoperator= (const MonotonisedCentralPrim &)=default
 MonotonisedCentralPrim (CkMigrateMessage *msg)
 WRAPPED_PUPable_decl_base_template (Reconstructor< System >, MonotonisedCentralPrim)
auto get_clone () const -> std::unique_ptr< Reconstructor< System > > 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, 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.
bool reconstruct_rho_times_temperature () const override
Public Member Functions inherited from grmhd::GhValenciaDivClean::fd::Reconstructor< System >
 Reconstructor (const Reconstructor &)=default
Reconstructoroperator= (const Reconstructor &)=default
 Reconstructor (Reconstructor &&)=default
Reconstructoroperator= (Reconstructor &&)=default
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 = false

Friends

template<typename LocalSystem>
bool operator== (const MonotonisedCentralPrim< LocalSystem > &lhs, const MonotonisedCentralPrim< LocalSystem > &rhs)
template<typename LocalSystem>
bool operator!= (const MonotonisedCentralPrim< LocalSystem > &lhs, const MonotonisedCentralPrim< LocalSystem > &rhs)

Detailed Description

template<typename System>
class grmhd::GhValenciaDivClean::fd::MonotonisedCentralPrim< System >

Monotonised central reconstruction on the GRMHD primitive variables (see fd::reconstruction::monotonised_central() for details) and unlimited 3rd order (degree 2 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, \(\Phi_{iab}\), and \(\Pi_{ab}\) are all reconstructed since the Riemann solver on the DG element also needs to solve for the metric variables.

Member Typedef Documentation

◆ options

Initial value:
tmpl::list<AtmosphereTreatment, ReconstructRhoTimesTemperature>

◆ reconstruction_argument_tags

template<typename System>
using grmhd::GhValenciaDivClean::fd::MonotonisedCentralPrim< System >::reconstruction_argument_tags
Initial value:
tmpl::list<::Tags::Variables<hydro::grmhd_tags<DataVector>>,
typename System::variables_tag,
The global cache tag for the variable fixer.
Definition Tags.hpp:41
The Element associated with the DataBox.
Definition Tags.hpp:52
The ghost data used for reconstructing the solution on the interfaces between elements.
Definition GhostDataForReconstruction.hpp:25
The mesh on the subcells.
Definition Mesh.hpp:22
The equation of state retrieved from the analytic solution / data in the input file.
Definition Tags.hpp:343

Member Function Documentation

◆ get_clone()

◆ ghost_zone_size()

template<typename System>
size_t grmhd::GhValenciaDivClean::fd::MonotonisedCentralPrim< System >::ghost_zone_size ( ) const
inlineoverridevirtual

◆ reconstruct_rho_times_temperature()

template<typename System>
bool grmhd::GhValenciaDivClean::fd::MonotonisedCentralPrim< System >::reconstruct_rho_times_temperature ( ) const
overridevirtual

Member Data Documentation

◆ help

Initial value:
{
"Monotonised central reconstruction scheme using primitive variables and "
"the metric variables."}

The documentation for this class was generated from the following file:
  • src/Evolution/Systems/GrMhd/GhValenciaDivClean/FiniteDifference/MonotonisedCentral.hpp