SpECTRE  2021.08.02
AnalyticData< Dim, Registrars > Class Template Reference

Provides analytic tensor data as a function of the spatial coordinates. More...

#include <AnalyticData.hpp>

Public Types

using registrars = Registrars
 
using creatable_classes = Registration::registrants< registrars >
 

Public Member Functions

template<typename DataType , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, Dim > &x, tmpl::list< Tags... >) const noexcept
 Retrieve a collection of tensor fields at spatial coordinate(s) x
 
template<typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataVector, Dim > &x, const Mesh< Dim > &mesh, const InverseJacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > &inv_jacobian, tmpl::list< Tags... >) const noexcept
 Retrieve a collection of tensor fields at spatial coordinate(s) x More...
 

Static Public Attributes

static constexpr size_t volume_dim = Dim
 

Detailed Description

template<size_t Dim, typename Registrars>
class AnalyticData< Dim, Registrars >

Provides analytic tensor data as a function of the spatial coordinates.

This abstract base class allows factory-creating derived classes from input-file options (see Registration). Both evolution systems and elliptic systems can use this abstract base class for their analytic data classes. Systems that have further requirements on their analytic data classes can add a subclass with additional virtual member functions.

Member Function Documentation

◆ variables()

template<size_t Dim, typename Registrars >
template<typename... Tags>
tuples::TaggedTuple< Tags... > AnalyticData< Dim, Registrars >::variables ( const tnsr::I< DataVector, Dim > &  x,
const Mesh< Dim > &  mesh,
const InverseJacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > &  inv_jacobian,
tmpl::list< Tags... >   
) const
inlinenoexcept

Retrieve a collection of tensor fields at spatial coordinate(s) x

This overload allows computing numeric derivatives using the Mesh and the inverse Jacobian, if necessary.