SpECTRE
v2024.12.16
|
Initialize \(J\) on the first hypersurface from provided boundary values of \(J\), \(R\), and \(\partial_r J\). More...
#include <InverseCubic.hpp>
Public Types | |
using | options = tmpl::list<> |
Public Types inherited from Cce::InitializeJ::InitializeJ< true > | |
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 | |
WRAPPED_PUPable_decl_template (InverseCubic) | |
InverseCubic (CkMigrateMessage *) | |
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, 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 override |
void | pup (PUP::er &) override |
Public Member Functions inherited from Cce::InitializeJ::InitializeJ< true > | |
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 |
Static Public Attributes | |
static constexpr Options::String | help |
Initialize \(J\) on the first hypersurface from provided boundary values of \(J\), \(R\), and \(\partial_r J\).
This initial data is chosen to take the function:
\[ J = \frac{A}{r} + \frac{B}{r^3},\]
where
\begin{align*} A &= R \left( \frac{3}{2} J|_{r = R} + \frac{1}{2} R \partial_r J|_{r = R}\right) \notag\\ B &= - \frac{1}{2} R^3 (J|_{r = R} + R \partial_r J|_{r = R}) \end{align*}
|
overridevirtual |
Implements Cce::InitializeJ::InitializeJ< true >.
|
overridevirtual |
Implements Cce::InitializeJ::InitializeJ< true >.
|
staticconstexpr |