SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Cce::InitializeJ::ConformalFactor Struct Reference

Generate initial data that has a conformal factor ω chosen to compensate for the boundary value of β so that the initial time coordinate is approximately inertial at I+. More...

#include <ConformalFactor.hpp>

Classes

struct  AngularCoordinateTolerance
 
struct  ConformalFactorIterationHeuristic
 
struct  InputModes
 
struct  InputModesFromFile
 
struct  MaxIterations
 
struct  OptimizeL0Mode
 
struct  RequireConvergence
 
struct  UseBetaIntegralEstimate
 
struct  UseInputModes
 

Public Types

using options = implementation defined
 
- Public Types inherited from Cce::InitializeJ::InitializeJ< false >
using boundary_tags = implementation defined
 
using mutate_tags = implementation defined
 
using argument_tags = implementation defined
 
using creatable_classes = implementation defined
 

Public Member Functions

 WRAPPED_PUPable_decl_template (ConformalFactor)
 
 ConformalFactor (CkMigrateMessage *msg)
 
 ConformalFactor (double angular_coordinate_tolerance, size_t max_iterations, bool require_convergence, bool optimize_l_0_mode, bool use_beta_integral_estimate, ::Cce::InitializeJ::ConformalFactorIterationHeuristic iteration_heuristic, bool use_input_modes, std::string input_mode_filename)
 
 ConformalFactor (double angular_coordinate_tolerance, size_t max_iterations, bool require_convergence, bool optimize_l_0_mode, bool use_beta_integral_estimate, ::Cce::InitializeJ::ConformalFactorIterationHeuristic iteration_heuristic, bool use_input_modes, std::vector< std::complex< double > > input_modes)
 
std::unique_ptr< InitializeJ > get_clone () const override
 
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 override
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from Cce::InitializeJ::InitializeJ< false >
 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
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

Generate initial data that has a conformal factor ω chosen to compensate for the boundary value of β so that the initial time coordinate is approximately inertial at I+.

Details

The core calculation for this initial data choice is the iterative optimization of the angular conformal factor ω such that it cancels some portion of the value of e2β that contributes to the definition of the asymptotically inertial time. The initial data generation process proceeds slightly differently depending on the set of input options that are used:

  • If UseBetaIntegralEstimate is false, the conformal factor will be optimized to minimize the transformed value of β on the worldtube boundary.
  • If UseBetaIntegralEstimate is true, the conformal factor will be optimized to minimize an estimate of the asymptotic value of β in the evolved coordinates.
  • OptimizeL0Mode indicates whether the l=0 mode of the conformal factor shoudl be included in the optimization. This option is useful because the optimization can usually find a better solution when the l=0 mode is ignored, and the l=0 should not contribute significantly to the resulting waveform.
  • If UseInputModes is false, the J value on the initial hypersurface will be set by an A/r+B/r3 ansatz, chosen to match the worldtube boundary value of J and rJ in the new coordinates. In this case, the alternative arguments InputModes or InputModesFromFile are ignored.
  • If UseInputModes is true, the 1/r part of J will be set to spin-weighted spherical harmonic modes specified by either an input h5 file (in the case of using the input option InputModesFromFile) or from a list of complex values specified in the input file (in the case of using the input option InputModes). Then, the 1/r3 and 1/r4 parts of J are chosen to match the boundary value of J and rJ on the worldtube boundary in the new coordinates.

Member Function Documentation

◆ get_clone()

std::unique_ptr< InitializeJ > Cce::InitializeJ::ConformalFactor::get_clone ( ) const
overridevirtual

◆ operator()()

void Cce::InitializeJ::ConformalFactor::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
overridevirtual

Member Data Documentation

◆ help

constexpr Options::String Cce::InitializeJ::ConformalFactor::help
staticconstexpr
Initial value:
= {
"Generate CCE initial data based on choosing an angular conformal factor "
"based on the value of the CCE scalar beta in an attempt to make the "
"time variable approximately asymptotically inertial"}

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