SpECTRE
v2024.09.29
|
An analytic solution representing a specialization of the radiative Robinson-Trautman solution described in [51]. More...
#include <RobinsonTrautman.hpp>
Classes | |
struct | ExtractionRadius |
struct | InitialModes |
struct | LMax |
struct | StartTime |
struct | Tolerance |
Public Member Functions | |
WRAPPED_PUPable_decl_template (RobinsonTrautman) | |
RobinsonTrautman (CkMigrateMessage *msg) | |
RobinsonTrautman (std::vector< std::complex< double > > initial_modes, double extraction_radius, size_t l_max, double tolerance, double start_time, const Options::Context &context) | |
std::unique_ptr< WorldtubeData > | get_clone () const override |
void | pup (PUP::er &p) override |
bool | use_noninertial_news () const override |
Public Member Functions inherited from Cce::Solutions::SphericalMetricData | |
WRAPPED_PUPable_abstract (SphericalMetricData) | |
SphericalMetricData (CkMigrateMessage *msg) | |
SphericalMetricData (const double extraction_radius) | |
void | jacobian (gsl::not_null< SphericaliCartesianJ * > jacobian, size_t l_max) const |
void | inverse_jacobian (gsl::not_null< CartesianiSphericalJ * > inverse_jacobian, size_t l_max) const |
void | dr_inverse_jacobian (gsl::not_null< CartesianiSphericalJ * > dr_inverse_jacobian, size_t l_max) const |
void | pup (PUP::er &p) override |
Public Member Functions inherited from Cce::Solutions::WorldtubeData | |
WRAPPED_PUPable_abstract (WorldtubeData) | |
WorldtubeData (const double extraction_radius) | |
WorldtubeData (CkMigrateMessage *msg) | |
virtual std::unique_ptr< WorldtubeData > | get_clone () const =0 |
template<typename... Tags> | |
tuples::TaggedTuple< Tags... > | variables (const size_t output_l_max, const double time, tmpl::list< Tags... >) const |
Retrieve worldtube data represented by the analytic solution, at boundary angular resolution l_max and time time More... | |
void | pup (PUP::er &p) override |
virtual std::unique_ptr< Cce::InitializeJ::InitializeJ< false > > | get_initialize_j (const double) const |
virtual bool | use_noninertial_news () const |
Static Public Attributes | |
static constexpr Options::String | help |
Protected Member Functions | |
void | prepare_solution (size_t output_l_max, double time) const override |
The Robinson-Trautman solution performs the time-stepping to advance the internal member scalar used to generate the metric solution to the correct state for time . More... | |
void | spherical_metric (gsl::not_null< tnsr::aa< DataVector, 3, ::Frame::Spherical<::Frame::Inertial > > * > spherical_metric, size_t l_max, double time) const override |
Compute the spherical coordinate metric of the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\). More... | |
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 override |
Compute radial derivative of the spherical coordinate metric of the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\). More... | |
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 override |
Compute time derivative of the spherical coordinate metric of the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\). More... | |
void | variables_impl (gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, -2 > > * > News, size_t l_max, double time, tmpl::type_< Tags::News >) const override |
Compute the news associated with the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\). 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 |
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 |
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< DataVector, 3 > >) const=0 |
Computes the Cartesian spacetime metric from the spherical solution provided by the derived classes. More... | |
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< DataVector, 3 > > >) const=0 |
virtual void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > pi, size_t output_l_max, double time, tmpl::type_< gh::Tags::Pi< DataVector, 3 > >) const |
virtual void | variables_impl (gsl::not_null< tnsr::iaa< DataVector, 3 > * > d_spacetime_metric, size_t output_l_max, double time, tmpl::type_< gh::Tags::Phi< DataVector, 3 > >) const=0 |
Computes the spatial derivatives of the Cartesian spacetime metric from the spherical solution provided by the derived classes. More... | |
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< DataVector, 3 > >) const |
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< DataVector, 3 > > >) const |
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< DataVector, 3 > > >) const |
virtual void | variables_impl (gsl::not_null< tnsr::I< DataVector, 3 > * > shift, size_t output_l_max, double time, tmpl::type_< gr::Tags::Shift< DataVector, 3 > >) const |
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< DataVector, 3 > > >) const |
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< DataVector, 3 > > >) const |
virtual void | variables_impl (gsl::not_null< Scalar< DataVector > * > lapse, size_t output_l_max, double time, tmpl::type_< gr::Tags::Lapse< DataVector > >) const |
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 |
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 |
virtual void | variables_impl (gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, -2 > > * > news, size_t output_l_max, double time, tmpl::type_< Tags::News >) const=0 |
void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > spacetime_metric, size_t l_max, double time, tmpl::type_< gr::Tags::SpacetimeMetric< DataVector, 3 > >) const 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< DataVector, 3 > > >) const 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_< gh::Tags::Phi< DataVector, 3 > >) const override |
Computes the spatial derivatives of the Cartesian spacetime metric from the spherical solution provided by the derived classes. More... | |
Protected Member Functions inherited from Cce::Solutions::SphericalMetricData | |
void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > spacetime_metric, size_t l_max, double time, tmpl::type_< gr::Tags::SpacetimeMetric< DataVector, 3 > >) const 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< DataVector, 3 > > >) const 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_< gh::Tags::Phi< DataVector, 3 > >) const 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 =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 =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 =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 |
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 |
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< DataVector, 3 > >) const=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< DataVector, 3 > > >) const=0 |
virtual void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > pi, size_t output_l_max, double time, tmpl::type_< gh::Tags::Pi< DataVector, 3 > >) const |
virtual void | variables_impl (gsl::not_null< tnsr::iaa< DataVector, 3 > * > d_spacetime_metric, size_t output_l_max, double time, tmpl::type_< gh::Tags::Phi< DataVector, 3 > >) const=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< DataVector, 3 > >) const |
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< DataVector, 3 > > >) const |
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< DataVector, 3 > > >) const |
virtual void | variables_impl (gsl::not_null< tnsr::I< DataVector, 3 > * > shift, size_t output_l_max, double time, tmpl::type_< gr::Tags::Shift< DataVector, 3 > >) const |
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< DataVector, 3 > > >) const |
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< DataVector, 3 > > >) const |
virtual void | variables_impl (gsl::not_null< Scalar< DataVector > * > lapse, size_t output_l_max, double time, tmpl::type_< gr::Tags::Lapse< DataVector > >) const |
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 |
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 |
virtual void | variables_impl (gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, -2 > > * > news, size_t output_l_max, double time, tmpl::type_< Tags::News >) const=0 |
Protected Member Functions inherited from Cce::Solutions::WorldtubeData | |
template<typename Tag > | |
const auto & | cache_or_compute (const size_t output_l_max, const double time) const |
virtual void | prepare_solution (size_t output_l_max, double time) const =0 |
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 |
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 |
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< DataVector, 3 > >) const =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< DataVector, 3 > > >) const =0 |
virtual void | variables_impl (gsl::not_null< tnsr::aa< DataVector, 3 > * > pi, size_t output_l_max, double time, tmpl::type_< gh::Tags::Pi< DataVector, 3 > >) const |
virtual void | variables_impl (gsl::not_null< tnsr::iaa< DataVector, 3 > * > d_spacetime_metric, size_t output_l_max, double time, tmpl::type_< gh::Tags::Phi< DataVector, 3 > >) const =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< DataVector, 3 > >) const |
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< DataVector, 3 > > >) const |
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< DataVector, 3 > > >) const |
virtual void | variables_impl (gsl::not_null< tnsr::I< DataVector, 3 > * > shift, size_t output_l_max, double time, tmpl::type_< gr::Tags::Shift< DataVector, 3 > >) const |
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< DataVector, 3 > > >) const |
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< DataVector, 3 > > >) const |
virtual void | variables_impl (gsl::not_null< Scalar< DataVector > * > lapse, size_t output_l_max, double time, tmpl::type_< gr::Tags::Lapse< DataVector > >) const |
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 |
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 |
virtual void | variables_impl (gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, -2 > > * > news, size_t output_l_max, double time, tmpl::type_< Tags::News >) const =0 |
An analytic solution representing a specialization of the radiative Robinson-Trautman solution described in [51].
This solution is not quite analytic, in the sense that there is a single scalar field that must be evolved. Ultimately, it is a partial specialization of the Characteristic equations such that \(J = 0\) and the evolution equations have been manipulated to give a time evolution equation for \(e^{-2 \beta}\), which is equivalent to the Robinson-Trautman scalar \(\omega_{\text{RT}}\) (denoted \(W\) in [51] – we deviate from their notation because the symbol \(W\) is already used elsewhere in the CCE system).
RobinsonTrautman
analytic data is explictly forbidden by checks in Cce::Actions::InitializeWorldtubeBoundary
. The reason is that any time the RobinsonTrautman
receives a request for data at a time in the past of its current state, it must re-start its internal time stepper from the beginning of the evolution. This is a reasonable cost for multistep methods that only have non-ordered time steps during self-start, but will lead to \(\mathcal O(N^2)\) internal steps in the RobinsonTrautman
solution if a substep method is used, where \(N\) is the number of steps performed by the substep method. If you find an unavoidable need to use RobinsonTrautman
with a substep method, you will either need to only do so for very short evolutions, or need to write more sophisticated caching of the internal time step data.
|
overrideprotectedvirtual |
Compute radial derivative of the spherical coordinate metric of the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\).
The radial derivative (at constant time t) of the Robinson-Trautman solution is obtained by differentiating the expressions from the documentation for RobinsonTrautman::spherical_metric()
:
\begin{align*} (\partial_r g_{a b} + \partial_t g_{a b}) dx^a dx^b = - (\omega_{\text{RT}} (r \partial_r W + W) - 2 r U \bar U - r^2 (\bar U\partial_r U + U \partial_r \bar U)) (dt - dr)^2 - 2 r U^A q_{A B} dx^B (dt - dr) + 2 r q_{A B} dx^A dx^B \end{align*}
where \(q_{A B}\) represents the angular unit sphere metric, and the remaining Bondi-Sachs scalars and angular tensors are defined in terms of the Robinson-Trautman scalar \(\omega_{\text{RT}}\)
\begin{align*} W &= \frac{1}{r}\left(\omega_{\text{RT}} + \eth \bar \eth \omega_{\text{RT}} - 1\right) - \frac{2}{r^2 \omega_{\text{RT}}^2}\\ \partial_r W &= -\frac{1}{r^2} \left(\omega_{\text{RT}} + \eth \bar \eth \omega_{\text{RT}} - 1\right) + \frac{4}{r^3 \omega_{\text{RT}}^2}\\ U &\equiv U^A q_A = \frac{\eth \omega_{\text{RT}}}{r}. \end{align*}
and \(q_A\) is the angular dyad on the unit sphere. The Robinson-Trautman scalar \(\omega_{\text{RT}}\) is independent of the Bondi radius \(r\), so all radial derivatives of \(\omega_{\text{RT}}\) have been dropped
Implements Cce::Solutions::SphericalMetricData.
|
overrideprotectedvirtual |
Compute time derivative of the spherical coordinate metric of the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\).
The time derivative of the Robinson-Trautman solution is obtained by differentiating the expressions from the documentation for RobinsonTrautman::spherical_metric()
:
\begin{align*} \partial_t g_{a b} dx^a dx^b = -( \partial_u \omega_{\text{RT}} (r W + 1) + \omega_{\text{RT}} \partial_u W - r^2 (\bar U \partial_u U + U \partial_u \bar U)) (dt - dr)^2 - 2 \partial_u \omega_{\text{RT}} (dt - dr) dr - 2 r^2 \partial_u U^A q_{AB} dx^B (dt - dr), \end{align*}
where \(q_{A B}\) represents the angular unit sphere metric, and the remaining Bondi-Sachs scalars and angular tensors are defined in terms of the Robinson-Trautman scalar \(\omega_{\text{RT}}\)
\begin{align*} W &= \frac{1}{r}\left(\omega_{\text{RT}} + \eth \bar \eth \omega_{\text{RT}} - 1\right) - \frac{2}{r^2 \omega_{\text{RT}}^2}\\ \partial_u W &= \frac{1}{r}\left(\partial_u \omega_{\text{RT}} + \eth \bar \eth \partial_u \omega_{\text{RT}}\right) + \frac{4 \partial_u \omega_{\text{RT}}}{r^2 \omega_{\text{RT}}^3} \\ \partial_u U &= q_A \partial_u U^A = \frac{\eth \partial_u \omega_{\text{RT}}}{r}, \end{align*}
and \(q_A\) is the angular dyad on the unit sphere; and the time derivative of the Robinson-Trautman scalar \(\omega_{\text{RT}}\) is
\[ \partial_u \omega_{\text{RT}} = \frac{1}{12} \left(-\omega^4_{\text{RT}} \eth^2 \bar \eth^2 \omega_{\text{RT}} + \omega_{\text{RT}}^3 (\eth^2 \omega_{\text{RT}}) (\bar \eth^2 \omega_{\text{RT}}) \right) \]
Implements Cce::Solutions::SphericalMetricData.
|
overridevirtual |
Implements Cce::Solutions::WorldtubeData.
|
overrideprotectedvirtual |
The Robinson-Trautman solution performs the time-stepping to advance the internal member scalar used to generate the metric solution to the correct state for time
.
The generating scalar \(\omega_{\text{RT}}\) is evolved using equation (2.5) from [51] (manipulated to a form convenient for our numerical utilities)
\[ \partial_u \omega_{\text{RT}} = - \left(\omega^4_{\text{RT}} \eth^2 \bar \eth^2 \omega_{\text{RT}} - \omega_{\text{RT}}^3 (\eth^2 \omega_{\text{RT}}) (\bar \eth^2 \omega_{\text{RT}}) \right) \]
As the scalar \(\omega_{\text{RT}}\) is evolved, it is filtered by zeroing the highest two angular modes.
Implements Cce::Solutions::WorldtubeData.
|
overrideprotectedvirtual |
Compute the spherical coordinate metric of the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\).
The spacetime metric of the Robinson-Trautman solution can be expressed as a specialization of the Bondi-Sachs metric (note the metric signature change as compared to equation (1.2) from [51])
\[ ds^2 = -((r W + 1) \omega_{\text{RT}} - r^2 U \bar U) (dt - dr)^2 - 2 \omega_{\text{RT}} (dt - dr) dr - 2 r^2 U^A q_{AB} dx^B (dt - dr) + r^2 q_{A B} dx^A dx^B, \]
where \(q_{A B}\) represents the angular unit sphere metric, and the remaining Bondi-Sachs scalars and angular tensors are defined in terms of the Robinson-Trautman scalar \(\omega_{\text{RT}}\)
\begin{align*} W &= \frac{1}{r}\left(\omega_{\text{RT}} + \eth \bar \eth \omega_{\text{RT}} - 1\right) - \frac{2}{r^2 \omega_{\text{RT}}^2}\\ U &\equiv U^A q_A = \frac{\eth \omega_{\text{RT}}}{r}. \end{align*}
and \(q_A\) is the angular dyad on the unit sphere.
The angular part of the metric can be expressed in terms of the \(U\) scalar as
\begin{align*} g_{u \theta} &= r^2 \Re U\\ g_{u \phi} &= r^2 \Im U \end{align*}
Implements Cce::Solutions::SphericalMetricData.
|
inlineoverridevirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
overrideprotectedvirtual |
Compute the news associated with the Robinson-Trautman solution generated by the time-evolved scalar \(\omega_{\text{RT}}\).
The Bondi-Sachs news in the Robinson-Trautman solution is
\begin{align*} N = \frac{\bar \eth \bar \eth \omega_{\text{RT}}}{\omega_{\text{RT}}} \end{align*}
Implements Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Implements Cce::Solutions::WorldtubeData.
|
overrideprotected |
Computes the time derivative of the Cartesian spacetime metric from the spherical solution provided by the derived classes.
The derived classes provide the time derivative of the spherical metric data via the virtual function SphericalMetricData::dt_spherical_metric()
at a resolution determined by the l_max
argument. This function performs the coordinate transformation using the Jacobian computed from SphericalMetricData::inverse_jacobian()
.
|
protectedvirtual |
Implements Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
overrideprotectedvirtual |
Computes the Cartesian spacetime metric from the spherical solution provided by the derived classes.
The derived classes provide spherical metric data via the virtual function SphericalMetricData::spherical_metric()
at a resolution determined by the l_max
argument. This function performs the coordinate transformation using the Jacobian computed from SphericalMetricData::inverse_jacobian()
.
Reimplemented from Cce::Solutions::SphericalMetricData.
|
protectedvirtual |
Computes the Cartesian spacetime metric from the spherical solution provided by the derived classes.
The derived classes provide spherical metric data via the virtual function SphericalMetricData::spherical_metric()
at a resolution determined by the l_max
argument. This function performs the coordinate transformation using the Jacobian computed from SphericalMetricData::inverse_jacobian()
.
Reimplemented from Cce::Solutions::SphericalMetricData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
overrideprotectedvirtual |
Computes the spatial derivatives of the Cartesian spacetime metric from the spherical solution provided by the derived classes.
The derived classes provide the radial derivative of the spherical metric data via the virtual function SphericalMetricData::dr_spherical_metric()
at a resolution determined by the l_max_
argument. This function performs the additional angular derivatives necessary to assemble the full spatial derivative and performs the coordinate transformation to Cartesian coordinates via the Jacobians computed in SphericalMetricData::inverse_jacobian()
and SphericalMetricData::inverse_jacobian()
.
Reimplemented from Cce::Solutions::SphericalMetricData.
|
protectedvirtual |
Computes the spatial derivatives of the Cartesian spacetime metric from the spherical solution provided by the derived classes.
The derived classes provide the radial derivative of the spherical metric data via the virtual function SphericalMetricData::dr_spherical_metric()
at a resolution determined by the l_max_
argument. This function performs the additional angular derivatives necessary to assemble the full spatial derivative and performs the coordinate transformation to Cartesian coordinates via the Jacobians computed in SphericalMetricData::inverse_jacobian()
and SphericalMetricData::inverse_jacobian()
.
Reimplemented from Cce::Solutions::SphericalMetricData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
protectedvirtual |
Reimplemented from Cce::Solutions::WorldtubeData.
|
staticconstexpr |