SpECTRE
v2025.03.17
|
Compute the RHS terms of the evolution equations for the scalar tensor system. More...
#include <TimeDerivative.hpp>
Public Types | |
using | gh_dt_tags = db::wrap_tags_in<::Tags::dt, typename gh::System< dim >::variables_tag::tags_list > |
using | scalar_dt_tags = db::wrap_tags_in< ::Tags::dt, typename CurvedScalarWave::System< dim >::variables_tag::tags_list > |
using | dt_tags = implementation defined |
using | gh_temp_tags = typename gh::TimeDerivative< gh::ScalarTensor::AnalyticData::all_analytic_data, dim >::temporary_tags |
using | gh_gradient_tags = typename gh::System< dim >::gradients_tags |
using | gh_arg_tags = typename gh::TimeDerivative< gh::ScalarTensor::AnalyticData::all_analytic_data, dim >::argument_tags |
using | scalar_temp_tags = typename CurvedScalarWave::TimeDerivative< dim >::temporary_tags |
using | scalar_extra_temp_tags = implementation defined |
using | scalar_gradient_tags = typename CurvedScalarWave::System< dim >::gradients_tags |
using | gradient_tags = implementation defined |
using | scalar_arg_tags = typename CurvedScalarWave::TimeDerivative< dim >::argument_tags |
using | temporary_tags = implementation defined |
using | argument_tags = implementation defined |
Static Public Member Functions | |
static evolution::dg::TimeDerivativeDecisions< 3 > | apply (gsl::not_null< tnsr::aa< DataVector, dim > * > dt_spacetime_metric, gsl::not_null< tnsr::aa< DataVector, dim > * > dt_pi, gsl::not_null< tnsr::iaa< DataVector, dim > * > dt_phi, gsl::not_null< Scalar< DataVector > * > dt_psi_scalar, gsl::not_null< Scalar< DataVector > * > dt_pi_scalar, gsl::not_null< tnsr::i< DataVector, dim, Frame::Inertial > * > dt_phi_scalar, gsl::not_null< Scalar< DataVector > * > temp_gamma1, gsl::not_null< Scalar< DataVector > * > temp_gamma2, gsl::not_null< tnsr::a< DataVector, dim > * > temp_gauge_function, gsl::not_null< tnsr::ab< DataVector, dim > * > temp_spacetime_deriv_gauge_function, gsl::not_null< Scalar< DataVector > * > gamma1gamma2, gsl::not_null< Scalar< DataVector > * > half_half_pi_two_normals, gsl::not_null< Scalar< DataVector > * > normal_dot_gauge_constraint, gsl::not_null< Scalar< DataVector > * > gamma1_plus_1, gsl::not_null< tnsr::a< DataVector, dim > * > pi_one_normal, gsl::not_null< tnsr::a< DataVector, dim > * > gauge_constraint, gsl::not_null< tnsr::i< DataVector, dim > * > half_phi_two_normals, gsl::not_null< tnsr::aa< DataVector, dim > * > shift_dot_three_index_constraint, gsl::not_null< tnsr::aa< DataVector, dim > * > mesh_velocity_dot_three_index_constraint, gsl::not_null< tnsr::ia< DataVector, dim > * > phi_one_normal, gsl::not_null< tnsr::aB< DataVector, dim > * > pi_2_up, gsl::not_null< tnsr::iaa< DataVector, dim > * > three_index_constraint, gsl::not_null< tnsr::Iaa< DataVector, dim > * > phi_1_up, gsl::not_null< tnsr::iaB< DataVector, dim > * > phi_3_up, gsl::not_null< tnsr::abC< DataVector, dim > * > christoffel_first_kind_3_up, gsl::not_null< Scalar< DataVector > * > lapse, gsl::not_null< tnsr::I< DataVector, dim > * > shift, gsl::not_null< tnsr::II< DataVector, dim > * > inverse_spatial_metric, gsl::not_null< Scalar< DataVector > * > det_spatial_metric, gsl::not_null< Scalar< DataVector > * > sqrt_det_spatial_metric, gsl::not_null< tnsr::AA< DataVector, dim > * > inverse_spacetime_metric, gsl::not_null< tnsr::abb< DataVector, dim > * > christoffel_first_kind, gsl::not_null< tnsr::Abb< DataVector, dim > * > christoffel_second_kind, gsl::not_null< tnsr::a< DataVector, dim > * > trace_christoffel, gsl::not_null< tnsr::A< DataVector, dim > * > normal_spacetime_vector, gsl::not_null< Scalar< DataVector > * > result_gamma1_scalar, gsl::not_null< Scalar< DataVector > * > result_gamma2_scalar, gsl::not_null< tnsr::aa< DataVector, dim > * > stress_energy, const tnsr::iaa< DataVector, dim > &d_spacetime_metric, const tnsr::iaa< DataVector, dim > &d_pi, const tnsr::ijaa< DataVector, dim > &d_phi, const tnsr::i< DataVector, dim > &d_psi_scalar, const tnsr::i< DataVector, dim > &d_pi_scalar, const tnsr::ij< DataVector, dim > &d_phi_scalar, const tnsr::aa< DataVector, dim > &spacetime_metric, const tnsr::aa< DataVector, dim > &pi, const tnsr::iaa< DataVector, dim > &phi, const Scalar< DataVector > &gamma0, const Scalar< DataVector > &gamma1, const Scalar< DataVector > &gamma2, const gh::gauges::GaugeCondition &gauge_condition, const Mesh< dim > &mesh, double time, const tnsr::I< DataVector, dim, Frame::Inertial > &inertial_coords, const InverseJacobian< DataVector, dim, Frame::ElementLogical, Frame::Inertial > &inverse_jacobian, const std::optional< tnsr::I< DataVector, dim, Frame::Inertial > > &mesh_velocity, const Scalar< DataVector > &pi_scalar, const tnsr::i< DataVector, dim > &phi_scalar, const Scalar< DataVector > &lapse_scalar, const tnsr::I< DataVector, dim > &shift_scalar, const tnsr::i< DataVector, dim > &deriv_lapse, const tnsr::iJ< DataVector, dim > &deriv_shift, const tnsr::II< DataVector, dim > &upper_spatial_metric, const tnsr::I< DataVector, dim > &trace_spatial_christoffel, const Scalar< DataVector > &trace_extrinsic_curvature, const Scalar< DataVector > &gamma1_scalar, const Scalar< DataVector > &gamma2_scalar, const Scalar< DataVector > &scalar_source) |
Static Public Attributes | |
static constexpr size_t | dim = 3 |
Compute the RHS terms of the evolution equations for the scalar tensor system.
The bulk of the computations in this class dispatch to GeneralizedHarmonic::TimeDerivative
and CurvedScalarWave::TimeDerivative
as a 'product system' – each independently operating on its own subset of the supplied variable collections. The additional steps taken are to compute the trace-reversed stress energy tensor associated with the scalar part of the system and add its contribution to the