SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ScalarTensor::TimeDerivative Struct Reference

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
 

Detailed Description

Compute the RHS terms of the evolution equations for the scalar tensor system.

Details

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 tΠab variable in the Generalized Harmonic system, as well as adding any scalar sources to the variable tΠ.


The documentation for this struct was generated from the following file: