Abstract base class for analytic worldtube data most easily derived in spherical coordinate form.
More...
|
|
| WRAPPED_PUPable_abstract (SphericalMetricData) |
| |
|
| SphericalMetricData (CkMigrateMessage *msg) noexcept |
| |
|
| SphericalMetricData (const double extraction_radius) noexcept |
| |
| void | jacobian (gsl::not_null< SphericaliCartesianJ * > jacobian, size_t l_max) const noexcept |
| |
| void | inverse_jacobian (gsl::not_null< CartesianiSphericalJ * > inverse_jacobian, size_t l_max) const noexcept |
| |
| void | dr_inverse_jacobian (gsl::not_null< CartesianiSphericalJ * > dr_inverse_jacobian, size_t l_max) const noexcept |
| |
|
void | pup (PUP::er &p) noexcept override |
| |
|
| WRAPPED_PUPable_abstract (WorldtubeData) |
| |
|
| WorldtubeData (const double extraction_radius) noexcept |
| |
|
| WorldtubeData (CkMigrateMessage *msg) noexcept |
| |
|
virtual std::unique_ptr< WorldtubeData > | get_clone () const noexcept=0 |
| |
| template<typename... Tags> |
| tuples::TaggedTuple< Tags... > | variables (const size_t output_l_max, const double time, tmpl::list< Tags... >) const noexcept |
| | Retrieve worldtube data represented by the analytic solution, at boundary angular resolution l_max and time time More...
|
| |
|
void | pup (PUP::er &p) noexcept override |
| |
|
virtual std::unique_ptr< Cce::InitializeJ::InitializeJ< false > > | get_initialize_j (const double) const noexcept |
| |
|
virtual bool | use_noninertial_news () const noexcept |
| |
|
| void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > spacetime_metric, size_t l_max, double time, tmpl::type_< gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector > >) const noexcept override |
| | Computes the Cartesian spacetime metric from the spherical solution provided by the derived classes. More...
|
| |
| void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > dt_spacetime_metric, size_t l_max, double time, tmpl::type_<::Tags::dt< gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector > > >) const noexcept override |
| | Computes the time derivative of the Cartesian spacetime metric from the spherical solution provided by the derived classes. More...
|
| |
| void | variables_impl (gsl::not_null< tnsr::iaa< DataVector, 3 > * > d_spacetime_metric, size_t l_max, double time, tmpl::type_< GeneralizedHarmonic::Tags::Phi< 3, ::Frame::Inertial > >) const noexcept override |
| | Computes the spatial derivatives of the Cartesian spacetime metric from the spherical solution provided by the derived classes. More...
|
| |
| virtual void | spherical_metric (gsl::not_null< tnsr::aa< DataVector, 3, ::Frame::Spherical<::Frame::Inertial > > * > spherical_metric, size_t l_max, double time) const noexcept=0 |
| | Must be overriden in the derived class; should compute the spacetime metric of the analytic solution in spherical coordinates. More...
|
| |
| virtual void | dr_spherical_metric (gsl::not_null< tnsr::aa< DataVector, 3, ::Frame::Spherical<::Frame::Inertial > > * > dr_spherical_metric, size_t l_max, double time) const noexcept=0 |
| | Must be overriden in the derived class; should compute the first radial derivative of the spacetime metric of the analytic solution in spherical coordinates. More...
|
| |
| virtual void | dt_spherical_metric (gsl::not_null< tnsr::aa< DataVector, 3, ::Frame::Spherical<::Frame::Inertial > > * > dt_spherical_metric, size_t l_max, double time) const noexcept=0 |
| | Must be overriden in the derived class; should compute the first time derivative of the spacetime metric of the analytic solution in spherical coordinates. More...
|
| |
| virtual void | variables_impl (gsl::not_null< tnsr::i< DataVector, 3 > * > cartesian_coordinates, size_t output_l_max, double time, tmpl::type_< Tags::CauchyCartesianCoords >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::i< DataVector, 3 > * > dr_cartesian_coordinates, size_t output_l_max, double time, tmpl::type_< Tags::Dr< Tags::CauchyCartesianCoords > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > spacetime_metric, size_t output_l_max, double time, tmpl::type_< gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector > >) const noexcept=0 |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > dt_spacetime_metric, size_t output_l_max, double time, tmpl::type_<::Tags::dt< gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector > > >) const noexcept=0 |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > pi, size_t output_l_max, double time, tmpl::type_< GeneralizedHarmonic::Tags::Pi< 3, ::Frame::Inertial > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::iaa< DataVector, 3 > * > d_spacetime_metric, size_t output_l_max, double time, tmpl::type_< GeneralizedHarmonic::Tags::Phi< 3, ::Frame::Inertial > >) const noexcept=0 |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::ii< DataVector, 3 > * > spatial_metric, size_t output_l_max, double time, tmpl::type_< gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::ii< DataVector, 3 > * > dt_spatial_metric, size_t output_l_max, double time, tmpl::type_< ::Tags::dt< gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector > > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::ii< DataVector, 3 > * > dr_spatial_metric, size_t output_l_max, double time, tmpl::type_< Tags::Dr< gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector > > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::I< DataVector, 3 > * > shift, size_t output_l_max, double time, tmpl::type_< gr::Tags::Shift< 3, ::Frame::Inertial, DataVector > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::I< DataVector, 3 > * > dt_shift, size_t output_l_max, double time, tmpl::type_<::Tags::dt< gr::Tags::Shift< 3, ::Frame::Inertial, DataVector > > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< tnsr::I< DataVector, 3 > * > dr_shift, size_t output_l_max, double time, tmpl::type_< Tags::Dr< gr::Tags::Shift< 3, ::Frame::Inertial, DataVector > > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< Scalar< DataVector > * > lapse, size_t output_l_max, double time, tmpl::type_< gr::Tags::Lapse< DataVector > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< Scalar< DataVector > * > dt_lapse, size_t output_l_max, double time, tmpl::type_<::Tags::dt< gr::Tags::Lapse< DataVector > > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< Scalar< DataVector > * > dr_lapse, size_t output_l_max, double time, tmpl::type_< Tags::Dr< gr::Tags::Lapse< DataVector > > >) const noexcept |
| |
| virtual void | variables_impl (gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, -2 > > * > news, size_t output_l_max, double time, tmpl::type_< Tags::News >) const noexcept=0 |
| |
|
template<typename Tag > |
| const auto & | cache_or_compute (const size_t output_l_max, const double time) const noexcept |
| |
| virtual void | prepare_solution (size_t output_l_max, double time) const noexcept=0 |
| |
|
|
using | creatable_classes = tmpl::list< BouncingBlackHole, GaugeWave, LinearizedBondiSachs, RobinsonTrautman, RotatingSchwarzschild, TeukolskyWave > |
| |
|
using | tags = tmpl::list< Tags::CauchyCartesianCoords, Tags::Dr< Tags::CauchyCartesianCoords >, gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector >, ::Tags::dt< gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector > >, GeneralizedHarmonic::Tags::Pi< 3, ::Frame::Inertial >, GeneralizedHarmonic::Tags::Phi< 3, ::Frame::Inertial >, gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector >, ::Tags::dt< gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector > >, Tags::Dr< gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector > >, gr::Tags::Shift< 3, ::Frame::Inertial, DataVector >, ::Tags::dt< gr::Tags::Shift< 3, ::Frame::Inertial, DataVector > >, Tags::Dr< gr::Tags::Shift< 3, ::Frame::Inertial, DataVector > >, gr::Tags::Lapse< DataVector >, ::Tags::dt< gr::Tags::Lapse< DataVector > >, Tags::Dr< gr::Tags::Lapse< DataVector > >, Tags::News > |
| | The set of available tags provided by the analytic solution.
|
| |
|
using | IntermediateCacheTuple = tuples::tagged_tuple_from_typelist< tmpl::transform< tmpl::list< Tags::CauchyCartesianCoords, Tags::Dr< Tags::CauchyCartesianCoords >, gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector >, GeneralizedHarmonic::Tags::Pi< 3, ::Frame::Inertial >, GeneralizedHarmonic::Tags::Phi< 3, ::Frame::Inertial >, gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector >, gr::Tags::Shift< 3, ::Frame::Inertial, DataVector >, gr::Tags::Lapse< DataVector >, ::Tags::dt< gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector > >, ::Tags::dt< gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector > >, ::Tags::dt< gr::Tags::Shift< 3, ::Frame::Inertial, DataVector > >, ::Tags::dt< gr::Tags::Lapse< DataVector > >, Tags::Dr< gr::Tags::SpatialMetric< 3, ::Frame::Inertial, DataVector > >, Tags::Dr< gr::Tags::Shift< 3, ::Frame::Inertial, DataVector > >, Tags::Dr< gr::Tags::Lapse< DataVector > >, Tags::News >, tmpl::bind< IntermediateCacheTag, tmpl::_1 > > > |
| |
|
IntermediateCacheTuple | intermediate_cache_ |
| |
|
double | extraction_radius_ = std::numeric_limits<double>::quiet_NaN() |
| |
Abstract base class for analytic worldtube data most easily derived in spherical coordinate form.
Details
This class provides the functions required by the WorldtubeData interface that convert from a spherical coordinate spacetime metric to Cartesian coordinates. Derived classes of SphericalMetricData need not implement the variables_impls for the Cartesian quantities. Instead, the derived classes must override the protected functions:
Derived classes are still responsible for overriding WorldtubeData::get_clone(), WorldtubeData::variables_impl() for tag Cce::Tags::News, and WorldtubeData::prepare_solution().