TimeDerivative.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
10 #include "Utilities/TMPL.hpp"
11 
12 /// \cond
13 namespace gsl {
14 template <typename T>
15 class not_null;
16 } // namespace gsl
17 
18 class DataVector;
19 /// \endcond
20 
21 namespace ScalarWave {
22 /*!
23  * \brief Compute the time derivatives for scalar wave system
24  */
25 template <size_t Dim>
27  using temporary_tags = tmpl::list<>;
28  using argument_tags = tmpl::list<Pi, Phi<Dim>, Tags::ConstraintGamma2>;
29 
30  static void apply(
31  // Time derivatives returned by reference. All the tags in the
32  // variables_tag in the system struct.
34  gsl::not_null<tnsr::i<DataVector, Dim, Frame::Inertial>*> dt_phi,
36 
37  // Partial derivative arguments. Listed in the system struct as
38  // gradient_variables.
39  const tnsr::i<DataVector, Dim, Frame::Inertial>& d_pi,
40  const tnsr::ij<DataVector, Dim, Frame::Inertial>& d_phi,
41  const tnsr::i<DataVector, Dim, Frame::Inertial>& d_psi,
42 
43  // Terms list in argument_tags above
44  const Scalar<DataVector>& pi,
45  const tnsr::i<DataVector, Dim, Frame::Inertial>& phi,
46  const Scalar<DataVector>& gamma2) noexcept;
47 };
48 } // namespace ScalarWave
ScalarWave::Tags::ConstraintGamma2
Definition: Tags.hpp:37
GeneralizedHarmonic::pi
void pi(gsl::not_null< tnsr::aa< DataType, SpatialDim, Frame > * > pi, const Scalar< DataType > &lapse, const Scalar< DataType > &dt_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::I< DataType, SpatialDim, Frame > &dt_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ii< DataType, SpatialDim, Frame > &dt_spatial_metric, const tnsr::iaa< DataType, SpatialDim, Frame > &phi) noexcept
Computes the conjugate momentum of the spacetime metric .
ScalarWave::TimeDerivative
Compute the time derivatives for scalar wave system.
Definition: TimeDerivative.hpp:26
Tags.hpp
DataVector
Stores a collection of function values.
Definition: DataVector.hpp:42
GeneralizedHarmonic::phi
void phi(gsl::not_null< tnsr::iaa< DataType, SpatialDim, Frame > * > phi, const Scalar< DataType > &lapse, const tnsr::i< DataType, SpatialDim, Frame > &deriv_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::iJ< DataType, SpatialDim, Frame > &deriv_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &deriv_spatial_metric) noexcept
Computes the auxiliary variable used by the generalized harmonic formulation of Einstein's equations...
Variables.hpp
Scalar
Tensor< T, Symmetry<>, index_list<> > Scalar
Definition: TypeAliases.hpp:21
TypeAliases.hpp
ScalarWave
Items related to evolving the scalar wave equation.
Definition: Characteristics.cpp:16
PartialDerivatives.hpp
gsl
Implementations from the Guideline Support Library.
Definition: Gsl.hpp:80
TMPL.hpp
gsl::not_null
Require a pointer to not be a nullptr
Definition: Gsl.hpp:183