SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
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
using scalar_dt_tags
using dt_tags = tmpl::append<gh_dt_tags, scalar_dt_tags>
using gh_temp_tags
using gh_gradient_tags = typename gh::System<dim>::gradients_tags
using gh_arg_tags
using scalar_temp_tags
using scalar_extra_temp_tags
using scalar_gradient_tags
using gradient_tags = tmpl::append<gh_gradient_tags, scalar_gradient_tags>
using scalar_arg_tags
using temporary_tags
using argument_tags

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
static constexpr bool backreaction_is_enabled = false

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 \(\partial_t \Pi_{a b}\) variable in the Generalized Harmonic system, as well as adding any scalar sources to the variable \(\partial_t \Pi\).

Warning
Backreaction of the scalar field onto the metric is currently disabled and the system is evolved in the test-field (or decoupling) approximation.

Member Typedef Documentation

◆ argument_tags

using ScalarTensor::TimeDerivative::argument_tags
Initial value:
tmpl::append<gh_arg_tags, scalar_arg_tags,
tmpl::list<ScalarTensor::Tags::ScalarSource>>

◆ gh_arg_tags

using ScalarTensor::TimeDerivative::gh_arg_tags
Initial value:
tmpl::list< gh::Solutions::WrappedGr< ::ScalarTensor::AnalyticData::KerrSphericalHarmonic > > all_analytic_data
List of all analytic solutions.
Definition Factory.hpp:14
Compute the RHS of the Generalized Harmonic formulation of Einstein's equations.
Definition TimeDerivative.hpp:108

◆ gh_dt_tags

using ScalarTensor::TimeDerivative::gh_dt_tags
Initial value:
typename gh::System<dim>::variables_tag::tags_list>
tmpl::transform< TagList, tmpl::bind< Wrapper, tmpl::_1, tmpl::pin< Args >... > > wrap_tags_in
Create a new tmpl::list of tags by wrapping each tag in TagList in Wrapper<_, Args....
Definition PrefixHelpers.hpp:29
Prefix indicating a time derivative.
Definition Prefixes.hpp:28

◆ gh_temp_tags

using ScalarTensor::TimeDerivative::gh_temp_tags
Initial value:

◆ scalar_arg_tags

using ScalarTensor::TimeDerivative::scalar_arg_tags
Initial value:
typename CurvedScalarWave::TimeDerivative<dim>::argument_tags

◆ scalar_dt_tags

using ScalarTensor::TimeDerivative::scalar_dt_tags
Initial value:
typename CurvedScalarWave::System<dim>::variables_tag::tags_list>

◆ scalar_extra_temp_tags

using ScalarTensor::TimeDerivative::scalar_extra_temp_tags
Initial value:
Stores a collection of function values.
Definition DataVector.hpp:48
Definition IndexType.hpp:46
Represents the trace-reversed stress-energy tensor of the scalar field.
Definition Tags.hpp:35

◆ scalar_gradient_tags

using ScalarTensor::TimeDerivative::scalar_gradient_tags
Initial value:
typename CurvedScalarWave::System<dim>::gradients_tags

◆ scalar_temp_tags

using ScalarTensor::TimeDerivative::scalar_temp_tags
Initial value:
typename CurvedScalarWave::TimeDerivative<dim>::temporary_tags

◆ temporary_tags

using ScalarTensor::TimeDerivative::temporary_tags
Initial value:
tmpl::remove_duplicates<
tmpl::append<gh_temp_tags, scalar_temp_tags, scalar_extra_temp_tags>>

The documentation for this struct was generated from the following file:
  • src/Evolution/Systems/ScalarTensor/TimeDerivative.hpp