Initialize \(J\) on the first hypersurface to be vanishing, finding the appropriate angular coordinates to be continuous with the provided worldtube boundary data.
More...
|
| WRAPPED_PUPable_decl_template (ZeroNonSmooth) |
|
| ZeroNonSmooth (CkMigrateMessage *) |
|
| ZeroNonSmooth (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 to be vanishing, finding the appropriate angular coordinates to be continuous with the provided worldtube boundary data.
Details
Internally, this performs an iterative solve for the angular coordinates necessary to give rise to a vanishing gauge-transformed J on the worldtube boundary. The parameters for the iterative procedure are determined by options ZeroNonSmooth::AngularCoordinateTolerance
and ZeroNonSmooth::MaxIterations
. The resulting J
will necessarily have vanishing first radial derivative, and so will typically not be smooth (only continuous) with the provided Cauchy data at the worldtube boundary.