Jekyll2017-04-20T00:24:43-07:00https://duetosymmetry.com/Leo C. SteinPostdoctoral researcher @ Caltech. Specializing in gravity and general relativity.Leo C. Steinleostein@tapir.caltech.edussh ipython notebook tunneling magic2017-04-19T22:24:00-07:002017-04-19T22:24:00-07:00https://duetosymmetry.com/code/ssh-ipython-notebook-magic<p>The problem: you have large datasets on a remote machine and want to
use an <code class="highlighter-rouge">ipython</code> (<a href="http://jupyter.org/"><code class="highlighter-rouge">jupyter</code></a>) notebook to
interactively analyse your data. You could transfer the data to your
local machine, or mount the remote drive. But ideally, the <code class="highlighter-rouge">jupyter</code>
server should run on the remote machine, so that only the much smaller
<em>web page</em> data is transferred. This is what you want to happen:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/rfGnFiO9sME" frameborder="0" allowfullscreen=""></iframe>
<p>If you’ve ever started <code class="highlighter-rouge">jupyter</code> locally, this will look familiar.
But if you launch it on the remote machine, then <code class="highlighter-rouge">jupyter</code> is going to
try to launch a browser on the remote instead of locally.</p>
<p>One solution is to use <code class="highlighter-rouge">ssh</code> tunneling, but you’re responsible for
opening the tunnel and manually connecting your local browser to the
tunnel.</p>
<p>I pulled together a solution that involves
an <a href="https://www.iterm2.com/"><code class="highlighter-rouge">iTerm2</code></a> trigger to locally launch your
browser. This will work in any programmable terminal that has trigger
functionality. There may be other solutions, please contact me if you
have something cleaner.</p>
<h1 id="instructions">Instructions</h1>
<p>There are just 3 steps:</p>
<ol>
<li>
<p>On your local machine, set up your <code class="highlighter-rouge">ssh_config</code> to always forward a
specific port for this remote host. I picked 8889, leaving 8888
free for a locally-running <code class="highlighter-rouge">jupyter</code>. To do this, add an entry for
the remote host in <code class="highlighter-rouge">~/.ssh/config</code> with the <code class="highlighter-rouge">LocalForward</code> keyword
like so:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>Host wheeler
HostName wheeler.caltech.edu
User leostein
ForwardX11 no
LocalForward 8889 localhost:8888
</code></pre>
</div>
<p>This tells <code class="highlighter-rouge">ssh</code> that whenever I <code class="highlighter-rouge">ssh wheeler</code>, it’s also going to
forward my <em>local</em> port 8889 to the <em>remote</em> interface:port pair
localhost:8888, which is where the remote <code class="highlighter-rouge">jupyter</code> server is going
to be listening.</p>
</li>
<li>
<p>On your remote machine, edit your
<code class="highlighter-rouge">~/.jupyter/jupyter_notebook_config.py</code> to use a custom “browser”.
If you don’t already have a config file, then run <code class="highlighter-rouge">jupyter notebook
--generate-config</code> to create one in the default place. Open this
file and find the variable named <code class="highlighter-rouge">NotebookApp.browser</code>. Uncomment
it and set it to emit a magic keyword. I set this:</p>
<div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="n">c</span><span class="o">.</span><span class="n">NotebookApp</span><span class="o">.</span><span class="n">browser</span> <span class="o">=</span> <span class="s">u'echo TRIGGER-ITERM-2-WHEELER-JUPYTER </span><span class="si">%</span><span class="s">s'</span>
</code></pre>
</div>
<p>The <code class="highlighter-rouge">%s</code> is going to get replaced with the URL on the remote
server. I found that the <code class="highlighter-rouge">%s</code> is necessary for <code class="highlighter-rouge">jupyter</code> to
actually execute this command.</p>
</li>
<li>
<p>Configure <code class="highlighter-rouge">iTerm2</code> with a trigger. Go to Preferences > Profiles,
select the relevant profile (probably default if you haven’t
customized anything). Then go to Advanced, and under Triggers, hit
Edit:</p>
<p><img src="https://duetosymmetry.com/images/iterm2-prefs-profs-advanced.png" alt="" /></p>
<p>Hit the plus to add a new trigger. Set the regular expression to</p>
<div class="highlighter-rouge"><pre class="highlight"><code>^TRIGGER-ITERM-2-WHEELER-JUPYTER
</code></pre>
</div>
<p>using the same magic keyword as in step 2 (if you omit the caret,
you’re going to have an annoying time editing the
<code class="highlighter-rouge">jupyter_notebook_config</code> in the future, if you need to do that).
Set the Action to ‘Run Command…’. Then set the Parameters to</p>
<div class="highlighter-rouge"><pre class="highlight"><code>open "http://localhost:8889/tree"
</code></pre>
</div>
<p>using the same <em>local</em> port as in step 1. You should see something
like this:</p>
<p><img src="https://duetosymmetry.com/images/iterm2-prefs-profs-advanced-2.png" alt="" /></p>
</li>
</ol>
<p>That’s it! Next time you <code class="highlighter-rouge">ssh</code> to your remote host from <code class="highlighter-rouge">iTerm2</code> and
start <code class="highlighter-rouge">jupyter</code>, your local browser will launch and automatically
connect to the remote ipython session.</p>
<h1 id="extra-credit">Extra credit</h1>
<p>The solution above picked a specific local port to go with a specific
server, and tunnels to a predetermined remote port. It won’t work if
you try to have multiple remote jupyter servers on the same remote.
You will also have to have specific port numbers in your <code class="highlighter-rouge">ssh_config</code>
and <code class="highlighter-rouge">iTerm2</code> triggers, one for each remote.</p>
<p>There is a better solution. <code class="highlighter-rouge">iTerm2</code> will capture groups in triggers’
regular expressions, and can pass them as parameters to the
command. Therefore you can:</p>
<ol>
<li>Set your remote jupyter <code class="highlighter-rouge">NotebookApp.browser</code> to also emit your
<remote_user> and <remote_host></li>
<li>Write a trigger regex to match the above string and capture groups
for username, hostname, and <remote_interface>:<remote_port> pair
out of the URL</li>
<li>Pass those parameters to a local (python) script</li>
<li>
<p>Your python script must find a free local port, say <local_port>.
Then it will execute</p>
<div class="highlighter-rouge"><pre class="highlight"><code>ssh -N -f -L <local_port>:<remote_interface>:<remote_port> <remote_user>@<remote_host>
</code></pre>
</div>
<p>where values in angled brackets get replaced with parameters that
were passed from the regex capture groups.</p>
</li>
<li>Finally, your script will launch your local browser pointing to
“http://localhost:<local_port>/tree”.</li>
</ol>
<p>If you implement this, please let me know!</p>Leo C. Steinleostein@tapir.caltech.eduHow to get remote jupyter to automatically open a local browser.Note on Lie derivatives and divergences2017-04-12T16:00:00-07:002017-04-12T16:00:00-07:00https://duetosymmetry.com/notes/note-on-Lie-derivatives-and-divergences<script type="math/tex">
\newcommand{\cd}{\nabla}
\newcommand{\pd}{\partial}
\newcommand{\Lie}{\mathcal{L}}
</script>
<p>One of Saul Teukolsky’s favorite pieces of advices is if you’re ever
stuck, try integrating by parts. If we’re working with a covariant
derivative <script type="math/tex">\cd_a</script>, and we have some tensor quantities <script type="math/tex">S, T</script> under
an integral, then every calculus student knows that we can move the
derivative from one to the other,</p>
<div>
\begin{align}
\int_R S (\cd_a T) \sqrt{|g|} d^nx =
\int_R (- \cd_a S) T \sqrt{|g|} d^nx + \textrm{boundary term.}
\end{align}
</div>
<p>(Of course, this only makes sense if your integral itself makes
sense—so <script type="math/tex">\cd, S, T</script> together make the integrand a scalar.) Here
<script type="math/tex">R</script> is the integration region, and the boundary terms above come
from
<a href="https://en.wikipedia.org/wiki/Stokes%27_theorem">Stokes’ theorem</a>,
converting the integral of a total divergence in <script type="math/tex">R</script> into the
integral of a flux through the boundary <script type="math/tex">\pd R</script>.</p>
<p>Sometimes in differential geometry, instead of dealing with a
metric-compatible covariant derivative <script type="math/tex">\cd_a</script>, we’re dealing with a
<a href="https://en.wikipedia.org/wiki/Lie_derivative">Lie derivative</a>
<script type="math/tex">\Lie_v</script> along a vector field <script type="math/tex">v</script>. Wouldn’t it be convenient,
then, if we could integrate by parts with Lie derivatives? That is,
do we have the property that</p>
<div>
\begin{align}
\label{eq:Lie-int-by-parts-q}
\int_R S (\Lie_v T) \sqrt{|g|} d^nx \overset{?}{=}
\int_R (- \Lie_v S) T \sqrt{|g|} d^nx + \textrm{boundary term?}
\end{align}
</div>
<p>After all, integrating by parts comes from rearranging the Leibniz
rule <script type="math/tex">\cd_a(S\, T) = (\cd_a S) T + S (\cd_a T)</script>. But the Lie
derivative, being a
<a href="https://en.wikipedia.org/wiki/Derivation_(differential_algebra)">derivation</a>,
also satisfies the Leibniz rule,</p>
<div>
\begin{align}
\label{eq:Lie-Leibniz}
\Lie_v(S\, T) = (\Lie_v S) T + S (\Lie_v T) .
\end{align}
</div>
<p>But in reality all this gets us is the formula</p>
<div>
\begin{align}
\int_R S (\Lie_v T) \sqrt{|g|} d^nx =
\int_R (- \Lie_v S) T \sqrt{|g|} d^nx +
\int_R \Lie_v(S \, T) \sqrt{|g|}d^nx \,.
\end{align}
</div>
<p>If we want this to become Eq. \eqref{eq:Lie-int-by-parts-q}, then we
need the final term to be a total divergence. The sufficient
condition for this to be a total divergence is that <script type="math/tex">v^a</script> <em>must be
divergence-free</em>. We can show this by detouring back through
covariant derivatives. First, notice that for this integrand
to make sense, we need all the indices in the product <script type="math/tex">ST</script> to be
contracted so that it is a scalar. Now the action of a Lie derivative
on a scalar is the same as the action of that vector on the scalar,
and can also be expressed in terms of any covariant derivative,</p>
<div>
\begin{align}
\Lie_v(S \, T) = v(S \, T) = v^a \pd_a (S \, T )= v^a \cd_a (S \, T) \,.
\end{align}
</div>
<p>Notice that when <script type="math/tex">\cd_a v^a = 0</script>, we can pull it inside the
derivative,</p>
<div>
\begin{align}
\cd_a v^a = 0 \quad \Longrightarrow \quad
v^a \cd_a (S \, T) = \cd_a ( v^a S \, T) \,.
\end{align}
</div>
<p>When this is the case, we can turn the last term into a boundary
integral,</p>
<div>
\begin{align}
&\cd_a v^a = 0 \quad \Longrightarrow \nonumber\\
&\int_R S (\Lie_v T) \sqrt{|g|} d^nx =
\int_R (- \Lie_v S) T \sqrt{|g|} d^nx +
\int_{\pd R} S T v^a n_a \sqrt{|\gamma|} d^{n-1} x
\,,
\end{align}
</div>
<p>where <script type="math/tex">n_a</script> is the unit normal to the boundary <script type="math/tex">\pd R</script> and
<script type="math/tex">\sqrt{|\gamma|} d^{n-1}x</script> is the proper “area” element.</p>
<h2 id="special-case-killing-vector-field">Special case: Killing vector field</h2>
<p>A
<a href="https://en.wikipedia.org/wiki/Killing_vector_field">Killing vector field</a>
(KVF) is a special case of a divergence-free
vector field. If <script type="math/tex">v</script> is a KVF, it generates an isometry of the
metric,</p>
<div>
\begin{align}
\Lie_v g = 0 \quad \Longrightarrow \quad
\cd_{(a} v_{b)} = 0 \quad \Longrightarrow \quad
\cd_a v^a = 0 \,,
\end{align}
</div>
<p>where the last equality comes from taking the trace of the middle
equation. Thus we have the corollary that we can “integrate by parts”
the Lie derivative along any Killing vector field.</p>Leo C. Steinleostein@tapir.caltech.eduWhen can you integrate-by-parts with Lie derivatives?Note on generating a divergence identity2017-03-27T16:00:00-07:002017-03-27T16:00:00-07:00https://duetosymmetry.com/notes/note-on-generating-a-divergence-identity<p>Special thanks to <a href="http://tensorial.com/">Ben Mares</a> for coming up
with this identity.
<script type="math/tex">
\newcommand{\cd}{\nabla}
</script></p>
<h2 id="motivation">Motivation</h2>
<p>The motivation for this calculation comes
from
<a href="https://en.wikipedia.org/wiki/Bochner%27s_formula">Bochner’s formula</a>
for harmonic functions. On a manifold <script type="math/tex">M</script> with metric <script type="math/tex">g</script>, a
function <script type="math/tex">u: M\to \mathbb{R}</script> is harmonic if <script type="math/tex">\Delta u = 0</script>, where
<script type="math/tex">\Delta \equiv \cd^a \cd_a</script> is the Laplacian and <script type="math/tex">\cd</script> is the
Levi-Civita connection compatible with <script type="math/tex">g</script>. Let’s define
<script type="math/tex">X_a =\cd_a u</script>, which is divergence-free, <script type="math/tex">\cd_a X^a = 0</script>.
Then Bochner’s formula says</p>
<div>
\begin{align}
\label{eq:bochner}
\Delta( \frac{1}{2} X^a X_a )
= (\cd_a X_b)(\cd^a X^b) + R_{ab} X^a X^b \,.
\end{align}
</div>
<p>Why is this formula interesting? Well, the left hand side is a total
divergence, so it will vanish if integrated over a manifold without
boundary (or if the boundary term vanishes). Meanwhile, if the metric
is Riemannian, then the first term on the right hand side is
non-negative; and the sign of the final term is determined by the
eigenvalues of the Ricci tensor. This formula is useful for
estimating energy bounds.</p>
<p>Another viewpoint on this formula is to rearrange it as an identity
for <script type="math/tex">|\cd X|^2</script>, which looks like a kinetic term. Then Bochner’s
formula says: <script type="math/tex">|\cd X|^2</script> <em>is a total divergence, modulo
lower-derivative curvature terms</em>.</p>
<p>A natural question is: does this divergence identity generalize?</p>
<h2 id="generating-the-divergence-identity">Generating the divergence identity</h2>
<p>From here forward let’s drop the divergence-free condition, so
<script type="math/tex">\cd_a X^a</script> may be non-zero (though the identities hold just as
well for vanishing <script type="math/tex">\cd_a X^a</script>).</p>
<p>It turns out that we can generalize the above identity by constructing
carefully anti-symmetrized tensor products of the tensor <script type="math/tex">M_a{}^b
\equiv \cd_a X^b</script>. These expressions arise in the expansion of the
<a href="https://en.wikipedia.org/wiki/Characteristic_polynomial">characteristic polynomial</a>
of <script type="math/tex">M_a{}^b</script> (the characteristic polynomial made an appearance in
<a href="https://duetosymmetry.com/notes/note-on-a-dimension-dependent-Weyl-identity/">an earlier note</a>
that I wrote). The characteristic polynomial of an <script type="math/tex">n\times n</script>
matrix is given by
<script type="math/tex">p_M(t) \equiv \det(tI - M)</script>, where <script type="math/tex">I</script> is the <script type="math/tex">n\times n</script>
identity matrix.</p>
<p>The term proportional to <script type="math/tex">t^{n-k}</script> is homogeneous of degree <script type="math/tex">k</script> in
the coefficients of <script type="math/tex">M</script>. Wikipedia writes this
as <script type="math/tex">(-1)^k \mathrm{tr}(\Lambda^k M)</script>, which is a bit abstruse.
Let’s clarify by first forming the <script type="math/tex">k</script>-th tensor product,</p>
<div>
\begin{align}
M_{i_1}{}^{j_1} M_{i_2}{}^{j_2} \cdots M_{i_k}{}^{j_k} \,.
\end{align}
</div>
<p>Now antisymmetrize on all the i and/or j indices, and completely
contract the upper indices with all of the lower indices. Let’s call
this <script type="math/tex">p_{(k)}</script>,</p>
<div>
\begin{align}
p_{(k)} =
(\cd_{i_1}X^{[i_1})
(\cd_{i_2}X^{i_2})\cdots
(\cd_{i_k}X^{i_k]}) \,.
\end{align}
</div>
<p>It is important to remember that the antisymmetrization happens first,
before contraction.</p>
<p>This question is now: <em>is <script type="math/tex">p_{(k)}</script> a total divergence, modulo
lower-derivative curvature terms</em>? The answer is yes (why else would
I have written these notes).</p>
<p>To see this, let’s define the vector</p>
<div>
\begin{align}
D_{(k)}^i \equiv
X^{[i} (\cd_{i_2}X^{i_2}) \cdots (\cd_{i_k}X^{i_k]}) \,.
\end{align}
</div>
<p>What happens when we take the divergence of this vector? Using the
product rule, we will generate <script type="math/tex">k</script> terms (each of which is actually
antisymmetrized over the <script type="math/tex">k</script> upper indices, so it’s really
<script type="math/tex">k\cdot k!</script> terms).</p>
<p>The first of these terms, when <script type="math/tex">\cd_i</script> hits <script type="math/tex">X^i</script>, is precisely
<script type="math/tex">p_{(k)}</script>. What about the remaining <script type="math/tex">k-1</script> terms, when <script type="math/tex">\cd_i</script>
hits <script type="math/tex">\cd_{i_r}X^{i_r}</script>, <script type="math/tex">2\le r \le k</script>? That is, a term of the
form</p>
<div>
\begin{align}
X^{[i} (\cd_{i_2}X^{i_2}) \cdots
(\cd_i \cd_{i_r}X^{i_r}) \cdots
(\cd_{i_k}X^{i_k]}) \,.
\end{align}
</div>
<p>The crucial observation is that the two derivative indices <script type="math/tex">i\,i_r</script>
are contracted with the <em>completely anti-symmetric</em> block of indices
<script type="math/tex">[i\,i_1\,\ldots\,i_k]</script>. This means that we are free to transfer
over the antisymmetry onto the double derivative indices
<script type="math/tex">[i\,i_r]</script>; and this makes it a commutator of derivatives and thus a
curvature term.</p>
<p>Thus we arrive at the following divergence identity,</p>
<div>
\begin{align}
\cd_i D_{(k)}^i - p_{(k)} =
\sum_{r=2}^k
\frac{1}{2} X^{[i_1}
(\cd_{i_2}X^{i_2}) \cdots
R_{i_1 i_r}{}^{i_r}{}_j X^{|j|}
\cdots (\cd_{i_k}X^{i_k]})
\,,
\end{align}
</div>
<p>where the vertical bars around <script type="math/tex">j</script> mean that we do not
antisymmetrize that index. Again it is important to antisymmetrize
over the upper indices first, and trace second; so the Riemann does
not automatically become a Ricci.</p>
<p>Thus we have established that <script type="math/tex">p_{(k)}</script> is a total divergence,
modulo lower-derivative curvature terms.</p>
<p>We can give a few examples, but the expressions get very large very
quickly. For <script type="math/tex">k=2</script>, we have</p>
<div>
\begin{align}
\cd_i D_{(2)}^i - p_{(2)} =
-\frac{1}{2} R_{ab}X^a X^b
\,,
\end{align}
</div>
<p>which is a way of re-writing Bochner’s formula Eq. \eqref{eq:bochner}.
For <script type="math/tex">k=3</script>, we have</p>
<div>
\begin{align}
\cd_i D_{(3)}^i - p_{(3)} =
\frac{1}{3} X^a X^b
\left(
R_{bc}\cd_a X^c
-R_{ab}\cd_c X^c
+R_{acb}{}^d\cd_d X^c
\right)
\,.
\end{align}
</div>
<p>For <script type="math/tex">k=4</script>, we have the intimidating</p>
<div>
\begin{align}
\cd_i D_{(4)}^i - p_{(4)} =
-\frac{1}{8} X^{a} X^{b}
\Big[&
2 \cd_{a}X^{c} (R_{bd} \cd_{c}X^{d}
- R_{bc} \cd_{d}X^{d})
\\ &
{}+ R_{ab} (\cd_{c}X^{c} \cd_{d}X^{d}
- \cd_{c}X^{d} \cd_{d}X^{c})
\nonumber\\ &
{}+ 2 \cd_{e}X^{d} (R_{acb}{}^{e} \cd_{d}X^{c}
+ R_{cdb}{}^{e} \cd_{a}X^{c}
- R_{adb}{}^{e} \cd_{c}X^{c})
\Big]\,.\nonumber
\end{align}
</div>
<p>Obviously I would recommend using <a href="http://www.xact.es/">xTensor</a> to do
these computations. My notebook to do these calculations is available
upon request.</p>Leo C. Steinleostein@tapir.caltech.eduSpecial thanks to Ben Mares for coming up
with this identity.Note on a (dimension-dependent) Weyl identity2017-02-08T16:00:00-08:002017-02-08T16:00:00-08:00https://duetosymmetry.com/notes/note-on-a-dimension-dependent-Weyl-identity<p>There is a nice 4-dimensional Weyl identity that I can never seem to
remember off the top of my head; so I decided I need to write this
note so I don’t have to remember it in the future. The identity is:</p>
<div>
\begin{align}
\label{eq:theIdentity}
C_{a}{}^{cde}C_{bcde} = \frac{1}{4}g_{ab} C^{cdef}C_{cdef} \,.
\end{align}
</div>
<p>This identity comes in handy for simplifying the equations of motion
of Einstein-dilaton-Gauss-Bonnet gravity.</p>
<p>So, how do we work out this identity so we don’t have to remember it?
I gave a hint when I said this is a dimension-dependent identity: it’s
specific to dimension 4. Most<sup id="fnref:1"><a href="#fn:1" class="footnote">1</a></sup> dimension-dependent
identities come from antisymmetrizing some expression over more than
<script type="math/tex">d</script> indices, where <script type="math/tex">d</script> is the dimension. Because there are only
<script type="math/tex">d</script> coordinates, antisymmetrizing over more than <script type="math/tex">d</script> slots will
automatically vanish (i.e. more than <script type="math/tex">d</script> vectors must be
linearly-dependent in a <script type="math/tex">d</script>-dimensional vector space).</p>
<p>This particular identity comes from antisymmetrizing over <script type="math/tex">[abcdf]</script>
in the expression:</p>
<div>
\begin{align}
\label{eq:antisymmetrize}
0 = C^{ab}{}_{[ab}C^{cd}{}_{cd}\delta^e{}_{f]} \,.
\end{align}
</div>
<p>Obviously this will produce <script type="math/tex">5!=120</script> terms in a sum, but the vast
majority of them vanish because Weyl is tracefree on every pair of
indices.</p>
<p>In fact, up to index order, there are only 5 combinations that are not
obviously vanishing. The first Weyl tensor vanishes unless the lower
indices are two of <script type="math/tex">\{c,d,f\}</script>; similarly, the second Weyl tensor
vanishes unless the lower indices are two of <script type="math/tex">\{a,b,f\}</script>. This
allows us to enumerate all of the possibilities in short order. After
applying the antisymmetry of Weyl on the latter two indices, there
are exactly 5 index permutations of <script type="math/tex">\{abcdf\}</script> that are allowed,
and they are (lexicographically):</p>
<div>
\begin{align*}
C^{ab}{}_{cd}C^{cd}{}_{ab}\delta^e{}_{f} \,,
C^{ab}{}_{cd}C^{cd}{}_{af}\delta^e{}_{b} \,,
C^{ab}{}_{cd}C^{cd}{}_{bf}\delta^e{}_{a} \,,\\
C^{ab}{}_{cf}C^{cd}{}_{ab}\delta^e{}_{d} \,,
C^{ab}{}_{df}C^{cd}{}_{ab}\delta^e{}_{c} \,.
\end{align*}
</div>
<p>All that remains to do is to contract the <script type="math/tex">\delta</script> indices and
figure out the signature of each permutation to get the sign
correct. Doing so gives the identity \eqref{eq:theIdentity} (with an
index raised and indices renamed).</p>
<p>Of course, all of this is much easier with
the <a href="http://www.xact.es/">xAct/xTensor package</a>. I highly recommend
this to find e.g. the Riemann form of the above identity. It comes
from the same expression as \eqref{eq:antisymmetrize} but replacing
<script type="math/tex">C</script> with <script type="math/tex">R</script>, and now there are many more combinations that do not
vanish, but instead produce Ricci terms. Explicitly, we get the
unwieldy</p>
<div>
\begin{align}
R_{ebcd} R_{f}{}^{bcd} =
\frac{1}{4} g_{ef} R_{abcd}R^{abcd}
- g_{ef} R_{ab}R^{ab}
+ 2 R^{bc} R_{ebfc}
+ 2 R_{eb} R_f{}^b
+ \frac{1}{4} g_{ef} R^2
- R R_{ef} \,.
\end{align}
</div>
<p>While I was hunting for my lost identity, I came across a nice
paper<sup id="fnref:2"><a href="#fn:2" class="footnote">2</a></sup> on the more general topic of dimension-dependent
identities. This included, for example, the fact that the
<a href="https://en.wikipedia.org/wiki/Cayley%E2%80%93Hamilton_theorem">Cayley-Hamilton theorem</a>
can be derived from a dimension-dependent identity. Specifically,
consider an <script type="math/tex">n</script>-dimensional vector space <script type="math/tex">V</script> and the matrix
<script type="math/tex">T^a{}_b</script> with indices in <script type="math/tex">V</script> and <script type="math/tex">V^*</script>. Then the
Cayley-Hamilton theorem for <script type="math/tex">T</script> can be written as</p>
<div>
\begin{align}
T^{i_1}{}_{[i_1}
T^{i_2}{}_{i_2} \cdots T^{i_n}{}_{i_n}
\delta^{a}{}_{b]} = 0 \,,
\end{align}
</div>
<p>where there are <script type="math/tex">n</script> copies of <script type="math/tex">T</script>, and an antisymmetrization over
<script type="math/tex">n+1</script> indices.</p>
<p>This doesn’t obviously look like the Cayley-Hamilton theorem, but: it
is a linear combination of various matrix powers of <script type="math/tex">(T^k)^a{}_b</script>,
with coefficients determined by various traces of other powers of
<script type="math/tex">T</script> in a very specific way (they turn out to be
<a href="https://en.wikipedia.org/wiki/Elementary_symmetric_polynomials">elementary symmetric polynomials</a>
of the eigenvalues of <script type="math/tex">T</script>).</p>
<p>An example makes this a bit easier to see. Let’s expand this for
<script type="math/tex">n=4</script> dimensions. Again, I recommend using xTensor. For shorthand,
let me write the matrix power</p>
<div>
\begin{align}
(T^k)^a{}_b \equiv T^a{}_{i_1} T^{i_1}{}_{i_2} \cdots T^{i_{k-1}}{}_b
\end{align}
</div>
<p>and denote the trace with <script type="math/tex">[T] \equiv T^a{}_a</script>. Then the
four-dimensional Cayley-Hamilton theorem says</p>
<div>
\begin{align}
0 ={}& 5 T^{i_1}{}_{[i_1}
T^{i_2}{}_{i_2} T^{i_3}{}_{i_3} T^{i_4}{}_{i_4}
\delta^{a}{}_{b]} \\
0={}& (T^4)^a{}_b
- (T^3)^a{}_b [T]
+ (T^2)^a{}_b \tfrac{1}{2} ([T]^2 - [T^2]) \\
&{}+ T^a{}_b \tfrac{1}{6} (-[T]^3 + 3 [T] [T^2] - 2 [T^3]) \nonumber\\
&{}+ \delta^a{}_b \tfrac{1}{24} ([T]^4 - 6 [T]^2 [T^2] + 3 [T^2]^2
+ 8 [T] [T^3] - 6 [T^4]) \,. \nonumber
\end{align}
</div>
<p>What are all those strange combinations of traces? Well, use the
identity that <script type="math/tex">[T^k] = \sum_{i=1}^n \lambda_i^k</script> (easiest proved for
diagonalizable matrices by going into the diagonal basis) where
<script type="math/tex">\lambda_i</script> is the i’th eigenvalue. Then you will readily verify
that these are in fact the elementary symmetric polynomials of the
eigenvalues of <script type="math/tex">T</script>, explicitly:</p>
<div>
\begin{align*}
\tfrac{1}{24} ([T]^4 - 6 [T]^2 [T^2] + 3 [T^2]^2 + 8 [T] [T^3] - 6
[T^4]) &= \lambda_1 \lambda_2 \lambda_3 \lambda_4 \\
\tfrac{1}{6} ([T]^3 - 3 [T] [T^2] + 2 [T^3])&= \lambda_1 \lambda_2
\lambda_3 + \lambda_1 \lambda_2 \lambda_4 + \lambda_1 \lambda_3
\lambda_4 + \lambda_2 \lambda_3 \lambda_4 \\
\tfrac{1}{2} ([T]^2 - [T^2]) &= \lambda_1 \lambda_2 + \lambda_1 \lambda_3 +
\lambda_1 \lambda_4 + \lambda_2 \lambda_3 + \lambda_2 \lambda_4 +
\lambda_3 \lambda_4 \\
[T] &= \lambda_1 + \lambda_2 + \lambda_3 + \lambda_4
\end{align*}
</div>
<p>So this is indeed the characteristic polynomial of <script type="math/tex">T</script>! (Aside:
equations such as these are examples of
<a href="https://en.wikipedia.org/wiki/Newton%27s_identities">Newton-Girard identities</a>).</p>
<h1 id="footnotes">Footnotes</h1>
<div class="footnotes">
<ol>
<li id="fn:1">
<p>I think there may be more complicated ones which come from
<a href="https://en.wikipedia.org/wiki/Garnir_relations">Garnir relations</a>,
but I know nothing about these. <a href="#fnref:1" class="reversefootnote">↩</a></p>
</li>
<li id="fn:2">
<p>Edgar and Höglund, J.Math.Phys. 43 (2002) 659-677
<a href="https://arxiv.org/abs/gr-qc/0105066">arXiv:gr-qc/0105066</a> <a href="#fnref:2" class="reversefootnote">↩</a></p>
</li>
</ol>
</div>Leo C. Steinleostein@tapir.caltech.eduThere is a nice 4-dimensional Weyl identity that I can never seem to
remember off the top of my head; so I decided I need to write this
note so I don’t have to remember it in the future. The identity is:
\begin{align}
\label{eq:theIdentity}
C_{a}{}^{cde}C_{bcde} = \frac{1}{4}g_{ab} C^{cdef}C_{cdef} \,.
\end{align}
This identity comes in handy for simplifying the equations of motion
of Einstein-dilaton-Gauss-Bonnet gravity.TG17 and APS17 talk slides2017-02-06T16:00:00-08:002017-02-06T16:00:00-08:00https://duetosymmetry.com/talks/TG17-and-APS17-talk-slides<p>Better late than never!
Here are
<a href="https://duetosymmetry.com/files/num-bhs-and-mergers-beyond-gr.pdf">my slides</a>
from two recent back-to-back conferences:
<a href="https://www.sfu.ca/physics/cosmology/TestingGravity2017/">Testing Gravity 2017</a>
in Vancouver, and the
<a href="http://meetings.aps.org/Meeting/APR17/Content/3244">2017 “April” APS conference</a>
in Washington DC.
The talks I gave at both conferences were similar (and also contained
elements I’ve discussed before, at
<a href="https://duetosymmetry.com/talks/gr21-talk-slides/">GR21</a>,
<a href="https://duetosymmetry.com/talks/FF2016-talk-slides/">FF2016</a>,
and
<a href="https://duetosymmetry.com/talks/EHT16-talk-slides/">EHT16</a>).
Therefore I’m only posting one set of slides.</p>
<p>Also, the movies (right click and save):
<a href="https://duetosymmetry.com/files/zooming.mp4">[1]</a>
<a href="https://duetosymmetry.com/files/theta3d.mp4">[2]</a>.</p>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/zooming.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/zooming.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/theta3d.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/theta3d.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>Leo C. Steinleostein@tapir.caltech.eduMy talk slides/movies from TG17 and APS17Notes on the Weyl, E/B, and 3+1 decompositions of Riemann, and curvature invariants2017-01-09T22:32:00-08:002017-01-09T22:32:00-08:00https://duetosymmetry.com/notes/notes-on-the-E-B-and-3+1-decomp-of-Riem<aside class="sidebar__right">
<nav class="toc">
<header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
<ul class="toc__menu" id="markdown-toc">
<li><a href="#weyl-decomposition" id="markdown-toc-weyl-decomposition">Weyl decomposition</a></li>
<li><a href="#curvature-invariants-1" id="markdown-toc-curvature-invariants-1">Curvature invariants 1</a></li>
<li><a href="#and-electricmagnetic-decomposition" id="markdown-toc-and-electricmagnetic-decomposition">3+1 and electric/magnetic decomposition</a></li>
<li><a href="#curvature-invariants-2" id="markdown-toc-curvature-invariants-2">Curvature invariants 2</a></li>
<li><a href="#computing-from-gauss-codazzi-relations" id="markdown-toc-computing-from-gauss-codazzi-relations">Computing from Gauss-Codazzi relations</a></li>
<li><a href="#references" id="markdown-toc-references">References</a></li>
</ul>
</nav>
</aside>
<p>More notes I had that needed to live somewhere. I hope you find them
useful.</p>
<h1 id="weyl-decomposition">Weyl decomposition</h1>
<p>The most basic ingredient here is splitting the Riemann tensor into
trace and tracefree pieces. This should be covered in every standard
GR textbook (see e.g. Wald<sup id="fnref:1"><a href="#fn:1" class="footnote">1</a></sup>). The decomposition is, in <script type="math/tex">n</script>
dimensions,</p>
<div>
\begin{align}
\label{eq:R-decomp-1}
R_{abcd} = C_{abcd} + \frac{2}{n-2}( g_{a[c} R_{d]b} - g_{b[c} R_{d]a})
- \frac{2}{(n-1)(n-2)}R g_{a[c} g_{d]b} \,,
\end{align}
</div>
<p>where <script type="math/tex">C_{abcd}</script> is the tracefree Weyl tensor, and as usual, the
Ricci tensor is <script type="math/tex">R_{bd} = R^a{}_{bad}</script> and the Ricci scalar is <script type="math/tex">R =
g^{ab}R_{ab}</script>.</p>
<p>Now, this is not a very pleasant expression to remember. It can be
brought into a slightly nicer form by defining an ‘impose index
symmetry’ operation with some group <script type="math/tex">G</script>, which is a subgroup of the
<a href="https://groupprops.subwiki.org/wiki/Signed_symmetric_group">signed permutation group</a>
(signed symmetric group / hyperoctahedral group), which is just the
symmetric group <script type="math/tex">S_n</script> where each
permutation is further given a sign, <script type="math/tex">\pm 1</script>. The ‘Riemann
symmetric’ group <script type="math/tex">r[abcd]</script> is generated by the elements <script type="math/tex">\{ -(ab),
-(cd), +(ac)(bd) \}</script>. That is, the Riemann tensor <script type="math/tex">R_{abcd}</script> is
separately antisymmetric on <script type="math/tex">ab</script>, separately antisymmetric on
<script type="math/tex">cd</script>, and symmetric under the <em>simultaneous</em> interchange of
<script type="math/tex">ab\leftrightarrow cd</script>. You can check that <script type="math/tex">r[abcd]</script> is a group
with 8 elements.</p>
<p>The ‘impose index symmetry’ operation on a tensor expression
<script type="math/tex">T_{i\cdots}</script> is given by</p>
<div>
\begin{align}
\label{eq:impose-sym-def}
(S_G T)_{i\cdots} =
\frac{1}{|G|} \sum_{g\in G} z(g) T_{g\circ i\cdots} \,
\end{align}
</div>
<p>where <script type="math/tex">|G|</script> is the order of the group, <script type="math/tex">z(g)</script> is the sign
(+1 or -1) associated with the element <script type="math/tex">g</script>, and <script type="math/tex">g\circ i\cdots</script>
means to permute indices <script type="math/tex">i\cdots</script> as specified by the permutation
<script type="math/tex">g</script>. This is a generalization of the symmetrization <script type="math/tex">(ab)</script> and
antisymmetrization <script type="math/tex">[abc]</script> operations that are commonly used,
corresponding to respectively the whole symmetric group with all plus
signs, or the whole symmetric group where signs <script type="math/tex">z(g)=sgn(g)</script> are
determined by the parity of the permutation <script type="math/tex">g</script>. This general
operation is implemented in <a href="http://www.xact.es/">xAct</a> as
<code class="highlighter-rouge">ImposeSymmetry[]</code>.</p>
<p>Having defined this operation, we can (slightly) improve
Eq. \eqref{eq:R-decomp-1} via</p>
<div>
\begin{align}
\label{eq:R-decomp-proj}
R_{abcd} = S_{r[abcd]} \left[
C_{abcd}
+ \frac{4}{n-2} R_{ac}g_{bd}
- \frac{2}{(n-1)(n-2)} R g_{ac}g_{bd}
\right] \,.
\end{align}
</div>
<h1 id="curvature-invariants-1">Curvature invariants 1</h1>
<p>Each of the Weyl/Ricci tensor/Ricci scalar pieces of the decomposition
are orthogonal to each other in the following way. Construct the
<em>Kretschmann invariant</em>, <script type="math/tex">K\equiv R_{abcd}R^{abcd}</script>. In terms of the
Weyl decomposition, it is given by</p>
<div>
\begin{align}
\label{eq:K-Weyl-decomp}
K = C_{abcd}C^{abcd}
+ \frac{4}{n-2} R_{ab}R^{ab}
- \frac{2}{(n-1)(n-2)}R^2 \,.
\end{align}
</div>
<p>Note: the coefficients in Eq. \eqref{eq:K-Weyl-decomp} are the same as
those appearing in Eq. \eqref{eq:R-decomp-proj}. This has something
to do with the impose-symmetry operation being a properly normalized
idempotent projection operation. In this case, it is actually a Young
projector for the standard Young tableau filled with
{{1,3},{2,4}}.</p>
<p>From here forward we focus on dimension <script type="math/tex">n=4</script>. Now we can also
define the (left) dual Riemann tensor, via</p>
<div>
\begin{align}
{}^*\!R^{ab}{}_{cd} \equiv \frac{1}{2}\epsilon^{abef}R_{efcd} \,.
\end{align}
</div>
<p>With this dual, we can define the <em>Pontryagin invariant</em>,</p>
<div>
\begin{align}
P \equiv {}^*\!R^{abcd} R_{abcd} ={}^*\!C^{abcd} C_{abcd} \,,
\end{align}
</div>
<p>where <script type="math/tex">{}^*\!C^{abcd}</script> is the (left) dual Weyl tensor, defined in the
same way as the dual to Riemann. Interestingly, the Pontryagin is
completely insensitive to the Ricci tensor.</p>
<p>For future purposes, we will also define a complex tensor where the
real part is Weyl and the imaginary part is the (left) dual of Weyl,</p>
<div>
\begin{align}
\tilde{C}_{abcd} \equiv C_{abcd} + i {}^*\! C_{abcd} \,.
\end{align}
</div>
<p>The square of this tensor contains both Kretschmann (minus the Ricci
parts) and Pontryagin:</p>
<div>
\begin{align}
\tilde{C}_{abcd} \tilde{C}^{abcd} = 2 ( C_{abcd} C^{abcd}
+ i {}^*\!C_{abcd} C^{abcd} ) \,.
\end{align}
</div>
<p>This quantity is related to the so-called <script type="math/tex">I</script> invariant which is
usually defined in spinor language (see e.g. Stephani et al.<sup id="fnref:2"><a href="#fn:2" class="footnote">2</a></sup>). The completely symmetric ‘Weyl
spinor’ <script type="math/tex">\Psi_{(ABCD)}</script> related to the tensor <script type="math/tex">\tilde{C}</script> is</p>
<div>
\begin{align}
\label{eq:tilde-C-to-spinor}
\tilde{C}_{abcd} =
2\Psi_{ABCD} \varepsilon_{\dot{A}\dot{B}} \varepsilon_{\dot{C}\dot{D}}
\,,
\end{align}
</div>
<p>where tensor indices <script type="math/tex">a, b, c, d</script> are related to spinor index pairs
<script type="math/tex">A\dot{A}, B\dot{B}</script> and so on. In other words, the soldering form
(or van der Waerden symbols)
<script type="math/tex">\sigma^a{}_{A\dot{A}}\sigma^b{}_{B\dot{B}}\cdots</script> are to be
inferred on the LHS of Eq. \eqref{eq:tilde-C-to-spinor}.</p>
<p>The aforementioned <script type="math/tex">I</script> invariant is given by</p>
<div>
\begin{align}
\label{eq:I-inv-def}
I &\equiv \frac{1}{2} \Psi_{ABCD} \Psi^{ABCD} =
\frac{1}{32} \tilde{C}_{abcd} \tilde{C}^{abcd} \\
I &=
\frac{1}{2}(
\Psi_0 \Psi_4 - 4 \Psi_1 \Psi_3 + 6 \Psi_2^2
- 4 \Psi_1 \Psi_3
+ \Psi_0 \Psi_4
)
\,,
\end{align}
</div>
<p>where the Weyl scalars in some spinor dyad basis
<script type="math/tex">\{ o^A, \iota^A \}</script>
are defined as usual (the subscript counts the number of <script type="math/tex">\iota</script>’s
contracted into the spinor),</p>
<div>
\begin{align}
\Psi_0 &= \Psi_{oooo} \,, & \Psi_1 &= \Psi_{ooo\iota} \,, \\
\Psi_2 &= \Psi_{oo\iota\iota} \,, & \Psi_3 &= \Psi_{o\iota\iota\iota} \,, \\
\Psi_4 &= \Psi_{\iota\iota\iota\iota} \,.
\end{align}
</div>
<p>Similarly, for the <script type="math/tex">J</script> invariant,</p>
<div>
\begin{align}
J &\equiv \frac{1}{6} \Psi_{ABCD} \Psi^{CDEF} \Psi_{EF}{}^{AB}
= \frac{1}{384} \tilde{C}_{abcd} \tilde{C}^{cdef}
\tilde{C}_{ef}{}^{ab}
\,, \\
J &=
\Psi_0 \Psi_2 \Psi_4
+ 2 \Psi_1 \Psi_2 \Psi_3
- \Psi_0 \Psi_3^2
- \Psi_1^2 \Psi_4
- \Psi_2^3
\,.
\end{align}
</div>
<p>A mnemonic for remembering <script type="math/tex">J</script> in terms of the Weyl scalars is given
by the determinant expression</p>
<div>
\begin{align}
J = \left|
\begin{matrix}
\Psi_0 & \Psi_1 & \Psi_2 \\
\Psi_1 & \Psi_2 & \Psi_3 \\
\Psi_2 & \Psi_3 & \Psi_4
\end{matrix}
\right| \,.
\end{align}
</div>
<script type="math/tex">
\newcommand{\lie}{\mathcal{L}}
\newcommand{\Rf}{ {}^{(4)}\!R}
\newcommand{\Rt}{ {}^{(3)}\!R}
\newcommand{\cd}{\nabla}
</script>
<h1 id="and-electricmagnetic-decomposition">3+1 and electric/magnetic decomposition</h1>
<p>Now let us suppose we have a 3+1 decomposition of the spacetime,
i.e. that (a region of) the spacetime is foliated by spacelike
hypersurfaces (see standard references on this topic, e.g. Baumgarte
and Shapiro<sup id="fnref:3"><a href="#fn:3" class="footnote">3</a></sup>). We have a timelike unit normal <script type="math/tex">n^a</script>, with
<script type="math/tex">n^a n_a = -1</script>. This induces a splitting of the tangent spaces into
time components (parallel to <script type="math/tex">n</script>) and ‘spatial’ components
(orthogonal to <script type="math/tex">n</script>). We have the spatial metric induced on the
spatial hypersurface <script type="math/tex">\gamma_{ab}</script>, with <script type="math/tex">\gamma_{ab}n^b = 0</script>,
given by</p>
<div>
\begin{align}
g_{ab} = \gamma_{ab} - n_a n_b \,.
\end{align}
</div>
<p>The metric-compatible derivative of <script type="math/tex">g_{ab}</script> is <script type="math/tex">\cd_a</script>, the
metric-compatible derivative of <script type="math/tex">\gamma_{ab}</script> is <script type="math/tex">D_a</script>, the
extrinsic curvature is <script type="math/tex">K_{ab} = -\frac{1}{2}\lie_n \gamma_{ab}</script>.</p>
<p>To avoid confusion, we will now label the 4-Riemann (and 4-Ricci) with
<script type="math/tex">\Rf</script>, and the 3-Riemann (and 3-Ricci, a.k.a. “thricci”) with
<script type="math/tex">\Rt</script>.</p>
<p>We can now decompose all 4-dimensional objects using this splitting of
the tangent bundle. We will need to split the 4-dimensional volume
form, via (Warning: conventions may vary!)</p>
<div>
\begin{align}
\epsilon_{abcd} &= -4 n_{[a} \epsilon_{bcd]} \,, &
\epsilon_{abc} &= n^d \epsilon_{dabc} \,.
\end{align}
</div>
<p>There is no need for 3/4 superscripts because just reading the number
of indices tells you whether this is the 3-volume or 4-volume form.</p>
<p>Now we proceed to splitting the Weyl tensor into space- and time
pieces. This proceeds by analogy to the Maxwell tensor. The
“electric” part of Weyl is defined via</p>
<div>
\begin{align}
\label{eq:E-def}
E_{ab} \equiv C_{acbd} n^c n^d \,,
\end{align}
</div>
<p>while the “magnetic” part of Weyl is defined via (Warning: conventions
may vary!)</p>
<div>
\begin{align}
\label{eq:B-def}
B_{ab} \equiv {}^*\!C_{acbd} n^c n^d \,.
\end{align}
</div>
<p>From these two it is obvious that</p>
<div>
\begin{align}
\tilde{C}_{acbd} n^c n^d = E_{ab} + i B_{ab} \,.
\end{align}
</div>
<p>Each of <script type="math/tex">E_{ab}</script> and <script type="math/tex">B_{ab}</script> are symmetric and trace-free spatial
tensors. This is as far as you can decompose Weyl without imposing
additional structure (like some preferred direction).</p>
<p>We can re-express Weyl in terms of <script type="math/tex">E_{ab}</script>, <script type="math/tex">B_{ab}</script>, the
timelike unit vector and spatial metric, and 3-epsilon tensor. I
don’t know if there is a clever way to do this other than to take the
below expression and verify that it’s correct. Let me know if you
have some better insight. Regardless, the most compact way of writing
this is again using the above ‘impose index symmetry’ operation
<script type="math/tex">S_G</script> in Eq. \eqref{eq:impose-sym-def} with <script type="math/tex">G=r[abcd]</script>, the index
symmetries of Riemann. The expression is (thanks to Alfonso
García-Parrado Gómez-Lobo)</p>
<div>
\begin{align}
\label{eq:weyl-in-E-B}
C_{abcd} = S_{r[abcd]} \left[
4 E_{ac} (\gamma_{bd} + n_b n_d)
+ \epsilon_{ab}{}^e n_d B_{ce}
\right] \,.
\end{align}
</div>
<h1 id="curvature-invariants-2">Curvature invariants 2</h1>
<p>Obviously we would like to express curvature invariants in terms of
the electric and magnetic Weyl tensors. This is a snap if you use
xTensor (otherwise there is a lot of algebra). The relationship is</p>
<div>
\begin{align}
I &= \frac{1}{2} (E_{ab}E^{ab}-B_{ab}B^{ab}) + i E_{ab}B^{ab} \,, \\
I &= \frac{1}{2} (E_{ab} + i B_{ab})( E^{ab} + i B^{ab} ) \,.
\end{align}
</div>
<p>Now it is easy to see that Weyl squared and Pontryagin are simply</p>
<div>
\begin{align}
\label{eq:Weyl-squared-in-E-B}
C_{abcd} C^{abcd} &= 8 (E_{ab}E^{ab}-B_{ab}B^{ab}) \,, \\
{}^*C_{abcd} C^{abcd} &= 16 E_{ab} B^{ab} \,.
\end{align}
</div>
<p>Kretshmann of course also adds the 4-Ricci terms to
Eq. \eqref{eq:Weyl-squared-in-E-B}, via the relationship in
Eq. \eqref{eq:K-Weyl-decomp}.</p>
<p>Similarly, the <script type="math/tex">J</script> invariant turns out to be</p>
<div>
\begin{align}
J = \frac{-1}{6}
(E^a{}_b + i B^a{}_b)(E^b{}_c + i B^b{}_c)(E^c{}_a + i B^c{}_a)
\,.
\end{align}
</div>
<h1 id="computing-from-gauss-codazzi-relations">Computing from Gauss-Codazzi relations</h1>
<p>Let’s suppose you have at your disposal a numerical relativity
codebase (such as <a href="https://www.black-holes.org/SpEC.html">SpEC</a>) and
thus you have access to the 3-metric <script type="math/tex">\gamma_{ab}</script>, extrinsic
curvature <script type="math/tex">K_{ab}</script>, the 3-Ricci <script type="math/tex">\Rt_{ab}</script> and 4-Ricci
<script type="math/tex">\Rf_{ab}</script>; and you would like to compute <script type="math/tex">E_{ab}</script> and
<script type="math/tex">B_{ab}</script>. Certainly you should not attempt to construct the full
Riemann or Weyl tensors, because they have 256 numbers per grid point
but there are only 10 algebraically independent components in
<script type="math/tex">E_{ab}</script> and <script type="math/tex">B_{ab}</script>!</p>
<p>Therefore we would like an expression for how to compute <script type="math/tex">E_{ab}</script>
and <script type="math/tex">B_{ab}</script> in terms of the available quantities, without all the
overhead of computing Riemann or Weyl. To do so requires using the
<a href="https://en.wikipedia.org/wiki/Gauss%E2%80%93Codazzi_equations">Gauss-Codazzi equations</a> (see
e.g. Baumgarte and Shapiro<sup id="fnref:3:1"><a href="#fn:3" class="footnote">3</a></sup> for a didactic exposition). The Gauss
and Codazzi equations relate the orthogonal decomposition of the
4-curvature to the intrinsic and extrinsic curvature of the
spatial submanifold. These are implemented
in <a href="http://www.xact.es/">xAct</a> with the command <code class="highlighter-rouge">GaussCodazzi[]</code>.</p>
<p>The Gauss equation relates the completely spatial projection,</p>
<div>
\begin{align}
\label{eq:Gauss-eq}
\gamma_a^p \gamma_b^q \gamma_c^r \gamma_d^s \Rf_{pqrs}
=
\Rt_{abcd} + K_{ac}K_{bd} - K_{ad}K_{bc} \,.
\end{align}
</div>
<p>The recipe for finding a formula for <script type="math/tex">E_{ab}</script> is as follows:</p>
<ol>
<li>Use the 4-metric <script type="math/tex">g^{ac}</script> to trace over two indices</li>
<li>Use the Weyl decomposition \eqref{eq:R-decomp-1} for <script type="math/tex">\Rf</script> on the
left hand side</li>
<li>Insert the E/B decomposition \eqref{eq:weyl-in-E-B} for the Weyl
tensor on the left hand side</li>
<li>You should now have <script type="math/tex">E_{bd}</script> with free indices and no prefactor</li>
</ol>
<p>I highly recommend using <a href="http://www.xact.es/">xAct</a> for this
calculation, to avoid errors. The result is</p>
<div>
\begin{align}
E_{ab} =&
K_{ab} K^c_c
- K_a^c K_{bc}
+ \Rt_{ab} \nonumber \\
&
- \frac{1}{2} \gamma_a^c \gamma_b^d \Rf_{cd}
- \frac{1}{2} \gamma_{ab} \gamma^{cd} \Rf_{cd}
+ \frac{1}{3} \gamma_{ab} \Rf \,.
\end{align}
</div>
<p>The three terms on the second line all vanish when in a 4-Ricci-flat
manifold, e.g. in vacuum in GR.</p>
<p>To find an expression for the magnetic part <script type="math/tex">B_{ab}</script> involves the
Codazzi equation. This is the decomposition of 4-Riemann when one
index is contracted with <script type="math/tex">n^a</script> and the remaining three are projected
onto spatial directions. The Codazzi equation is</p>
<div>
\begin{align}
\gamma_a^p \gamma_b^q \gamma_c^r n^s \Rf_{pqrs}
=
D_b K_{ac} - D_a K_{bc} \,.
\end{align}
</div>
<p>The recipe for finding a formula for <script type="math/tex">B_{ab}</script> is as follows:</p>
<ol>
<li>Contract with the 3-epsilon <script type="math/tex">\epsilon_d{}^{bc}</script></li>
<li>Use the Weyl decomposition \eqref{eq:R-decomp-1} for <script type="math/tex">\Rf</script> on the
left hand side</li>
<li>Insert the E/B decomposition \eqref{eq:weyl-in-E-B} for the Weyl
tensor on the left hand side</li>
<li>Symmetrize on indices <script type="math/tex">(a,d)</script></li>
<li>You should now have <script type="math/tex">B_{ad}</script> with free indices and no prefactor</li>
</ol>
<p>Once again you should use <a href="http://www.xact.es/">xAct</a>. The result is simply</p>
<div>
\begin{align}
B_{ab} = \epsilon_{cd(a} D^c K_{b)}{}^d \,.
\end{align}
</div>
<h1 id="references">References</h1>
<div class="footnotes">
<ol>
<li id="fn:1">
<p><a href="http://press.uchicago.edu/ucp/books/book/chicago/G/bo5952261.html">Wald’s General Relativity</a> <a href="#fnref:1" class="reversefootnote">↩</a></p>
</li>
<li id="fn:2">
<p><a href="https://doi.org/10.1017/CBO9780511535185">Stephani et al.’s Exact Solutions of Einstein’s Field Equations</a> <a href="#fnref:2" class="reversefootnote">↩</a></p>
</li>
<li id="fn:3">
<p><a href="http://www.cambridge.org/us/academic/subjects/physics/cosmology-relativity-and-gravitation/numerical-relativity-solving-einsteins-equations-computer?format=HB">Baumgarte and Shapiro’s Numerical Relativity</a> <a href="#fnref:3" class="reversefootnote">↩</a> <a href="#fnref:3:1" class="reversefootnote">↩<sup>2</sup></a></p>
</li>
</ol>
</div>Leo C. Steinleostein@tapir.caltech.eduThe Weyl decomposition, further splitting into E/B, and computing in terms of 3+1 objectsNotes on the pullback connection2017-01-01T15:57:29-08:002017-01-01T15:57:29-08:00https://duetosymmetry.com/notes/notes-on-the-pullback-connection<script type="math/tex">
\newcommand{\lie}{\mathcal{L}}
\newcommand{\cd}{\nabla}
\newcommand{\ad}{\mathop{\rm ad}\nolimits}
</script>
<aside class="sidebar__right">
<nav class="toc">
<header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
<ul class="toc__menu" id="markdown-toc">
<li><a href="#definitions" id="markdown-toc-definitions">Definitions</a></li>
<li><a href="#for-a-killing-vector-field" id="markdown-toc-for-a-killing-vector-field">For a Killing vector field</a></li>
<li><a href="#general-connection-coefficients-for-varphitcd-cd" id="markdown-toc-general-connection-coefficients-for-varphitcd-cd">General connection coefficients for <script type="math/tex">(\varphi_{t}^{*}\cd)-\cd</script></a></li>
<li><a href="#expansion-of-pullback-connection" id="markdown-toc-expansion-of-pullback-connection">Expansion of pullback connection</a></li>
<li><a href="#references" id="markdown-toc-references">References</a></li>
</ul>
</nav>
</aside>
<p>In an effort to keep myself organized, I decided I should type up
some notes I have laying around. These calculations are not enough to
be a journal article (or even a note on the arXiv), but slightly
non-trivial, so I don’t want to lose them.</p>
<h2 id="definitions">Definitions</h2>
<p>This note is on a construction called the <em>pullback
connection</em>. Consider a manifold
<script type="math/tex">\mathcal{M},</script>
and let there be a one-parameter family of diffeomorphisms
<script type="math/tex">\varphi_{t}:\mathcal{M}\to \mathcal{M}.</script>
The one-parameter family is
of course a Lie group under composition, and
<script type="math/tex">\varphi_{s}\circ \varphi_{t} = \varphi_{s+t}.</script>
The diffeomorphism induces a number of maps, e.g. the pullback map
<script type="math/tex">\varphi_{t}^{*}</script>
and the pushforward map
<script type="math/tex">\varphi_{t*},</script>
sometimes written
<script type="math/tex">d\varphi_{t}.</script>
While the pullback and pushforward are defined for general maps
between manifolds, since this one is a diffeomorphism from the
manifold to itself, the pullback and pushforward are inverses,
<script type="math/tex">\varphi_{t*} = \varphi_{-t}^{*}.</script></p>
<p>Let <script type="math/tex">v^{a}</script> be the vector field tangent to the one-dimensional orbits
of <script type="math/tex">\varphi.</script> Recall that the Lie
derivative is defined as
\begin{align}
\label{eq:lie-deriv-def}
\lie_{v} T = \frac{d}{dt}
\Big[ \varphi_{t}^{*} T \Big]_{t=0}
\,.
\end{align}
Conversely, we can think of the pullback as exponentiation of the Lie
derivative, <script type="math/tex">\varphi_{t}^{*}=\exp[t\lie_{v}]</script>.</p>
<p>Now let there be a connection <script type="math/tex">\cd</script> on this manifold, so that for any
vector field
<script type="math/tex">X\in \mathcal{X}(\mathcal{M}),</script>
<script type="math/tex">\cd_{X}</script>
is a map from the space of tensor fields of rank
<script type="math/tex">(p,q)</script>
to the same space; that
<script type="math/tex">\cd_{X}</script>
satisfies the Leibniz property, and so on; and in particular
that it only involves <script type="math/tex">X</script> but not derivatives of <script type="math/tex">X</script> (one example of
such a connection is of course the Levi-Civita connection of a metric,
but we will get to this later).</p>
<p>Given the connection <script type="math/tex">\cd</script> and a diffeomorphism
<script type="math/tex">\varphi_{t},</script>
there is a new connection we can construct: the <em>pullback connection</em>,
<script type="math/tex">(\varphi_{t}^{*}\cd).</script>
We define it as follows:
\begin{align}
\label{eq:pullback-connection-defn}
(\varphi_{t}^{*}\cd)_{X} T \equiv \varphi_{t}^{*}
\left[
\cd_{d\varphi_{t}(X)}
\left(
\varphi_{t*} T
\right)
\right]
\,.
\end{align}
In words, this definition is: take tensor <script type="math/tex">T</script> and push it forward
along the map; take its derivative with your given connection <script type="math/tex">\cd</script>,
but in the direction given by the pushed-forward version of <script type="math/tex">X</script>; then
take the whole result and pull it back.</p>
<p>As we know, the space of connections is an affine space, and there are
connection coefficients
<script type="math/tex">C^{c}{}_{ab}</script>
which are the difference between two particular connections. A
natural question would be:
given <script type="math/tex">\cd</script> and
<script type="math/tex">\varphi_{t},</script>
what is the difference
<script type="math/tex">(\varphi_{t}^{*}\cd)-\cd?</script></p>
<h2 id="for-a-killing-vector-field">For a Killing vector field</h2>
<p>I will address the general case below, but first
specialize to the case when <script type="math/tex">\cd</script> is the Levi-Civita connection of
some metric <script type="math/tex">g</script>, and <script type="math/tex">\varphi_{t}</script> is an isometry of <script type="math/tex">g</script>, i.e. that
\begin{align}
\label{eq:g-isometry}
g = \varphi_{t} g
\,.
\end{align}
In this case, we see that
\begin{align}
\label{eq:pullback-conn-of-g-vanishes}
(\varphi_{t}^{*}\cd)_{X} g = 0 \quad \forall X\,.
\end{align}
This is a direct application of the definition of the pullback
connection in Eq. <script type="math/tex">\eqref{eq:pullback-connection-defn}</script> and the isometry
condition Eq. <script type="math/tex">\eqref{eq:g-isometry}.</script> But since the Levi-Civita
connection is unique, this means that
\begin{align}
\label{eq:isometry-conns-agree}
\varphi_{t}\text{ is an isometry of }g
\qquad\Longrightarrow\qquad
(\varphi_{t}^{*}\cd) = \cd
\,.
\end{align}</p>
<p>Since the two connections agree, we have the equality
\begin{align}
\cd_{X} T = \varphi_{-t}^{*}
\left[
\cd_{\varphi_{t}^{*}(X)}
\left(
\varphi_{t}^{*} T
\right)
\right]
\end{align}
for all <script type="math/tex">X,T</script> (the astute reader will have noticed that we have
flipped the sign of <script type="math/tex">t\to -t</script> in order to make later calculations
prettier). Now we will find the infinitesimal version of this
identity. Apply the inverse <script type="math/tex">\varphi_{t}^{*}</script> to both sides of this
equality, differentiate both sides with respect to <script type="math/tex">t</script>, and then
evaluate at <script type="math/tex">t=0</script>:
\begin{align}
\frac{d}{dt} \Big[ \varphi_{t}^{*} \cd_{X} T \Big]_{t=0}
&=
\frac{d}{dt} \Big[
\cd_{\varphi_{t}^{*}(X)} \left( \varphi_{t}^{*} T \right)
\Big]_{t=0}
\,, \\
\lie_{v} \left( \cd_{X} T \right)
&= (\cd_{X} \lie_{v} T) + \cd_{(\lie_{v}X)} T
\,.
\end{align}
This can be elucidated by expanding
<script type="math/tex">\cd_{X}</script>
in abstract index notation (still suppressing indices on <script type="math/tex">T</script>),
\begin{align}
\lie_{v} \left( X^{a}\cd_{a} T \right)
&= X^{a}(\cd_{a} \lie_{v} T) + (\lie_{v}X)^{a} \cd_{a} T
\,, \\
(\lie_{v} X)^{a} \cd_{a} T + X^{a} \lie_{v} \cd_{a} T
&= X^{a}(\cd_{a} \lie_{v} T) + (\lie_{v}X)^{a} \cd_{a} T
\,.
\end{align}
Now cancel the
<script type="math/tex">\lie_{v}X</script>
terms on both sides. Noting that <script type="math/tex">X^{a}</script>
is arbitrary, we have derived an identity
\begin{align}
\lie_{v}\cd_{a} T = \cd_{a}\lie_{v} T
\end{align}
when <script type="math/tex">\cd</script> is the Levi-Civita connection of <script type="math/tex">g</script> and <script type="math/tex">v</script> is a
Killing vector field.</p>
<p>Note: another way to say this is</p>
<div>
\begin{align}
[ \lie_v, \cd_a ] T = 0 \,.
\end{align}
</div>
<p>In other words, when <script type="math/tex">v</script> is a Killing vector field of the metric
<script type="math/tex">g</script>, <script type="math/tex">\lie_v</script> commutes with the Levi-Civita connection <script type="math/tex">\cd</script> of
<script type="math/tex">g</script>.</p>
<h2 id="general-connection-coefficients-for-varphitcd-cd">General connection coefficients for <script type="math/tex">(\varphi_{t}^{*}\cd)-\cd</script></h2>
<p>Let us further study the difference <script type="math/tex">(\varphi_{t}^{*}\cd)-\cd,</script> and we
will lift the restriction that <script type="math/tex">\varphi_{t}</script> is an isometry of <script type="math/tex">g.</script>
First, we need some general properties of the difference of these
connections. Much of this follows Sec. 3.1 of
Wald.<sup id="fnref:1"><a href="#fn:1" class="footnote">1</a></sup></p>
<p>All connections agree when acting on scalar functions, so we have</p>
<div>
\begin{align}
\label{eq:diff-agree-scalar}
(\varphi_{t}^{*}\cd)_{a}f-\cd_{a}f = 0
\end{align}
</div>
<p>for all scalar fields <script type="math/tex">f</script>. Next, examine their difference when acting
on the product of a scalar field <script type="math/tex">f</script> and a one-form field
<script type="math/tex">\omega_{b}</script>. Using the Leibniz rule, we find</p>
<div>
\begin{align}
\label{eq:diff-on-f-omega}
(\varphi_{t}^{*}\cd)_{a}(f\omega_{b})-\cd_{a}(f\omega_{b}) =
f \left[ (\varphi_{t}^{*}\cd)_{a}\omega_{b}-\cd_{a}\omega_{b} \right]
\,.
\end{align}
</div>
<p>This tells us that the difference in fact only depends on the value of
<script type="math/tex">\omega_{b}</script> at each point, and not on the derivative of <script type="math/tex">\omega_{b}</script>:
consider a point <script type="math/tex">p</script> where <script type="math/tex">f(p)=1</script> but the gradient of <script type="math/tex">f</script> is
arbitrarily large; still at that point,
<script type="math/tex">(\varphi_{t}^{*}\cd)_{a}(f\omega_{b})-\cd_{a}(f\omega_{b})</script> agrees
with <script type="math/tex">(\varphi_{t}^{*}\cd)_{a}\omega_{b}-\cd_{a}\omega_{b}</script>.
There is a more rigorous argument given in <sup id="fnref:1:1"><a href="#fn:1" class="footnote">1</a></sup>, but the
conclusion is the same: <script type="math/tex">(\varphi_{t}^{*}\cd)_{a}-\cd_{a}</script> is just a
linear transformation of its argument at each point on the manifold.
Therefore, there is a tensor field <script type="math/tex">C(t)^{c}{}_{ab}</script> (the connection
coefficients) such that</p>
<div>
\begin{align}
\label{eq:diff-def-of-C}
(\varphi_{t}^{*}\cd)_{a}\omega_{b}-\cd_{a}\omega_{b} =
C(t)^{c}{}_{ab} \omega_{c}
\,.
\end{align}
</div>
<p>This is extended by linearity to vectors and tensors in the usual way,
with <script type="math/tex">C(t)^{c}{}_{ab}</script> correcting each down index with a plus sign and
each up index with a minus sign. For example, when acting on the
metric, we have</p>
<div>
\begin{align}
\label{eq:diff-on-g}
(\varphi_{t}^{*}\cd)_{a}g_{bc}-\cd_{a}g_{bc} =
C(t)^{d}{}_{ab} g_{dc} + C(t)^{d}{}_{ac} g_{bd}
\,.
\end{align}
</div>
<p>The first property of <script type="math/tex">C(t)^{c}{}_{ab}</script> we can establish is that it is
symmetric in its lower two indices. To show this, let the one-form be
the gradient of a scalar, <script type="math/tex">\omega_{b}=\cd_{b}f =
(\varphi_{t}^{*}\cd)_{b}f</script>. Then we have</p>
<div>
\begin{align}
\label{eq:C-is-symm}
(\varphi_{t}^{*}\cd)_{a}(\varphi_{t}^{*}\cd)_{b} f
- \cd_{a} \cd_{b} f =
C(t)^{c}{}_{ab} \cd_{c} f
\,.
\end{align}
</div>
<p>Since <script type="math/tex">\cd_{a}</script> is (by assumption) torsion-free, then so is
<script type="math/tex">(\varphi_{t}^{*}\cd)_{a}</script>. Therefore, both terms on the left hand
side of Eq. \eqref{eq:C-is-symm} are symmetric, and so is their
difference. Thus <script type="math/tex">C(t)^{c}{}_{ab} = C(t)^{c}{}_{(ab)}</script> is symmetric
in its lower two indices.</p>
<p>Now to make progress, we will expand <script type="math/tex">C(t)</script> as a power series in <script type="math/tex">t</script>,</p>
<div>
\begin{align}
\label{eq:C-power-series-first-few}
C(t)^{c}{}_{ab} &= C^{(0)c}{}_{ab} + t C^{(1)c}{}_{ab} + \ldots \\
\label{eq:C-power-series}
C(t)^{c}{}_{ab} &= \sum_{k=0}^{\infty}
\frac{t^{k}}{k!}C^{(k)c}{}_{ab} \,, \\
C^{(k)c}{}_{ab} &\equiv
\frac{d^{k}}{dt^{k}} C(t)^{c}{}_{ab} \Big|_{t=0} \,.
\end{align}
</div>
<p>Clearly
<script type="math/tex">C^{(0)c}{}_{ab} = 0,</script>
since <script type="math/tex">\varphi_{0}</script>
is the identity map, so
<script type="math/tex">(\varphi_{0}^{*}\cd)=\cd.</script></p>
<p>Now order-by-order, the connection coefficients’ expansion
<script type="math/tex">C^{(k)c}{}_{ab}</script> can be computed by taking <script type="math/tex">k</script> derivatives of
Eq. \eqref{eq:diff-on-g} (with <script type="math/tex">X^{a}</script> contracted into the <script type="math/tex">a</script> slot).
We will perform the expansion for <script type="math/tex">k=1</script>:</p>
<div>
\begin{align}
\frac{d}{dt} \left[
(\varphi_{t}^{*}\cd)_{X}g_{bc}
\right] &=
\frac{d}{dt} \left[
X^{a}C(t){}_{cab} +
X^{a}C(t){}_{bac}
\right] \\
\frac{d}{dt} \left[
\varphi_{t}^{*} \left( \cd_{(\varphi_{-t}^{*}X)} \varphi_{-t}^{*} g_{bc}
\right) \right] &=
X^{a} \left( C^{(1)}_{cab} + C^{(1)}_{bac} \right)
\,.
\end{align}
</div>
<p>There are three terms on the left, one from each of the pullbacks.
These are</p>
<div>
\begin{align}
\lie_{v}( \cd_{X} g_{bc})
+ \cd_{(\lie_{-v}X)} g_{bc}
+ \cd_{X} \lie_{-v} g_{bc}
&=
X^{a} \left( C^{(1)}_{cab} + C^{(1)}_{bac} \right)
\\
- X^{a} \cd_{a} \lie_{v} g_{bc}
&=
X^{a} \left( C^{(1)}_{cab} + C^{(1)}_{bac} \right)
\\
\label{eq:cd-lie-g-is-C-plus-C}
- \cd_{a} \lie_{v} g_{bc}
&=
C^{(1)}_{cab} + C^{(1)}_{bac}
\,.
\end{align}
</div>
<p>Now we can do the following index gymnastics. Take
Eq. \eqref{eq:cd-lie-g-is-C-plus-C} with the given index order, on the
left hand side, <script type="math/tex">abc</script>; add to it the same expression, but with the
indices in the order <script type="math/tex">bac</script>; and then subtract from it the same
expression but with the indices in the order <script type="math/tex">cab</script>. Then using the
symmetry on the last two indices of <script type="math/tex">C</script>, we can solve for</p>
<div>
\begin{align}
\label{eq:C1-down-sol}
C^{(1)}_{cab} = \frac{-1}{2} \Big(
\cd_{a} \lie_{v} g_{bc} + \cd_{b} \lie_{v} g_{ac}
- \cd_{c} \lie_{v} g_{ab}
\Big)
\,.
\end{align}
</div>
<p>Note: Again if <script type="math/tex">v</script> is a Killing vector field of <script type="math/tex">g</script>, this
immediately vanishes. This says that to linear order in <script type="math/tex">t</script>,
<script type="math/tex">(\varphi_t^*\cd)</script> agrees with <script type="math/tex">\cd</script>.</p>
<h2 id="expansion-of-pullback-connection">Expansion of pullback connection</h2>
<p>Here we are going to present an explicit formula in terms of Lie
derivatives for the expansion of the pullback connection. I think
this is not completely rigorous, but it seems satisfactory to me, and
I checked it up to high order in Mathematica.</p>
<p>First, let us re-write the definition of the pullback connection
Eq. \eqref{eq:pullback-connection-defn} as</p>
<div>
\begin{align}
(\varphi_{t}^{*}\cd)_{X} T &{}\equiv
\varphi_{t}^{*}
\left[
\cd_{d\varphi_{t}(X)}
\left(
\varphi_{t*} T
\right)
\right] \\
&{}=
\varphi_{t}^{*}
\left[
(\varphi_{-t}^{*} X)^{a}
\cd_{a}
\left(
\varphi_{-t}^{*} T
\right)
\right]
\,.
\end{align}
</div>
<p>Here, if the left hand side is evaluated at point <script type="math/tex">p</script>, then on the
right hand side, the up/down indices <script type="math/tex">a</script> are in the spaces
<script type="math/tex">T_{\varphi(p)}\mathcal{M}</script> and <script type="math/tex">T_{\varphi(p)}^{*}\mathcal{M}</script>. Now
we are about to do something which a classical differential geometer
might find illegal, but it seems fine to me. Recall that the
pullback/pushforward commute with tensor product, so
<script type="math/tex">\varphi(A\otimes B) = \varphi(A)\otimes\varphi(B)</script>. We apply this to
the right hand side, yielding</p>
<div>
\begin{align}
(\varphi_{t}^{*}\cd)_{X} T &{}=
X^{a}
\varphi_{t}^{*}
\left[
\cd_{a}
\left(
\varphi_{-t}^{*} T
\right)
\right]
\,.
\end{align}
</div>
<p>There is no pullback/pushforward acting on <script type="math/tex">X^{a}</script> on the RHS because
the pullback and pushforward have inverted each other. Now this
notation looks quite bad, because the up index on <script type="math/tex">X^{a}</script> is in
<script type="math/tex">T_{p}\mathcal{M}</script>. Inside the square brackets of the pullback, the
down index on <script type="math/tex">\cd_{a}</script> is very much in the space
<script type="math/tex">T_{\varphi(p)}^{*}\mathcal{M}</script>. However, this index is then pulled
back to live in <script type="math/tex">T_{p}^{*}\mathcal{M}</script>, so it may be correctly
contracted with <script type="math/tex">X^{a}</script>. I’m not sure if this is just a shortcoming
of the abstract index notation, or if there is a deeper issue to
understand here.</p>
<p>We continue being cavalier physicist and replace <script type="math/tex">\varphi_{t}^{*}</script>
with <script type="math/tex">\exp[t\lie_{v}]</script>. Therefore, we have an expression for the
pullback connection as</p>
<div>
\begin{align}
\label{eq:pullback-conn-as-exp-cd-exp}
(\varphi_{t}^{*}\cd)_{a} T = \exp[t\lie_{v}] \cd_{a}\exp[-t\lie_{v}] T
\,.
\end{align}
</div>
<p>Through a standard formula in the theory of Lie algebras, we can
formally re-express this as</p>
<div>
\begin{align}
(\varphi_{t}^{*}\cd)_{a} T ={}& (e^{t[\lie_{v},-]} \cd_{a}) T
= (e^{t \ad_{\lie_{v}} } \cd_{a}) T
\\
(\varphi_{t}^{*}\cd)_{a} T
={}& \sum_{k=0}^{\infty} \frac{t^{k}}{k!}
\left((\ad_{\lie_{v}})^{k} \cd_{a}\right)
T \,,
\end{align}
</div>
<p>where <script type="math/tex">[-,-]</script> is the commutator, <script type="math/tex">\ad_{\lie_{v}}\cd_{a} =
[\lie_{v},\cd_{a}]</script> is the adjoint action of <script type="math/tex">\lie_{v}</script> on <script type="math/tex">\cd_{a}</script>,
and</p>
<div>
\begin{align}
\label{eq:ad-k-cd}
(\ad_{\lie_{v}})^{k} \cd_{c} =
\underbrace{[\lie_{v},[\lie_{v},\cdots [\lie_{v}}_{
k\text{ Lie derivative commutators}}
, \cd_{c} ]]]
\,.
\end{align}
</div>
<p>Through explicit calculation in the <a href="http://www.xact.es/">xTensor</a>
package for
Mathematica, I have confirmed that this expression agrees
with the geometric definition up to 12th order in <script type="math/tex">t</script> (this
calculation takes only half a second for 6th order, but scales very
badly with order because of two pushforwards and one pullback; and
thus 12th order takes almost 7 minutes on my laptop).</p>
<p>This calculation allows us to find an explicit expression for
<script type="math/tex">C^{(k)}_{cab}</script> as defined in Eq. \eqref{eq:C-power-series}. We
follow the same approach as above, by acting with
<script type="math/tex">(\varphi_{t}^{*}\cd)_{a}-\cd_{a}</script> on <script type="math/tex">g_{bc}</script>. Now each side is expanded
in a power series and powers of <script type="math/tex">t^{k}</script> are equated. Again we play
the index gymnastics game and take the combination of equations with
indices in the orders <script type="math/tex">(abc)+(bac)-(cab)</script>. This allows us to find</p>
<div>
\begin{align}
\label{eq:C-k-explicit}
2 C^{(k)}_{cab} =
\left((\ad_{\lie_{v}})^{k} \cd_{a}\right) g_{bc} +
\left((\ad_{\lie_{v}})^{k} \cd_{b}\right) g_{ac} -
\left((\ad_{\lie_{v}})^{k} \cd_{c}\right) g_{ab}
\,.
\end{align}
</div>
<p>Note: Again inspect the case when <script type="math/tex">v</script> is a Killing vector field of
<script type="math/tex">g</script>. Since <script type="math/tex">[\lie_v, \cd_a] = 0</script>, we recover the fact that
<script type="math/tex">(\varphi_t^*\cd)</script> and <script type="math/tex">\cd</script> agree to all orders of <script type="math/tex">t</script>.</p>
<h1 id="references">References</h1>
<div class="footnotes">
<ol>
<li id="fn:1">
<p><a href="http://press.uchicago.edu/ucp/books/book/chicago/G/bo5952261.html">Wald’s General Relativity</a> <a href="#fnref:1" class="reversefootnote">↩</a> <a href="#fnref:1:1" class="reversefootnote">↩<sup>2</sup></a></p>
</li>
</ol>
</div>Leo C. Steinleostein@tapir.caltech.eduIn an effort to keep myself organized, I decided I should type up some notes I have laying around.EHT16 Talk Slides2016-11-29T16:00:00-08:002016-11-29T16:00:00-08:00https://duetosymmetry.com/talks/EHT16-talk-slides<p>The
<a href="http://www.eventhorizontelescope.org/">Event horizon telescope (EHT)</a>
is a project aiming to image the event horizon of the supermassive
black hole at the center of our galaxy using radio waves (and a lot of
other cool science!). Their
collaboration
<a href="https://www.cfa.harvard.edu/sma/EHT2016/">held a workshop</a> this week
and kindly invited me to give an overview of past, present, and future
tests of general relativity. It was great to come back and visit
Cambridge and hear about all the progress they’re making.</p>
<p>Here are <a href="https://duetosymmetry.com/files/present-future-tests-GR.pdf">my slides</a> and
a movies (right click and save
<a href="https://duetosymmetry.com/files/zooming.mp4">[1]</a>
<a href="https://duetosymmetry.com/files/theta3d.mp4">[2]</a>)
from EHT16.
Enjoy!</p>
<p><strong>Title</strong>: Present and future tests of general relativity</p>
<p><strong>Abstract</strong>: We’re now a century after the conception of general
relativity. With technology’s steady advance, observations are
finally beginning to access the most extreme environments predicted
by GR: the event horizons of black holes, both stellar mass and
supermassive. As empiricists, we have the obligation to test GR in
this new regime. I will review some present approaches to black-hole
based tests of general relativity, comment on their shortcomings,
and motivate future studies which will inform the next generation of
GR tests.</p>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/zooming.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/zooming.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/theta3d.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/theta3d.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>Leo C. Steinleostein@tapir.caltech.eduMy talk slides/movies from the EHT16 conference in Cambrige, MAFF2016 Talk Slides2016-09-02T17:00:00-07:002016-09-02T17:00:00-07:00https://duetosymmetry.com/talks/FF2016-talk-slides<p>Over the past three days, <a href="http://ciera.northwestern.edu/">CIERA</a>
hosted the
<a href="http://sites.northwestern.edu/ff2016/">Fellows at the Frontier 2016</a>
conference, aka FF2016 or
<a href="https://twitter.com/hashtag/FF16CIERA">#FF16CIERA</a>. This conference
was really broad in scope, and all the speakers gave really excellent
talks.</p>
<p>Here are <a href="https://duetosymmetry.com/files/BBH-mergers-beyond-gr.pdf">my slides</a> and
a movies (right click and save
<a href="https://duetosymmetry.com/files/zooming.mp4">[1]</a>
<a href="https://duetosymmetry.com/files/theta3d.mp4">[2]</a>)
from FF2016. This talk was reporting on progress in simulating binary
black hole mergers in theories beyond general relativity.
Enjoy!</p>
<p><strong>Title</strong>: Black hole mergers: beyond general relativity</p>
<p><strong>Abstract</strong>: One hundred years after the birth of general relativity,
advanced LIGO has finally directly detected gravitational waves. The
source: two black holes merging into one. Advanced LIGO will soon
provide the opportunity to test GR, using gravitational waves, in the
dynamical strong-field regime—a setting where GR has not yet been
tested. GR has passed all weak-field tests with flying colors. Yet it
should eventually break down, so we must look to the strong-field. To
perform strong-field tests of GR, we need waveform models from
theories <em>beyond</em> GR. To date there are no numerical simulations of
black hole mergers in theories which differ from GR. The main
obstacle is the mathematical one of “well-posedness.” I will explain
how to overcome this obstacle, and demonstrate the success of this
approach by presenting the first numerical simulations of black hole
mergers in a theory beyond GR.</p>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/zooming.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/zooming.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/theta3d.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/theta3d.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>
<p>The conference also had the highest fraction of active tweeps of any
astro/physics conference I’ve attended. You can find a list of the
<a href="https://twitter.com/duetosymmetry/lists/ff16ciera/members">FF2016 tweeps here</a>,
and see
<a href="https://twitter.com/hashtag/FF16CIERA">what they tweeted about during the conference here</a>.</p>Leo C. Steinleostein@tapir.caltech.eduMy talk slides/movies from the FF2016 conference at NorthwesternGR21 Talk Slides2016-07-11T17:00:00-07:002016-07-11T17:00:00-07:00https://duetosymmetry.com/talks/gr21-talk-slides<p>Here are <a href="https://duetosymmetry.com/files/BBH-mergers-in-DCS.pdf">my slides</a> and
a movies (right click and save
<a href="https://duetosymmetry.com/files/zooming.mp4">[1]</a>
<a href="https://duetosymmetry.com/files/theta3d.mp4">[2]</a>)
from the GR21 conference at Columbia University in NYC. This talk
was reporting on progress in simulating binary black hole mergers in
dynamical Chern-Simons gravity,
working in collaboration with Maria Okounkova.
Enjoy!</p>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/zooming.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/zooming.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>
<video controls="" style="height:360px;">
<source src="https://duetosymmetry.com/files/theta3d.webm" type="video/webm" />
<source src="https://duetosymmetry.com/files/theta3d.mp4" type="video/mp4" />
Your browser does not support the <code>video</code> element.
</video>Leo C. Steinleostein@tapir.caltech.eduMy talk slides/movies from the GR21 conference in NYC