SpECTRE  v2024.04.12
Cce::InitializeJ::InitializeJ< true > Struct Referenceabstract

Abstract base class for an initial hypersurface data generator for Cce, when the partially flat Bondi-like coordinates are 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, Tags::PartiallyFlatCartesianCoords, Tags::PartiallyFlatAngularCoords >
 
using argument_tags = tmpl::push_back< boundary_tags, Tags::LMax, Tags::NumberOfRadialPoints >
 
using creatable_classes = tmpl::list< InverseCubic< true > >
 

Public Member Functions

 InitializeJ (CkMigrateMessage *)
 
 WRAPPED_PUPable_abstract (InitializeJ)
 
virtual std::unique_ptr< InitializeJ< true > > 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, gsl::not_null< tnsr::i< DataVector, 3 > * > cartesian_inertial_coordinates, gsl::not_null< tnsr::i< DataVector, 2, ::Frame::Spherical<::Frame::Inertial > > * > angular_inertial_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
 

Detailed Description

Abstract base class for an initial hypersurface data generator for Cce, when the partially flat Bondi-like coordinates are evolved.

Details

The algorithm is same as InitializeJ<false>, but with an additional initialization for the partially flat Bondi-like coordinates. The functions that are required to be overriden in the derived classes are:

  • InitializeJ::get_clone(): should return a std::unique_ptr<InitializeJ<true>> 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.
    Note
    The 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.

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