SpECTRE
v2024.12.16
|
Update the Cauchy gauge cartesian coordinate derivative \(\partial_u x(\hat x)\), as well as remaining gauge quantities \(\mathcal U^{(0)}\), \(\hat U \equiv \mathcal U - \mathcal U^{(0)}\), and \(\partial_{\hat u} \hat \omega\) to maintain asymptotically inertial angular coordinates. More...
#include <GaugeTransformBoundaryData.hpp>
Public Types | |
using | return_tags = tmpl::list<::Tags::dt< Tags::CauchyCartesianCoords >, Tags::BondiUAtScri, Tags::BondiU, Tags::Du< Tags::PartiallyFlatGaugeOmega > > |
using | argument_tags = tmpl::list< Tags::CauchyCartesianCoords, Tags::PartiallyFlatGaugeOmega, Spectral::Swsh::Tags::Derivative< Tags::PartiallyFlatGaugeOmega, Spectral::Swsh::Tags::Eth >, Tags::LMax > |
Static Public Member Functions | |
static void | apply (gsl::not_null< tnsr::i< DataVector, 3 > * > cartesian_cauchy_du_x, gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, 1 > > * > evolution_gauge_u_at_scri, gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, 1 > > * > volume_u, gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, 0 > > * > du_omega, const tnsr::i< DataVector, 3 > &cartesian_cauchy_coordinates, const Scalar< SpinWeighted< ComplexDataVector, 0 > > &omega, const Scalar< SpinWeighted< ComplexDataVector, 1 > > ð_omega, size_t l_max) |
Update the Cauchy gauge cartesian coordinate derivative \(\partial_u x(\hat x)\), as well as remaining gauge quantities \(\mathcal U^{(0)}\), \(\hat U \equiv \mathcal U - \mathcal U^{(0)}\), and \(\partial_{\hat u} \hat \omega\) to maintain asymptotically inertial angular coordinates.
The constraint we must satisfy to maintain the asymptotically inertial angular coordinates is
\begin{align*} \partial_{\hat u} x^A = \mathcal U^{(0) \hat A} \partial_{\hat A} x^{A}, \end{align*}
which we compute for a representative Cartesian coordinate set on the unit sphere, to maintain representability and ensure that angular transform and derivative operations keep the desired precision. The equation we use for the Cartesian analog is:
\begin{align*} \partial_{\hat u} x^i &= \frac{1}{2} (\bar{\mathcal U}^{(0)} \hat \eth x^i + \mathcal U^{(0)} \hat{\bar \eth} x^i ) \\ &= \text{Re}(\bar{\mathcal U}^{(0)} \hat \eth x^i) \end{align*}
This computation completes the unfixed degrees of freedom for the coordinate transformation at the boundary, so also computes the gauge quantities that rely on this information \(\mathcal U^{(0)}\), \(\hat U\), and \(\partial_{\hat u} \hat \omega\).
The time derivative of \(\hat \omega\) is calculated from the equation
\begin{align*} \partial_{\hat u} \hat \omega = \frac{\hat \omega}{4} (\hat{\bar \eth} \mathcal U^{(0)} + \hat \eth \bar{\mathcal U}^{(0)}) + \frac{1}{2} (\mathcal U^{(0)} \hat{\bar \eth} \hat \omega + \bar{\mathcal U}^{(0)} \hat \eth \hat \omega) \end{align*}
Cce::Tags::BondiU
represents \(\mathcal U\), and after this update call, it represents \(\hat U\) (the true evolution gauge quantity).