SpECTRE
v2024.04.12
|
Compute the RHS terms and flux values for both the Generalized Harmonic formulation of Einstein's equations and the Valencia formulation of the GRMHD equations with divergence cleaning. More...
#include <TimeDerivativeTerms.hpp>
Public Types | |
using | gh_dt_tags = db::wrap_tags_in<::Tags::dt, typename gh::System< 3_st >::variables_tag::tags_list > |
using | valencia_dt_tags = db::wrap_tags_in< ::Tags::dt, typename grmhd::ValenciaDivClean::System::variables_tag::tags_list > |
using | dt_tags = tmpl::append< gh_dt_tags, valencia_dt_tags > |
using | d_spatial_metric = ::Tags::deriv< gr::Tags::SpatialMetric< DataVector, 3 >, tmpl::size_t< 3 >, Frame::Inertial > |
using | valencia_flux_tags = tmpl::transform< typename grmhd::ValenciaDivClean::System::flux_variables, tmpl::bind<::Tags::Flux, tmpl::_1, tmpl::pin< tmpl::size_t< 3_st > >, tmpl::pin< Frame::Inertial > > > |
using | gh_temp_tags = typename gh::TimeDerivative< 3_st >::temporary_tags |
using | gh_gradient_tags = typename gh::System< 3_st >::gradients_tags |
using | gh_arg_tags = typename gh::TimeDerivative< 3_st >::argument_tags |
using | valencia_temp_tags = typename grmhd::ValenciaDivClean::TimeDerivativeTerms::temporary_tags |
using | valencia_extra_temp_tags = tmpl::list<::Tags::deriv< gr::Tags::Lapse< DataVector >, tmpl::size_t< 3 >, Frame::Inertial >, ::Tags::deriv< gr::Tags::Shift< DataVector, 3 >, tmpl::size_t< 3 >, Frame::Inertial >, gr::Tags::ExtrinsicCurvature< DataVector, 3 > > |
using | valencia_arg_tags = tmpl::list_difference< typename grmhd::ValenciaDivClean::TimeDerivativeTerms::argument_tags, tmpl::append< gh_temp_tags, valencia_extra_temp_tags > > |
using | trace_reversed_stress_result_tags = tmpl::list< Tags::TraceReversedStressEnergy, Tags::FourVelocityOneForm, Tags::ComovingMagneticFieldOneForm > |
using | trace_reversed_stress_argument_tags = tmpl::list< hydro::Tags::RestMassDensity< DataVector >, hydro::Tags::SpatialVelocityOneForm< DataVector, 3_st, Frame::Inertial >, hydro::Tags::MagneticFieldOneForm< DataVector, 3_st, Frame::Inertial >, hydro::Tags::MagneticFieldSquared< DataVector >, hydro::Tags::MagneticFieldDotSpatialVelocity< DataVector >, hydro::Tags::LorentzFactor< DataVector >, grmhd::ValenciaDivClean::TimeDerivativeTerms::OneOverLorentzFactorSquared, hydro::Tags::Pressure< DataVector >, hydro::Tags::SpecificInternalEnergy< DataVector >, gr::Tags::SpacetimeMetric< DataVector, 3 >, gr::Tags::Shift< DataVector, 3_st >, gr::Tags::Lapse< DataVector > > |
using | extra_temp_tags = tmpl::list< gr::Tags::SpatialMetric< DataVector, 3 > > |
using | temporary_tags = tmpl::remove< tmpl::remove_duplicates< tmpl::append< gh_temp_tags, valencia_temp_tags, valencia_extra_temp_tags, trace_reversed_stress_result_tags, extra_temp_tags > >, gr::Tags::SpatialMetric< DataVector, 3 > > |
using | argument_tags = tmpl::remove< tmpl::remove< tmpl::append< gh_arg_tags, valencia_arg_tags >, gr::Tags::SpatialMetric< DataVector, 3 > >, d_spatial_metric > |
Static Public Member Functions | |
template<typename... Args> | |
static void | apply (const gsl::not_null< Variables< dt_tags > * > dt_vars_ptr, const gsl::not_null< Variables< db::wrap_tags_in< ::Tags::Flux, typename ValenciaDivClean::System::flux_variables, tmpl::size_t< 3 >, Frame::Inertial > > * > fluxes_ptr, const gsl::not_null< Variables< temporary_tags > * > temps_ptr, const tnsr::iaa< DataVector, 3 > &d_spacetime_metric, const tnsr::iaa< DataVector, 3 > &d_pi, const tnsr::ijaa< DataVector, 3 > &d_phi, const Args &... args) |
Compute the RHS terms and flux values for both the Generalized Harmonic formulation of Einstein's equations and the Valencia formulation of the GRMHD equations with divergence cleaning.
The bulk of the computations in this class dispatch to gh::TimeDerivative
and grmhd::ValenciaDivClean::TimeDerivativeTerms
as a 'product system' – each independently operating on its own subset of the supplied variable collections. The additional step is taken to compute the trace-reversed stress energy tensor associated with the GRMHD part of the system and add its contribution to the \(\partial_t \Pi_{a b}\) variable in the Generalized Harmonic system, which is the only explicit coupling required to back-react the effect of matter on the spacetime solution.