|
SpECTRE
v2025.08.19
|
Mutator that resizes the primitive variables to the subcell mesh and computes the primitives, but only if evolution::dg::subcell::Tags::DidRollback is true.
More...
#include <PrimsAfterRollback.hpp>
Public Types | |
| using | return_tags = tmpl::list<::Tags::Variables< hydro::grmhd_tags< DataVector > > > |
| using | argument_tags = tmpl::list< evolution::dg::subcell::Tags::DidRollback, domain::Tags::Mesh< 3 >, evolution::dg::subcell::Tags::Mesh< 3 >, grmhd::ValenciaDivClean::Tags::TildeD, grmhd::ValenciaDivClean::Tags::TildeYe, grmhd::ValenciaDivClean::Tags::TildeTau, grmhd::ValenciaDivClean::Tags::TildeS<>, grmhd::ValenciaDivClean::Tags::TildeB<>, grmhd::ValenciaDivClean::Tags::TildePhi, gr::Tags::SpatialMetric< DataVector, 3 >, gr::Tags::InverseSpatialMetric< DataVector, 3 >, gr::Tags::SqrtDetSpatialMetric< DataVector >, hydro::Tags::GrmhdEquationOfState, grmhd::ValenciaDivClean::Tags::PrimitiveFromConservativeOptions > |
Static Public Member Functions | |
| static void | apply (gsl::not_null< Variables< hydro::grmhd_tags< DataVector > > * > prim_vars, bool did_rollback, const Mesh< 3 > &dg_mesh, const Mesh< 3 > &subcell_mesh, const Scalar< DataVector > &tilde_d, const Scalar< DataVector > &tilde_ye, const Scalar< DataVector > &tilde_tau, const tnsr::i< DataVector, 3, Frame::Inertial > &tilde_s, const tnsr::I< DataVector, 3, Frame::Inertial > &tilde_b, const Scalar< DataVector > &tilde_phi, const tnsr::ii< DataVector, 3, Frame::Inertial > &spatial_metric, const tnsr::II< DataVector, 3, Frame::Inertial > &inv_spatial_metric, const Scalar< DataVector > &sqrt_det_spatial_metric, const EquationsOfState::EquationOfState< true, 3 > &eos, const grmhd::ValenciaDivClean::PrimitiveFromConservativeOptions &primitive_from_conservative_options) |
Mutator that resizes the primitive variables to the subcell mesh and computes the primitives, but only if evolution::dg::subcell::Tags::DidRollback is true.
In the DG-subcell step_actions list this will normally be called using the Actions::MutateApply action in the following way in the action list:
Actions::Label<Labels::BeginSubcellAfterDgRollback>Actions::MutateApply<grmhd::ValenciaDivClean::subcell::SwapGrTags>Actions::MutateApply<PrimsAfterRollback<primitive_recovery_schemes>> Note that the GR tags are swapped to the subcell grid before this action is called.