SpECTRE
v2024.09.29
|
Abstract base class for an initial hypersurface data generator for Cce, when the partially flat Bondi-like coordinates are not evolved. More...
#include <InitializeJ.hpp>
Public Types | |
using | boundary_tags = tmpl::list< Tags::BoundaryValue< Tags::BondiJ >, Tags::BoundaryValue< Tags::Dr< Tags::BondiJ > >, Tags::BoundaryValue< Tags::BondiR >, Tags::BoundaryValue< Tags::BondiBeta > > |
using | mutate_tags = tmpl::list< Tags::BondiJ, Tags::CauchyCartesianCoords, Tags::CauchyAngularCoords > |
using | argument_tags = tmpl::push_back< boundary_tags, Tags::LMax, Tags::NumberOfRadialPoints > |
using | creatable_classes = tmpl::list< ConformalFactor, InverseCubic< false >, NoIncomingRadiation, ZeroNonSmooth > |
Public Member Functions | |
InitializeJ (CkMigrateMessage *) | |
WRAPPED_PUPable_abstract (InitializeJ) | |
virtual std::unique_ptr< InitializeJ< false > > | get_clone () const =0 |
virtual void | operator() (gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, 2 > > * > j, gsl::not_null< tnsr::i< DataVector, 3 > * > cartesian_cauchy_coordinates, gsl::not_null< tnsr::i< DataVector, 2, ::Frame::Spherical<::Frame::Inertial > > * > angular_cauchy_coordinates, const Scalar< SpinWeighted< ComplexDataVector, 2 > > &boundary_j, const Scalar< SpinWeighted< ComplexDataVector, 2 > > &boundary_dr_j, const Scalar< SpinWeighted< ComplexDataVector, 0 > > &r, const Scalar< SpinWeighted< ComplexDataVector, 0 > > &beta, size_t l_max, size_t number_of_radial_points, gsl::not_null< Parallel::NodeLock * > hdf5_lock) const =0 |
Abstract base class for an initial hypersurface data generator for Cce, when the partially flat Bondi-like coordinates are not evolved.
The functions that are required to be overriden in the derived classes are:
InitializeJ::get_clone()
: should return a std::unique_ptr<InitializeJ<false>>
with cloned state.InitializeJ::operator() const
: should take as arguments, first a set of gsl::not_null
pointers represented by mutate_tags
, followed by a set of const
references to quantities represented by argument_tags
. InitializeJ::operator()
should be const, and therefore not alter the internal state of the generator. This is compatible with all known use-cases and permits the InitializeJ
generator to be placed in the GlobalCache
.