SpECTRE
v2024.05.11
|
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.