|
| 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 |
|
| 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 |
|
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
.