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

Generated by: LCOV version 1.14