SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Cce::InitializeJ::NoIncomingRadiation Struct Reference

Initialize \(J\) on the first hypersurface by constraining \(\Psi_0 = 0\). More...

#include <NoIncomingRadiation.hpp>

Classes

struct  AngularCoordinateTolerance
struct  MaxIterations
struct  RequireConvergence

Public Types

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

Public Member Functions

 WRAPPED_PUPable_decl_template (NoIncomingRadiation)
 NoIncomingRadiation (CkMigrateMessage *)
 NoIncomingRadiation (double angular_coordinate_tolerance, size_t max_iterations, bool require_convergence=false)
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)

Static Public Attributes

static constexpr Options::String help

Detailed Description

Initialize \(J\) on the first hypersurface by constraining \(\Psi_0 = 0\).

Details

This algorithm first radially evolves the \(\Psi_0 = 0\) condition, which can be converted to a second-order radial ODE for J. Then, the initial data generator performs an iterative solve for the angular coordinates necessary to ensure asymptotic flatness. The parameters for the iterative procedure are determined by options AngularCoordinateTolerance and MaxIterations.

Member Typedef Documentation

◆ options

using Cce::InitializeJ::NoIncomingRadiation::options
Initial value:
tmpl::list<AngularCoordinateTolerance, MaxIterations, RequireConvergence>

Member Function Documentation

◆ get_clone()

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

◆ operator()()

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

Options::String Cce::InitializeJ::NoIncomingRadiation::help
staticconstexpr
Initial value:
= {
"Initialization process where J is set so Psi0 is vanishing\n"
"(roughly a no incoming radiation condition)"}

The documentation for this struct was generated from the following file:
  • src/Evolution/Systems/Cce/Initialize/NoIncomingRadiation.hpp