SpECTRE Documentation Coverage Report
Current view: top level - ControlSystem/ControlErrors/Size - ComovingCharSpeedDerivative.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 50.0 % 2 1
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            Line data    Source code
       1            0 : // Distributed under the MIT License.
       2              : // See LICENSE.txt for details.
       3              : 
       4              : #pragma once
       5              : 
       6              : #include "DataStructures/Tensor/TypeAliases.hpp"
       7              : #include "Utilities/Gsl.hpp"
       8              : 
       9              : /// \cond
      10              : class DataVector;
      11              : namespace Frame {
      12              : struct Distorted;
      13              : struct Grid;
      14              : }  // namespace Frame
      15              : /// \endcond
      16              : 
      17              : namespace control_system::size {
      18              : 
      19              : /*!
      20              :  * \brief Computes the derivative of the comoving characteristic speed
      21              :  * with respect to the size map parameter.
      22              :  *
      23              :  * \param result the derivative of the comoving char speed
      24              :  *        \f$d v_c/d\lambda_{00}\f$, which is computed here using
      25              :  *        Eq. (\f$\ref{eq:result}\f$).
      26              :  * \param lambda_00 the map parameter \f$\lambda_{00}\f$. This is the usual
      27              :  *        spherical harmonic coefficient, not a Spherepack value.
      28              :  * \param dt_lambda_00 the time derivative of the map parameter
      29              :  * \param horizon_00 the average coefficient of the horizon \f$\hat{S}_{00}\f$.
      30              :  *        This is the usual spherical harmonic coefficient, not a Spherepack
      31              :  *        value.
      32              :  * \param dt_horizon_00 the time derivative of horizon_00
      33              :  * \param grid_frame_excision_sphere_radius radius of the excision boundary
      34              :  *        in the grid frame, \f$r_{\mathrm{EB}}\f$.
      35              :  * \param excision_rhat the direction cosine \f$\xi_\hat{i}\f$. Not a
      36              :  *        spacetime tensor: it is raised/lowered with \f$\delta_{ij}\f$
      37              :  * \param excision_normal_one_form the unnormalized one-form
      38              :  *        \f$\hat{s}_\hat{i}\f$
      39              :  * \param one_over_excision_normal_one_form_norm one over the norm of the
      40              :  *        one-form \f$a\f$
      41              :  * \param distorted_components_of_grid_shift the quantity
      42              :  *        \f$\beta^i \frac{\partial x^\hat{i}}{\partial x_i}\f$
      43              :  *        evaluated on the excision boundary.  This is not the shift in
      44              :  *        the distorted frame.
      45              :  * \param inverse_spatial_metric_on_excision_boundary metric in
      46              :  *        the distorted frame.
      47              :  * \param spatial_christoffel_second_kind the Christoffel symbols
      48              :  *        \f$\Gamma^\hat{k}_{\hat{i}\hat{j}}\f$
      49              :  * \param deriv_lapse the spatial derivative of the lapse
      50              :  *        \f$\partial_\hat{i} \alpha\f$
      51              :  * \param deriv_of_distorted_shift the spatial derivative of the shift in the
      52              :  *        distorted frame
      53              :  *        \f$\partial_\hat{j} \hat{\beta}^\hat{i}\f$. This is not the
      54              :  *        derivative of distorted_components_of_grid_shift.
      55              :  * \param inverse_jacobian_grid_to_distorted the quantity
      56              :  *        \f$J^i_\hat{k}=\partial_\hat{k} x^i\f$,
      57              :  *        where \f$x^i\f$ are the grid frame coordinates and
      58              :  *        \f$x^{\hat k}\f$ are the distorted frame coordinates.
      59              :  * ## Background
      60              :  *
      61              :  * The characteristic speed on the excision boundary is
      62              :  * \f{align}
      63              :  *     v &= -\alpha + n_i\beta^i
      64              :  * \f}
      65              :  * where \f$\alpha\f$ is the lapse (invariant under frame transformations),
      66              :  * \f$\beta^i\f$ is the grid-frame shift, and \f$n_i\f$ is the metric-normalized
      67              :  * **outward-pointing** (i.e. pointing out of the black hole,
      68              :  * toward larger radius)
      69              :  * normal one-form to the excision boundary in the grid frame.
      70              :  * (Note that the usual expression for the characteristic speed, as in
      71              :  * eq. 87 of \cite Hemberger2012jz, has
      72              :  * a minus sign and defines \f$n_i\f$ as the inward-pointing (i.e. out of the
      73              :  * computational domain) normal; here
      74              :  * we have a plus sign and we define \f$n_i\f$ as outward-pointing because
      75              :  * the outward-pointing normal is passed into comoving_char_speed_derivative.)
      76              :  *
      77              :  * The size/shape map at the excision boundary is given by Eq. 72 of
      78              :  * \cite Hemberger2012jz :
      79              :  * \f{align}
      80              :  *   \hat{x}^i &= \frac{x^i}{r_{\mathrm{EB}}}
      81              :  *      \left(1 - \lambda_{00} Y_{00}
      82              :  *      -\sum_{\ell>0} Y_{\ell m} \lambda_{\ell m}\right),
      83              :  *   \label{eq:map}
      84              :  * \f}
      85              :  * where \f$\hat{x}^i\f$ are the distorted-frame coordinates and \f$x^i\f$
      86              :  * are the grid-frame coordinates, and where we have separated the \f$\ell=0\f$
      87              :  * piece from the sum.
      88              :  * Here \f$Y_{\ell m}\f$ are
      89              :  * spherical harmonics, \f$\lambda_{\ell m}\f$ are
      90              :  * the map parameters, and \f$r_{\mathrm{EB}}\f$ is the radius of the
      91              :  * excision boundary in the
      92              :  * grid frame (where the excision boundary is a sphere). The final term with
      93              :  * the sum over $\ell>0$ is independent of \f$\lambda_{00}\f$,
      94              :  * and will not be important
      95              :  * because below we will be differentiating the map with respect
      96              :  * to \f$\lambda_{00}\f$.
      97              :  *
      98              :  * The comoving characteristic speed is given by rewriting Eq. 98
      99              :  * of \cite Hemberger2012jz in terms of the distorted-frame shift:
     100              :  * \f{align}
     101              :  *     v_c &= -\alpha +\hat{n}_\hat{i}\hat{\beta}^\hat{i}
     102              :  *           - Y_{00} \hat{n}_{\hat i} \xi^{\hat i}
     103              :  *           \left[ \dot{\hat{S}}_{00} (\lambda_{00}
     104              :  *                   - r_{\mathrm{EB}}/Y_{00}) / \hat{S}_{00}
     105              :  *           + \frac{1}{Y_{00}} \sum_{\ell>0} Y_{\ell m} \dot{\lambda}_{\ell m}
     106              :  *         \right], \\
     107              :  *         &= -\alpha +\hat{n}_\hat{i}\beta^\hat{i}
     108              :  *           - Y_{00} \hat{n}_{\hat i} \xi^{\hat i}
     109              :  *           \left[ \dot{\hat{S}}_{00} (\lambda_{00}
     110              :  *                   - r_{\mathrm{EB}}/Y_{00}) / \hat{S}_{00}
     111              :  *           -\dot{\lambda}_{00} \right], \label{eq:comovingspeed}
     112              :  * \f}
     113              :  * where in the last line we have rewritten $\hat{\beta}^\hat{i}$
     114              :  * in terms of $\beta^\hat{i}$ (see Eq. (\f$\ref{eq:framecompsshiftdef}\f$)
     115              :  * below) and we have substituted
     116              :  * the time derivative of Eq. (\f$\ref{eq:map}\f$).
     117              :  * Here \f$\dot{\lambda}_{00}\f$ is the time derivative of
     118              :  * \f$\lambda_{00}\f$, and
     119              :  * \f$\hat{S}_{00}\f$ is the constant spherical-harmonic coefficient of the
     120              :  * horizon and \f$\dot{\hat{S}}_{00}\f$ is its time derivative.
     121              :  * The symbol \f$\xi^{\hat i}\f$ is
     122              :  * a direction cosine, i.e. \f$x^i/r_{\mathrm{EB}}\f$ evaluated on the
     123              :  * excision boundary, which is the same as
     124              :  * \f$\hat{x}^i/\hat{r}_{\mathrm{EB}}\f$ evaluated on the excision boundary
     125              :  * because the size and shape maps preserve angles.  Note that
     126              :  * \f$r_{\mathrm{EB}}\f$ is a constant but \f$\hat{r}_{\mathrm{EB}}\f$ is
     127              :  * a function of angles.  Note also
     128              :  * that \f$\xi^{\hat i}\f$ is **not** a vector; it
     129              :  * is a coordinate quantity. In particular,
     130              :  * the lower-index \f$\xi_{\hat i}\f$ is \f$\delta_{ij}x^j/r_{\mathrm{EB}}\f$.
     131              :  * The non-vectorness of \f$\xi^{\hat i}\f$ (and of \f$x^i\f$ itself
     132              :  * in Eq. (\f$\ref{eq:map}\f$)) might cause some confusion when using the
     133              :  * Einstein summation convention; we attempt to alleviate that confusion by
     134              :  * never using the lower-index \f$\xi_{\hat i}\f$ and by keeping
     135              :  * \f$\delta_{ij}\f$ in formulas below.
     136              :  * The normal
     137              :  * \f$\hat{n}_\hat{i}\f$ is the same as $n_i$
     138              :  * transformed into the distorted frame, that is
     139              :  * \f$\hat{n}_\hat{i} = n_j \partial x^j/\partial\hat{x}^\hat{i}\f$.
     140              :  * We have put a hat on \f$\hat{n}\f$ in addition to putting a hat on
     141              :  * its index
     142              :  * (despite the usual convention that tensors have
     143              :  * decorations on indices and not on the tensors themselves)
     144              :  * to reduce later ambiguities
     145              :  * in notation that arise because
     146              :  * Eq. (\f$\ref{eq:map}\f$) has the same index on both sides of the equation
     147              :  * and because \f$\xi^{\hat i}\f$ and \f$x^i\f$ are not tensors.
     148              :  * The quantity \f$\beta^\hat{i}\f$ in Eq. (\f$\ref{eq:comovingspeed}\f$)
     149              :  * is the distorted-frame
     150              :  * component of the grid-frame shift, defined by
     151              :  * \f{align}
     152              :  * \beta^\hat{i} &= \beta^i \frac{\partial \hat{x}^\hat{i}}{\partial x^i}.
     153              :  * \label{eq:shiftyquantity}
     154              :  * \f}
     155              :  * This is **not** the shift in the distorted frame \f$\hat{\beta}^\hat{i}\f$,
     156              :  * because the shift does
     157              :  * not transform like a spatial tensor under the maps.
     158              :  *
     159              :  * If the comoving characteristic speed \f$v_c\f$ is negative and remains
     160              :  * negative forever, then size control will fail.  Therefore \f$v_c\f$ is
     161              :  * used in making decisions in size control. We care about
     162              :  * \f$d v_c/d\lambda_{00}\f$ because the sign of that quantity tells us
     163              :  * whether \f$v_c\f$ will increase or decrease when we increase or decrease
     164              :  * the map parameter \f$\lambda_{00}\f$; this information will be used to
     165              :  * decide whether to transition between different size control states.
     166              :  *
     167              :  * ## Derivation of derivative of comoving characteristic speed
     168              :  *
     169              :  * This function computes
     170              :  * \f$d v_c/d\lambda_{00}\f$ on the excision boundary, where the total
     171              :  * derivative means that all other map parameters
     172              :  * (like \f$\lambda_{\ell m}\f$ for \f$\ell>0\f$) are held fixed, and the
     173              :  * coordinates of the excision boundary (the grid coordinates) are held fixed.
     174              :  * We also hold fixed \f$\dot{\lambda}_{00}\f$ because we are interested
     175              :  * in how $v_c$ changes from a configuration with a given
     176              :  * \f$\lambda_{00}\f$ and \f$\dot{\lambda}_{00}\sim 0\f$ to another
     177              :  * configuration with a different nearby \f$\lambda_{00}\f$ and also with
     178              :  * \f$\dot{\lambda}_{00}\sim 0\f$.
     179              :  *
     180              :  * Here we derive an expression for \f$d v_c/d\lambda_{00}\f$.
     181              :  * This expression will be
     182              :  * complicated, mostly because of the normals \f$\hat{n}_\hat{i}\f$ that appear
     183              :  * in Eq. (\f$\ref{eq:comovingspeed}\f$) and because of the Jacobians.
     184              :  *
     185              :  * ### Derivative of the Jacobian
     186              :  *
     187              :  * First, note that by differentiating Eq. (\f$\ref{eq:map}\f$) we obtain
     188              :  * \f{align}
     189              :  *   \frac{d\hat{x}^i}{d\lambda_{00}}
     190              :  *      &= - \frac{x^i Y_{00}}{r_{\mathrm{EB}}} \\
     191              :  *      &= -\xi^i Y_{00},
     192              :  * \f}
     193              :  * where the last line follows from the definition of the direction cosines.
     194              :  *
     195              :  * The Jacobian of the map is
     196              :  * \f{align}
     197              :  *  \frac{\partial \hat{x}^i}{\partial x^j}
     198              :  *    &= (1 - \lambda_{00} Y_{00}/r_{\mathrm{EB}} + B) \delta^i_j
     199              :  *    + x^i \frac{\partial B}{\partial x^j},
     200              :  * \f}
     201              :  * where \f$B\f$ represents the term with the sum over \f$\ell>0\f$
     202              :  * in Eq. (\f$\ref{eq:map}\f$); this term is independent
     203              :  * of \f$\lambda_{00}\f$.
     204              :  * Therefore, we have
     205              :  * \f{align}
     206              :  *  \frac{d}{d\lambda_{00}}\frac{\partial \hat{x}^i}{\partial x^j} &=
     207              :  *  -\frac{Y_{00}}{r_{\mathrm{EB}}} \delta^i_j.
     208              :  * \label{eq:derivjacobian}
     209              :  * \f}
     210              :  *
     211              :  * But we want the derivative of the inverse Jacobian, not the forward
     212              :  * Jacobian. By taking the derivative of the identity
     213              :  * \f{align}
     214              :  *  \frac{\partial \hat{x}^\hat{i}}{\partial x^k}
     215              :  *  \frac{\partial x^k}{\partial \hat{x}^\hat{j}} &= \delta^\hat{i}_\hat{j}
     216              :  * \f}
     217              :  * and by using Eq. (\f$\ref{eq:derivjacobian}\f$) we can derive
     218              :  * \f{align}
     219              :  *  \frac{d}{d\lambda_{00}}\frac{\partial x^i}{\partial \hat{x}^j} &=
     220              :  *  +\frac{Y_{00}}{r_{\mathrm{EB}}}
     221              :  *   \frac{\partial x^i}{\partial \hat{x}^k}
     222              :  *   \frac{\partial x^k}{\partial \hat{x}^j}.
     223              :  *   \label{eq:strangederivjacobian}
     224              :  * \f}
     225              :  * Note that the right-hand side of Eq. (\f$\ref{eq:strangederivjacobian}\f$)
     226              :  * has two inverse Jacobians contracted with each other, which is not
     227              :  * the same as \f$\delta^i_j\f$.
     228              :  *
     229              :  * ### Derivative of a function of space
     230              :  *
     231              :  * Assume we have an arbitrary function of space \f$f(\hat{x}^i)\f$.
     232              :  * Here we treat \f$f\f$ as a function of the distorted-frame
     233              :  * coordinates \f$\hat{x}^i\f$ and not a function of the grid-frame
     234              :  * coordinates.  This is because we consider the metric functions to be defined
     235              :  * in the inertial frame (and equivalently for our purposes the functions are
     236              :  * defined in the distorted frame because the distorted-to-inertial map
     237              :  * is independent of \f$\lambda_{00}\f$), and we consider \f$\lambda_{00}\f$
     238              :  * a parameter in a map that moves the grid with respect to these
     239              :  * distorted-frame metric functions.
     240              :  * The derivative of \f$f\f$ can be written
     241              :  * \f{align}
     242              :  *  \frac{d}{d\lambda_{00}}f &= \frac{\partial f}{\partial \hat{x}^i}
     243              :  *  \frac{d \hat{x}^i}{d\lambda_{00}}\\
     244              :  *  &= -\xi^\hat{i} Y_{00} \frac{\partial f}{\partial \hat{x}^i}.
     245              :  * \label{eq:derivf}
     246              :  * \f}
     247              :  * This is how we will evaluate derivatives of metric functions like
     248              :  * the lapse.
     249              :  *
     250              :  * ### Derivative of the distorted-frame components of the grid-frame shift.
     251              :  *
     252              :  * To differentiate the quantity defined by Eq. (\f$\ref{eq:shiftyquantity}\f$)
     253              :  * note that
     254              :  * \f{align}
     255              :  * \beta^\hat{i} &=
     256              :  *   \beta^i \frac{\partial \hat{x}^\hat{i}}{\partial x^i} \\
     257              :  *   &= \hat{\beta}^\hat{i} + \frac{\partial \hat{x}^\hat{i}}{\partial t},
     258              :  *  \label{eq:framecompsshiftdef}
     259              :  * \f}
     260              :  * where \f$\hat{\beta}^\hat{i} \equiv \alpha^2 g^{\hat{0}\hat{i}}\f$ is
     261              :  * the shift in the distorted frame.
     262              :  * From the map, Eq. (\f$\ref{eq:map}\f$), we see that
     263              :  * \f{align}
     264              :  *  \frac{d}{d\lambda_{00}} \frac{\partial \hat{x}^\hat{i}}{\partial t} &=0,
     265              :  * \f}
     266              :  * because there is no remaining \f$\lambda_{00}\f$ in
     267              :  * \f$\frac{\partial \hat{x}^\hat{i}}{\partial t}\f$.
     268              :  * So
     269              :  * \f{align}
     270              :  * \frac{d}{d\lambda_{00}}\beta^\hat{i} &=
     271              :  * \frac{d}{d\lambda_{00}} \hat{\beta}^\hat{i} \\
     272              :  * &= -\xi^\hat{j} Y_{00} \partial_\hat{j} \hat{\beta}^\hat{i},
     273              :  * \f}
     274              :  * where we have used Eq. (\f$\ref{eq:derivf}\f$) in the last line.
     275              :  * Note that we cannot use Eq. (\f$\ref{eq:derivf}\f$) on
     276              :  * \f$\beta^\hat{i}\f$ directly,
     277              :  * because \f$\beta^\hat{i}\f$ depends in a complicated
     278              :  * way on the grid-to-distorted map. In particular, we will be evaluating
     279              :  * \f$\partial_\hat{j} \hat{\beta}^\hat{i}\f$ numerically, and numerical
     280              :  * spatial derivatives \f$\partial_\hat{j} \hat{\beta}^\hat{i}\f$ are not
     281              :  * the same as numerical spatial derivatives
     282              :  * \f$\partial_\hat{j} \beta^\hat{i}\f$.
     283              :  *
     284              :  * ### Derivative of the normal one-form
     285              :  *
     286              :  * The normal to the surface is the most complicated expression in
     287              :  * Eq. (\f$\ref{eq:comovingspeed}\f$), because of how it depends on the
     288              :  * map and on the metric.
     289              :  * The grid-frame un-normalized outward-pointing one-form
     290              :  * to the excision boundary is
     291              :  * \f{align}
     292              :  *    s_i &= \xi^j \delta_{ij},
     293              :  * \f}
     294              :  * because the excision boundary is a sphere of fixed radius in the
     295              :  * grid frame. Therefore
     296              :  * \f$s_i\f$ doesn't depend on \f$\lambda_{00}\f$.
     297              :  *
     298              :  * The normalized one-form \f$\hat{n}_\hat{i}\f$ is given by
     299              :  * \f{align}
     300              :  *   \hat{n}_\hat{i} &= \frac{\hat{s}_{\hat i}}{a},
     301              :  * \f}
     302              :  * where
     303              :  * \f{align}
     304              :  *   \hat{s}_{\hat i} &= s_i \frac{\partial x^i}{\partial \hat{x}^{\hat i}},\\
     305              :  *   a^2 &= \hat{s}_{\hat i} \hat{s}_{\hat j} \gamma^{\hat{i} \hat{j}}.
     306              :  * \f}
     307              :  * Here \f$\gamma^{\hat{i} \hat{j}}\f$ is the inverse 3-metric in the
     308              :  * distorted frame.  Again, to avoid ambiguity later,
     309              :  * we have put hats on \f$n\f$ and \f$s\f$, despite
     310              :  * the usual convention that when transforming tensors one puts
     311              :  * hats on the indices and not on the tensors.
     312              :  *
     313              :  * Now
     314              :  * \f{align}
     315              :  *  \frac{d}{d\lambda_{00}} \hat{s}_{\hat i} &=
     316              :  *  \frac{Y_{00}}{r_{\mathrm{EB}}}
     317              :  *  \hat{s}_k\frac{\partial x^k}{\partial \hat{x}^\hat{i}}, \\
     318              :  *  \frac{d}{d\lambda_{00}} a^2 &= 2 \frac{Y_{00}}{r_{\mathrm{EB}}}
     319              :  *  \hat{s}_k\frac{\partial x^k}{\partial \hat{x}^\hat{i}}
     320              :  *  \hat{s}_{\hat j} \gamma^{\hat{i} \hat{j}}
     321              :  *  + \hat{s}_{\hat i} \hat{s}_{\hat j}
     322              :  *  \gamma^{\hat{i} \hat{k}} \gamma^{\hat{j} \hat{l}}
     323              :  *  \xi^\hat{m} Y_{00} \partial_{\hat m} \gamma_{\hat{k} \hat{l}}.
     324              :  * \f}
     325              :  * Here we have used Eq. (\f$\ref{eq:strangederivjacobian}\f$) to differentiate
     326              :  * the Jacobian, and Eq. (\f$\ref{eq:derivf}\f$) to differentiate the 3-metric.
     327              :  * We have also refrained from raising and lowering indices
     328              :  * on \f$\hat{n}_\hat{i}\f$, \f$\hat{s}_\hat{i}\f$, and \f$\xi^\hat{i}\f$
     329              :  * to alleviate potential confusion over whether to raise or lower using
     330              :  * \f$\gamma_{\hat{i} \hat{j}}\f$ or using \f$\delta_{\hat{i}\hat{j}}\f$.
     331              :  * The factor \f$\hat{s}_k \partial x^k/\partial \hat{x}^\hat{i}\f$
     332              :  * is unusal and is not a tensor
     333              :  * (\f$\hat{s}_k\f$ is a tensor but the Jacobian it is being multiplied by
     334              :  * is the inverse of the one that would transform it into a different frame);
     335              :  * this factor arises because some quantities being differentiated are
     336              :  * not tensors.
     337              :  *
     338              :  * Given the above, the derivative of the normalized normal one-form is
     339              :  * \f{align}
     340              :  *  \frac{d}{d\lambda_{00}} \hat{n}_{\hat i} &=
     341              :  *  \frac{1}{a}\frac{d}{d\lambda_{00}} \hat{s}_{\hat i}
     342              :  *  - \hat{s}_{\hat i} \frac{1}{2a^3}
     343              :  *  \frac{d}{d\lambda_{00}} a^2\\
     344              :  *  &=
     345              :  *  \hat{s}_i\frac{Y_{00}}{a r_{\mathrm{EB}}}
     346              :  *    \frac{\partial x^i}{\partial \hat{x}^\hat{i}}
     347              :  *  - \hat{s}_{\hat i} \frac{1}{a^3} \hat{s}_i\frac{Y_{00}}{r_{\mathrm{EB}}}
     348              :  *    \frac{\partial x^i}{\partial \hat{x}^\hat{k}}
     349              :  *    \hat{s}_{\hat j} \gamma^{\hat{k} \hat{j}}
     350              :  *  - \hat{s}_{\hat i} \frac{Y_{00}}{2a^3} \hat{s}_{\hat p}
     351              :  *  \hat{s}_{\hat j} \gamma^{\hat{p} \hat{k}}
     352              :  *  \gamma^{\hat{j} \hat{l}}
     353              :  *  \xi^\hat{m} \partial_{\hat m} \gamma_{\hat{k} \hat{l}} \\
     354              :  *  &=
     355              :  *  \hat{n}_i
     356              :  *  \frac{\partial x^i}{\partial \hat{x}^\hat{k}}
     357              :  *  \frac{Y_{00}}{r_{\mathrm{EB}}}
     358              :  *  (\delta^\hat{k}_\hat{i} - \hat{n}^\hat{k} \hat{n}_\hat{i})
     359              :  *  - \hat{s}_{\hat i} \frac{Y_{00}}{2a^3} \hat{s}_{\hat p}
     360              :  *  \hat{s}_{\hat j} \gamma^{\hat{p} \hat{k}}
     361              :  *  \gamma^{\hat{j} \hat{l}}
     362              :  *  \xi^\hat{m} \partial_{\hat m} \gamma_{\hat{k} \hat{l}}
     363              :  *  \label{eq:dnormal} \\
     364              :  *  &=
     365              :  *  \hat{n}_i
     366              :  *  \frac{\partial x^i}{\partial \hat{x}^\hat{k}}
     367              :  *  \frac{Y_{00}}{r_{\mathrm{EB}}}
     368              :  *  (\delta^\hat{k}_\hat{i} - \hat{n}^\hat{k} \hat{n}_\hat{i})
     369              :  *  - Y_{00} \hat{n}_{\hat i} \hat{n}_{\hat p}
     370              :  *  \hat{n}_{\hat j} \gamma^{\hat{p} \hat{k}}
     371              :  *  \xi^\hat{m} \Gamma^\hat{j}_{\hat{k} \hat{m}}
     372              :  *  \label{eq:dnormalgamma},
     373              :  * \f}
     374              :  * where we have eliminated \f$\hat{s}_{\hat i}\f$ and \f$a\f$ in favor
     375              :  * of \f$\hat{n}_{\hat i}\f$
     376              :  * and we have substituted 3-Christoffel symbols for
     377              :  * spatial derivatives of the 3-metric (and the factor of 2 on the penultimate
     378              :  * line has been absorbed into the 3-Christoffel symbol on the last line).
     379              :  * Note that the last term in Eq.
     380              :  * (\f$\ref{eq:dnormalgamma}\f$) could also be derived by differentiating
     381              :  * \f$\hat{n}_\hat{i}\hat{n}_\hat{j}\gamma^{\hat{i}\hat{j}}=1\f$.
     382              :  * The first term in Eq. (\f$\ref{eq:dnormalgamma}\f$) is strange because
     383              :  * the inverse Jacobian (as opposed to the forward Jacobian) is contracted
     384              :  * with \f$\hat{n}_i\f$, so that is not a tensor transformation.
     385              :  *
     386              :  * We can now differentiate Eq. (\f$\ref{eq:comovingspeed}\f$) to obtain
     387              :  * \f{align}
     388              :  *  \frac{d}{d\lambda_{00}} v_c &=
     389              :  *  \xi^\hat{i} Y_{00} \partial_\hat{i} \alpha
     390              :  *   +\left[ \beta^\hat{i}
     391              :  *   - Y_{00} \xi^\hat{i} \dot{\hat{S}}_{00} (\lambda_{00}
     392              :  *                   - r_{\mathrm{EB}}/Y_{00}) / \hat{S}_{00}
     393              :  *           + Y_{00} \xi^\hat{i}\dot{\lambda}_{00} \right]
     394              :  *  \frac{d}{d\lambda_{00}} \hat{n}_{\hat i} \nonumber \\
     395              :  *  &- \hat{n}_{\hat i} \xi^\hat{j} Y_{00} \partial_\hat{j} \hat{\beta}^\hat{i}
     396              :  *  - Y_{00} \hat{n}_{\hat i} \xi^{\hat i} \dot{\hat{S}}_{00}/\hat{S}_{00},
     397              :  * \label{eq:result}
     398              :  * \f}
     399              :  * where \f$\frac{d}{d\lambda_{00}} \hat{n}_{\hat i}\f$ is given by
     400              :  * Eq. (\f$\ref{eq:dnormalgamma}\f$).
     401              :  */
     402            1 : void comoving_char_speed_derivative(
     403              :     gsl::not_null<Scalar<DataVector>*> result, double lambda_00,
     404              :     double dt_lambda_00, double horizon_00, double dt_horizon_00,
     405              :     double grid_frame_excision_sphere_radius,
     406              :     const tnsr::i<DataVector, 3, Frame::Distorted>& excision_rhat,
     407              :     const tnsr::i<DataVector, 3, Frame::Distorted>& excision_normal_one_form,
     408              :     const Scalar<DataVector>& one_over_excision_normal_one_form_norm,
     409              :     const tnsr::I<DataVector, 3, Frame::Distorted>&
     410              :         distorted_components_of_grid_shift,
     411              :     const tnsr::II<DataVector, 3, Frame::Distorted>&
     412              :         inverse_spatial_metric_on_excision_boundary,
     413              :     const tnsr::Ijj<DataVector, 3, Frame::Distorted>&
     414              :         spatial_christoffel_second_kind,
     415              :     const tnsr::i<DataVector, 3, Frame::Distorted>& deriv_lapse,
     416              :     const tnsr::iJ<DataVector, 3, Frame::Distorted>& deriv_of_distorted_shift,
     417              :     const InverseJacobian<DataVector, 3, Frame::Grid, Frame::Distorted>&
     418              :         inverse_jacobian_grid_to_distorted);
     419              : }  // namespace control_system::size
        

Generated by: LCOV version 2.0-1