Curvature computations with moving frames
Fred Akalin
Overview
Given a metric on a manifold, it is often necessary to compute its curvature. However, the usual method of first computing the Christoffel symbols and then using those to compute the Riemann curvature tensor is tedious and errorprone.
Fortunately, there’s another way to compute the curvature that’s often quicker and easier: Cartan’s method of moving frames, or the repère mobile. Unfortunately, explanations of this method aren’t very clear, so here I’m going to provide my own, based on working through a few examples.
I’m going to assume that you know enough Riemannian geometry to be able to compute curvature the usual way, and also that you’re familiar with the basics of differential forms and exterior differentiation. Some familiarity with semiRiemannian metrics will also be helpful, since a lot of motivating examples come from general relativity, which uses Lorentzian metrics.
The coordinate frame method
First, a quick overview of the usual method using coordinate frames. Let \(g = g_{ij} \, dx^i ⊗ dx^j\) be a given semiRiemannian metric expressed in terms of the coordinates \((x^1, \dotsc, x^n)\). We first compute the Christoffel symbols using the formula \[ \CS{k}{ij} = \frac{1}{2} (g^*)^{kl} \left(∂_j g_{il} + ∂_i g_{lj}  ∂_l g_{ij}\right)\text{,} \] where \((g^*)^{ij}\) are the components of the dual metric \(g^*\), which can be computed by taking components of the inverse of the matrix \(G[i, j] = g_{ij}\) formed from the metric components, i.e. \((g^*)^{ij} = G^{1}[i, j]\). Recall that the Christoffel symbols are symmetric in the lower indices, so if our manifold is \(n\)dimensional, then in general we have \(n^2(n+1)/2\) independent Christoffel symbols.
Note that we use the Einstein summation convention; in the absence of a summation sign, index variables that appear once as a superscript and once as a subscript are implicitly summed over.
A useful special case is when the metric \(g\) is diagonal,^{[1]} i.e. \(g = g_{ii} \, dx^i ⊗ dx^i\). Then \((g^*)^{ii} = 1/g_{ii}\) and \[ \begin{alignedat}{2} \CS{k}{ij} &= 0 \qquad & \CS{k}{ik} &= \frac{∂_i g_{kk}}{2 g_{kk}} \\ \CS{k}{ii} &= \frac{∂_k g_{ii}}{2 g_{kk}} \qquad & \CS{i}{ii} &= \frac{∂_i g_{ii}}{2 g_{ii}}\text{,} \end{alignedat} \] where \(i\), \(j\), and \(k\) are distinct. Therefore in this case we have \(n^2\) nonzero independent Christoffel symbols.
The Christoffel symbols are important in their own right, but we need them only to compute curvature. We can compute the components of the Riemann curvature tensor using the formula \[ \Riem{k}{lij} = ∂_i \CS{k}{jl}  ∂_j \CS{k}{il} + \CS{k}{im} \CS{m}{jl}  \CS{k}{jm} \CS{m}{il}\text{.} \] We can then compute the Ricci curvature tensor and the scalar curvature: \[ \Ric{ij} = \Riem{k}{ikj} \qquad S = (g^*)^{ij} \Ric{ij}\text{.} \]
For applications, we’re most interested in the Ricci curvature tensor, so we usually just want to calculate that directly: \[ \Ric{ij} = ∂_k \CS{k}{ji}  ∂_j \CS{k}{ki} + \CS{k}{km} \CS{m}{ji}  \CS{k}{jm} \CS{m}{ki}\text{.} \]
Cheatsheet: coordinate frame method
 Compute the Christoffel symbols. If the metric \(g\) is diagonal, use \[ \begin{alignedat}{2} \CS{k}{ij} &= 0 \qquad & \CS{k}{ik} &= \frac{∂_i g_{kk}}{2 g_{kk}} \\ \CS{k}{ii} &= \frac{∂_k g_{ii}}{2 g_{kk}} \qquad & \CS{i}{ii} &= \frac{∂_i g_{ii}}{2 g_{ii}}\text{.} \end{alignedat} \] Otherwise, compute the dual metric components \((g^*)^{ij} = G^{1}[i, j]\) where \(G[i, j] = g_{ij}\) and use \[ \CS{k}{ij} = \frac{1}{2} (g^*)^{kl} \left(∂_j g_{il} + ∂_i g_{lj}  ∂_l g_{ij}\right)\text{.} \]
 Compute the Ricci curvature tensor: \[ \Ric{ij} = ∂_k \CS{k}{ji}  ∂_j \CS{k}{ki} + \CS{k}{km} \CS{m}{ji}  \CS{k}{jm} \CS{m}{ki}\text{.} \]
The Lagrangian method
An alternate method for computing the Christoffel symbols is to write down the Lagrangian corresponding to the metric: \[ L(x^1, \dotsc, x^n, v^1, \dotsc, v^n) = g_{ij}(x^1, \dotsc, x^n) \, v^i v^j \] and then to compute the EulerLagrange equations for a path \(γ(t) = \big(x^1(t), \dotsc, x^n(t)\big)\): \[ \frac{d}{dt} \left( \frac{∂ L}{∂ v^k}(γ(t), \dot{γ}(t)) \right)  \frac{∂ L}{∂ x^k}(γ(t), \dot{γ}(t)) = 0 \] to get the geodesic equations. Then we can compare these equations to the geodesic equations expressed in terms of the Christoffel symbols \[ \ddot{γ}^k + \CS{k}{ij} \dot{γ}^i \dot{γ}^j = 0\text{,} \] and then we can read off the Christoffel symbols from the coefficients of the \(\dot{γ}^i \dot{γ}^j\) terms.
I’m not convinced that this method saves that much work, especially when the metric is diagonal, but it’s at least a clearer way to organize the computations for the Christoffel symbols.
Cheatsheet: Lagrangian method
 With the Lagrangian \[ L = g_{ij} \, v^i v^j\text{,} \] compute the EulerLagrange equations \[ \frac{d}{dt} \left( \frac{∂ L}{∂ v^k}(γ(t), \dot{γ}(t)) \right)  \frac{∂ L}{∂ x^k}(γ(t), \dot{γ}(t)) = 0\text{.} \]
 Compare the EulerLagrange equations to the geodesic equation \[ \ddot{γ}^k + \CS{k}{ij} \dot{γ}^i \dot{γ}^j = 0 \] and read off the Christoffel symbols \(\CS{k}{ij}\).
 Compute the Ricci curvature tensor: \[ \Ric{ij} = ∂_k \CS{k}{ji}  ∂_j \CS{k}{ki} + \CS{k}{km} \CS{m}{ji}  \CS{k}{jm} \CS{m}{ki}\text{.} \]
The moving frame method
Now, finally, I can explain the method of moving frames. Don’t worry too much about understanding this the first time through; I suggest skimming this section and then following along with the examples below, referring back as necessary.
For now, let’s assume that we have not a semiRiemannian, but a Riemannian metric \(g = g_{ij} \, dx^i ⊗ dx^j\) expressed in terms of the coordinates \((x^1, \dotsc, x^n)\). We want to find basis oneforms \((θ^1, \dotsc, θ^n)\) such that \[ g = ∑_i θ^i ⊗ θ^i\text{.} \] If the metric is diagonal, this is easy (suspending the summation convention): \[ θ^i = \sqrt{g_{ii}} \, dx^i\text{.} \] If instead the metric is not diagonal, we may still be able to factor it into a “sum of squares” form by inspection. Otherwise, an equivalent definition of the \(θ^i\) is that \[ g^*(θ^i, θ^j) = δ^i_j\text{,} \] i.e. the basis oneforms \(θ^i\) comprise an orthonormal dual frame. We can then use a GramSchmidtlike process on the \(dx^i\) or some ad hoc method to compute the basis oneforms.
It is also convenient to express the coordinate forms in terms of the basis oneforms, which is again simple if the metric is diagonal: \[ dx^i = \frac{1}{\sqrt{g_{ii}}} \, θ^i\text{.} \] Otherwise, one would need to invert the matrix expressing the \(θ^i\) in terms of the \(dx^i\).
There’s an explicit general formula for \(\cnf{i}{j}\) in terms of the basis oneforms,^{[2]} but it’s often easier to compare the expressions for \(dθ^i\) to the form of the first structure equation, guess what the connection forms are, taking advantage of their skew symmetry, and check that the first structure equation holds. In fact, if the metric is diagonal, the expressions for \(dθ^i\) are nice enough that you can immediately read off the connection forms. This “guess and check” method works because the connection forms are guaranteeed to exist, and furthermore are guaranteed to be unique, so any guessed list of \(\cnf{i}{j}\) that satisfies the first structure equation must be the connection forms.
Note that skew symmetry immediately implies that (suspending the Einstein summation convention) \[ \cnf{i}{i} = 0\text{.} \] Therefore, we have \(n(n1)/2\) independent connection forms.
There is a formula for the connection forms when \(g\) is diagonal, which is more useful for deducing properties of diagonal metrics than it is for doing calculations. Suspending the summation convention, \[ \begin{aligned} \cnf{i}{j} &= \frac{∂_j g_{ii}}{2 g_{ii} \sqrt{g_{jj}}} \, θ^i  \frac{∂_i g_{jj}}{2 g_{jj} \sqrt{g_{ii}}} \, θ^j \\ &= \frac{∂_j g_{ii}}{2 \sqrt{g_{ii} g_{jj}}} \, dx^i  \frac{∂_i g_{jj}}{2 \sqrt{g_{ii} g_{jj}}} \, dx^j\text{.} \end{aligned} \] This formula implies that a diagonal metric has connection forms with at most two components each, as opposed to \(n\) components in general. Furthermore, if a diagonal metric depends only on a single coordinate \(x^r\), the only possible nonzero connection forms up to skew symmetry are \(\cnf{i}{r}\), which are proportional to \(θ^i\). If instead a diagonal metric depends on two coordinates \(x^r\) and \(x^s\), then the only possible nonzero connection forms up to skew symmetry are \(\cnf{i}{r}\), \(\cnf{i}{s}\), or \(\cnf{r}{s}\). The first two cases are proportional to \(θ^i\), and the last case has at most two components: one proportional to \(θ^r\) and another proportional to \(θ^s\).
From the properties discussed above, if a diagonal metric depends only on a single coordinate, then each curvature form \(\crf{i}{j}\) is proportional to \(θ^i ∧ θ^j\). If instead a diagonal metric depends on two coordinates \(x^r\) and \(x^s\), then each curvature form \(\crf{i}{r}\) or \(\crf{i}{s}\), up to skew symmetry, has at most two components: one proportional to \(θ^i ∧ θ^r\) and another proportional to \(θ^i ∧ θ^s\), and all other curvature forms \(\crf{i}{j}\) are proportional to \(θ^i ∧ θ^j\).
At this point we’re done, since the Riemann curvature tensor with respect to the orthonormal frame \((E_1, \dotsc, E_n)\) dual to \((θ^1, \dotsc, θ^n)\) is \[ \Riem{l}{kij} = \crf{l}{k}(E_i, E_j) \] and the Ricci curvature tensor is \[ \Ric{ij} = \crf{k}{i}(E_k, E_j)\text{.} \] Note that it’s not necessary to explicitly calculate \(E_i\); it’s enough to use the definition \[ θ^i(E_j) = δ^i_j\text{,} \] and the definition of the wedge product to derive the relations \[ (θ^i ∧ θ^j)(E_k, E_l) = \begin{cases} +1 & k = i ≠ j = l \\ 1 & l = i ≠ j = k \\ 0 & \text{otherwise,} \end{cases} \] which can then be used to compute the curvature tensor components.
From the properties discussed above, if a diagonal metric depends only on a single coordinate, then \(\crf{i}{j}\) is proportional to \(θ^i ∧ θ^j\), which implies that \(\Ric{}\) is also diagonal. Furthermore, if the metric is diagonal and depends on two coordinates \(x^k\) and \(x^l\), then the only possible offdiagonal component is \(\Ric{kl}\).^{[3]}
Cheatsheet: The moving frame method for Riemannian metrics
 Find an orthonormal dual frame, i.e. basis oneforms \((θ^1, \dotsc, θ^n)\) such that \[ g = ∑_i θ^i ⊗ θ^i\text{.} \] If the metric is diagonal, then (suspending the summation convention) \[ θ^i = \sqrt{g_{ii}} \, dx^i\text{.} \]
 Use the first structure equation \[ dθ^i = \cnf{i}{j} ∧ θ^j \] and the skew symmetry relations \[ \cnf{i}{j} = \cnf{j}{i} \] to deduce the connection forms \(\cnf{i}{j}\).
 Compute the curvature forms using the second structure equation \[ \crf{i}{j} = d\cnf{i}{j} + \cnf{i}{k} ∧ \cnf{k}{j} \] and the skew symmetry relations \[ \crf{i}{j} = \crf{j}{i}\text{.} \] Note that it’s easiest to compute \(d\cnf{i}{j}\) when \(\cnf{i}{j}\) is expressed in terms of the \(dx^i\), since \(d(dx^i) = 0\)
 Compute the components of the Ricci curvature tensor via \[ \Ric{ij} = \crf{k}{i}(E_k, E_j) \] and the relations \[ (θ^i ∧ θ^j)(E_k, E_l) = \begin{cases} +1 & k = i ≠ j = l \\ 1 & l = i ≠ j = k \\ 0 & \text{otherwise.} \end{cases} \]
Comparing the methods
As we saw above, one advantage of the moving frame method is that, in the worst case, one need only compute \(n(n1)/2\) independent connection forms, each with at most \(n\) components, rather than \(n^2(n+1)/2\) independent Christoffel symbols—a saving of \(n^2\) “component calculations”. Even in the simplest case, when the metric is diagonal, you still need to compute \(n^2\) possibly nonzero independent Christoffel symbols, as opposed to \(n(n  1)/2\) independent connection forms, each with at most two components—still a saving of \(n\) “component calculations”.
Also, when computing a curvature form, one need only compute a single exterior derivative of a connection form and \(n  2\) wedge products of connection forms. This turns out to be less tedious than the corresponding calculation using coordinate methods of \(\Riem{k}{lij}\) for fixed \(k\) and \(l\) such that \(k ≠ l\).
Furthermore, the orthonormality of the dual frame tends to cause symmetries to appear earlier in the calculation, leading to less wasted work. This is advantageous when you know the answer you’re looking for, and it’s particularly simple, e.g. if you expect the Ricci curvature to be zero, because calculations becoming unduly complicated becomes a sign of an undetected mistake. With coordinate methods, even if calculations become complicated, you can’t rule out terms cancelling if you continue, so errors become apparent only later.
On the other hand, the moving frame method requires a certain amount of cleverness, first in coming up with the oneforms \(θ^i\) if the metric isn’t diagonal, and second in deducing the connection forms \(\cnf{i}{j}\). The coordinate methods require less thought, and are more “plug and chug”. In fact, once we examine the semiRiemannian case later, we’ll see that the coordinate methods remain unchanged, yet the moving frame method becomes more complicated.
Example 1: Orthogonal coordinates on 2D surfaces
Let \(g\) be a Riemannian metric on a 2D manifold. The method of moving frames makes calculating curvature particularly easy, since there is exactly one connection form and one curvature form. For example, consider the special case when the metric is diagonal, i.e. with line element \[ ds^2 = E \, du^2 + G \, dv^2\text{.} \]

Orthonormal dual frame
We can then read off an orthonormal dual frame: \[ ds^2 = {\underbrace{(\sqrt{E} \, du)}_{θ^1}}^2 + {\underbrace{(\sqrt{G} \, dv)}_{θ^2}}^2\text{,} \] i.e. \[ θ^1 = \sqrt{E} \, du \qquad θ^2 = \sqrt{G} \, dv\text{,} \] and express the coordinate forms in terms of it: \[ du = \frac{1}{\sqrt{E}} \, θ^1 \qquad dv = \frac{1}{\sqrt{G}} \, θ^2\text{.} \]

Connection forms
The derivatives of the basis oneforms are \[ \begin{aligned} dθ^1 &= \frac{∂_v E}{2 \sqrt{E}} \, dv ∧ du = \frac{∂_v E}{2 E \sqrt{G}} \, θ^2 ∧ θ^1 \\ dθ^2 &= \frac{∂_u G}{2 \sqrt{G}} \, du ∧ dv = \frac{∂_u G}{2 G \sqrt{E}} \, θ^1 ∧ θ^2 \end{aligned} \] and the first structure equations are \[ \begin{aligned} dθ^1 &= \cnf{1}{2} ∧ θ^2 \\ dθ^2 &= \cnf{2}{1} ∧ θ^1 = \cnf{1}{2} ∧ θ^1\text{.} \end{aligned} \] Rewriting the derivative equations to match the first structure equations, \[ \begin{aligned} dθ^1 &= \overbrace{\left(\frac{∂_v E}{2 E \sqrt{G}} \, θ^1\right)}^{\text{one term of $\cnf{1}{2}$}} ∧ θ^2 \\ dθ^2 &= \underbrace{\left(\frac{∂_u G}{2 G \sqrt{E}} \, θ^2\right)}_{\text{another term of $\cnf{1}{2}$}} ∧ θ^1\text{,} \end{aligned} \] we can guess that \[ \cnf{1}{2} = \frac{∂_v E}{2 E \sqrt{G}} \, θ^1  \frac{∂_u G}{2 G \sqrt{E}} \, θ^2\text{.} \] This guess works, since \[ \begin{aligned} \cnf{1}{2} ∧ θ^2 &= \left( \frac{∂_v E}{2 E \sqrt{G}} \, θ^1  \frac{∂_u G}{2 G \sqrt{E}} \, θ^2 \right) ∧ θ^2 \\ &= \frac{∂_v E}{2 E \sqrt{G}} \, θ^1 ∧ θ^2 + \underbrace{\cancel{\frac{∂_u G}{2 G \sqrt{E}} \, θ^2 ∧ θ^2}}_{θ^2 ∧ θ^2 = 0} \\ &= dθ^1 \end{aligned} \] and \[ \begin{aligned} \cnf{1}{2} ∧ θ^1 &= \left( \frac{∂_v E}{2 E \sqrt{G}} \, θ^1  \frac{∂_u G}{2 G \sqrt{E}} \, θ^2 \right) ∧ θ^1 \\ &= \underbrace{\cancel{\frac{∂_v E}{2 E \sqrt{G}} \, θ^1 ∧ θ^1}}_{θ^1 ∧ θ^1 = 0}  \frac{∂_u G}{2 G \sqrt{E}} \, θ^2 ∧ θ^1 \\ &= dθ^2\text{,} \end{aligned} \] using the fact that \(θ^1 ∧ θ^1 = θ^2 ∧ θ^2 = 0\). Therefore, by uniqueness of connection forms, this is the connection form. Then, expressing \(\cnf{1}{2}\) in terms of both the basis oneforms and the coordinate forms, \[ \cnf{1}{2} = \frac{∂_v E}{2 E \sqrt{G}} \, θ^1  \frac{∂_u G}{2 G \sqrt{E}} \, θ^2 = \frac{∂_v E}{2 \sqrt{EG}} \, du  \frac{∂_u G}{2 \sqrt{EG}} \, dv\text{.} \] (By a very similar method, one can derive the formula stated previously for the \(\cnf{i}{j}\) of a diagonal metric.)

Curvature forms
Since we only have the single connection form \(\cnf{1}{2}\), there are no nonzero \(\cnf{i}{k} ∧ \cnf{k}{j}\) terms, since \(i\), \(j\), and \(k\) would all have to be distinct. Using the expression for \(\cnf{1}{2}\) in terms of the coordinate forms \(du\) and \(dv\), and that \(d(du) = d(dv) = 0\), the single curvature form is: \[ \begin{aligned} \crf{1}{2} = d\cnf{1}{2} &= \pd{}{v} \left( \frac{∂_v E}{2 \sqrt{EG}} \right) dv ∧ du  \pd{}{u} \left( \frac{∂_u G}{2 \sqrt{EG}} \right) du ∧ dv \\ &\begin{alignedat}{2} &= \, & \frac{1}{2} \left( \pd{}{u} \left( \frac{∂_u G}{\sqrt{EG}} \right) + \pd{}{v} \left( \frac{∂_v E}{\sqrt{EG}} \right) \right) & \, du ∧ dv \\ &= \, & \frac{1}{2 \sqrt{EG}} \left( \pd{}{u} \left( \frac{∂_u G}{\sqrt{EG}} \right) + \pd{}{v} \left( \frac{∂_v E}{\sqrt{EG}} \right) \right) & \, θ^1 ∧ θ^2\text{.} \end{alignedat} \end{aligned} \]

Gaussian curvature
Therefore, we get the classical result that the Gaussian curvature \(K\), which is equal to the single independent component of the Riemann curvature tensor (up to sign), is \[ \begin{aligned} K &= \Riem{1}{212} = \crf{1}{2}(E_1, E_2) \\ &= \frac{1}{2 \sqrt{EG}} \left( \pd{}{u} \left( \frac{∂_u G}{\sqrt{EG}} \right) + \pd{}{v} \left( \frac{∂_v E}{\sqrt{EG}} \right) \right) \, (θ^1 ∧ θ^2)(E_1, E_2) \\ &= \frac{1}{2 \sqrt{EG}} \left( \pd{}{u} \left( \frac{∂_u G}{\sqrt{EG}} \right) + \pd{}{v} \left( \frac{∂_v E}{\sqrt{EG}} \right) \right)\text{.} \end{aligned} \]
The semiRiemannian case
As we alluded to above, in the semiRiemannian case, the coordinate methods remain unchanged, but the moving frame method gets more complicated. The equation that the oneforms must satisfy becomes \[ g = ∑_i ε_i \, θ^i ⊗ θ^i\text{,} \] where each \(ε_i\) is \(±1\) throughout the whole chart domain.^{[4]} For example, in the Riemannian case, we let all \(ε_i = 1\), and in the Lorentzian case we let \(ε_0 = 1\) and all other \(ε_i = +1\). (The entire list \((ε_i)\) is called the signature of the metric.)
If the metric is diagonal, then each \(g_{ii}\) must be nonzero throughout the whole chart domain, so \(ε_i = \sgn(g_{ii})\) and (suspending the summation convention) \[ θ^i = ε_i \sqrt{\lvert g_{ii} \rvert} \, dx^i\text{.} \]
The equivalent definition of the \(θ^i\) becomes \[ g^*(θ^i, θ^j) = ε_i δ^i_j\text{,} \] where each \(ε_i\) is \(±1\) throughout the whole chart domain. Furthermore, the GramSchmidt process becomes harder to apply; you’ll need to find a nondegenerate basis first; see this Math StackExchange question for details.
The formula for the connection forms of a diagonal metric becomes (suspending the summation convention) \[ \begin{aligned} \cnf{i}{j} &= \frac{∂_j g_{ii}}{2 g_{ii} \sqrt{g_{jj}}} \, θ^i  ε_i ε_j \frac{∂_i g_{jj}}{2 g_{jj} \sqrt{g_{ii}}} \, θ^j \\ &= \frac{∂_j g_{ii}}{2 \sqrt{g_{ii} g_{jj}}} \, dx^i  ε_i ε_j \frac{∂_i g_{jj}}{2 \sqrt{g_{ii} g_{jj}}} \, dx^j\text{.} \end{aligned} \] However, none of the deduced properties of diagonal metrics depending on one or two coordinates change.
Finally, note that the relations \[ (θ^i ∧ θ^j)(E_k, E_l) = \begin{cases} +1 & k = i ≠ j = l \\ 1 & l = i ≠ j = k \\ 0 & \text{otherwise.} \end{cases} \] still hold.
As you can tell, the moving frame method forces you to keep careful track of signs, which you may count as a disadvantage.
Cheatsheet: The moving frame method for semiRiemannian metrics
 Find an orthonormal dual frame, i.e. basis oneforms \((θ^1, \dotsc, θ^n)\) such that \[ g = ∑_i ε_i \, θ^i ⊗ θ^i\text{,} \] where each \(ε_i\) is \(±1\) throughout the whole chart domain. If the metric is diagonal, then (suspending the summation convention) \(ε_i = \sgn(g_{ii})\), and \[ θ^i = ε_i \sqrt{\lvert g_{ii} \rvert} \, dx^i\text{.} \]
 Use the first structure equation \[ dθ^i = \cnf{i}{j} ∧ θ^j \] and the semiskew symmetry relations (suspending the summation convention) \[ \cnf{i}{j} = ε_i ε_j \cnf{j}{i} \] to deduce the connection forms \(\cnf{i}{j}\).
 Compute the curvature forms using the second structure equation \[ \crf{i}{j} = d\cnf{i}{j} + \cnf{i}{k} ∧ \cnf{k}{j} \] and the semiskew symmetry relations (suspending the summation convention) \[ \crf{i}{j} = ε_i ε_j \crf{j}{i}\text{.} \] Note that it’s easiest to compute \(d\cnf{i}{j}\) when \(\cnf{i}{j}\) is expressed in terms of the \(dx^i\), since \(d(dx^i) = 0\)
 Compute the components of the Ricci curvature tensor via \[ \Ric{ij} = \crf{k}{i}(E_k, E_j) \] and the relations \[ (θ^i ∧ θ^j)(E_k, E_l) = \begin{cases} +1 & k = i ≠ j = l \\ 1 & l = i ≠ j = k \\ 0 & \text{otherwise.} \end{cases} \]
Example 2: The Schwarzschild metric
Now we’re ready to tackle a more complicated metric. For our first semiRiemannian example, let \(g\) be the Schwarzschild metric, with line element \[ ds^2 = f(r) \, dt^2 + f(r)^{1} \, dr^2 + r^2 \, dΩ^2\text{,} \] where \[ f(r) = 1  \frac{r_S}{r}\text{,} \] \(r_S\) is the Schwarzschild radius, which is constant, and \[ dΩ^2 = dθ^2 + \sin^2 θ \, dφ^2 \] is the line element of the round metric \(\mathring{g}\) on the twosphere. We want to show that this metric is Ricciflat, i.e. has vanishing Ricci curvature.
We can skip some steps by taking advantage of the metric being diagonal and depending only on the two coordinates \(r\) and \(θ\), but in the interest of showing the general method, we’ll do everything the “hard way”, but we’ll doublecheck that our results using the properties of diagonal metrics we deduced earlier.

Orthonormal dual frame
Since the metric is diagonal, we can read off an orthonormal dual frame with its corresponding signature: \[ ds^2 = \; \underbrace{}_{ε_0} \; {\underbrace{\left(f(r)^{1/2} \, dt\right)}_{ϑ^0}}^2 \; \underbrace{+}_{ε_1} \; {\underbrace{\left(f(r)^{1/2} \, dr\right)}_{ϑ^1}}^2 \; \underbrace{+}_{ε_2} \; {\underbrace{(r \, dθ)}_{ϑ^2}}^2 \; \underbrace{+}_{ε_3} \; {\underbrace{(r \sin θ \, dφ)}_{ϑ^3}}^2\text{.} \] i.e. \[ \begin{alignedat}{2} ϑ^0 &= \, & f(r)^{1/2} & \, dt \\ ϑ^1 &= \, & f(r)^{1/2} & \, dr \\ ϑ^2 &= \, & r & \, dθ \\ ϑ^3 &= \, & r \sin θ & \, dφ \end{alignedat} \] with Lorentzian signature \(({} \; {+} \; {+} \; {+})\). We can then express the coordinate forms in terms of it: \[ \begin{alignedat}{2} dt &= \, & f(r)^{1/2} & \, ϑ^0 \\ dr &= \, & f(r)^{1/2} & \, ϑ^1 \\ dθ &= \, & r^{1} & \, ϑ^2 \\ dφ &= \, & r^{1} \csc θ & \, ϑ^3\text{.} \end{alignedat} \] Note that since we’re using \(θ\) as a coordinate, we use \(ϑ^λ\) to denote the basis oneforms. Furthermore, since this metric is Lorentzian, we adopt the convention that the index of the first coordinate is \(0\), Greek indices start from \(0\), and Latin indices start from \(1\).

Connection forms
The derivatives of the basis oneforms are \[ \begin{alignedat}{2} dϑ^0 &= \frac{1}{2}f(r)^{1/2} f'(r) \, dr ∧ dt & &= \frac{1}{2}f(r)^{1/2} f'(r) \, ϑ^1 ∧ ϑ^0 \\ dϑ^1 &= 0 & & \\ dϑ^2 &= dr ∧ dθ & &= \frac{f(r)^{1/2}}{r} \, ϑ^1 ∧ ϑ^2 \\ dϑ^3 &= \sin θ \, dr ∧ dφ + r \cos θ \, dθ ∧ dφ & &= \frac{f(r)^{1/2}}{r} \, ϑ^1 ∧ ϑ^3 + \frac{\cot θ}{r} \, ϑ^2 ∧ ϑ^3\text{.} \end{alignedat} \] By semiskew symmetry, since \(ε_0 = 1\) and \(ε_i = 1\), \(\cnf{0}{i} = \cnf{i}{0}\) and \(\cnf{i}{j} = \cnf{j}{i}\). Therefore, we can explicitly write out the first structure equations: \[ \begin{alignedat}{4} dϑ^0 &= & & \cnf{0}{1} ∧ ϑ^1 & & \cnf{0}{2} ∧ ϑ^2 & & \cnf{0}{3} ∧ ϑ^3 \\ dϑ^1 &= \cnf{0}{1} ∧ ϑ^0 & & & & \cnf{1}{2} ∧ ϑ^2 & & \cnf{1}{3} ∧ ϑ^3 \\ dϑ^2 &= \cnf{0}{2} ∧ ϑ^0 & &+ \cnf{1}{2} ∧ ϑ^1 & & & & \cnf{2}{3} ∧ ϑ^3 \\ dϑ^3 &= \cnf{0}{3} ∧ ϑ^0 & &+ \cnf{1}{3} ∧ ϑ^1 & &+ \cnf{2}{3} ∧ ϑ^2\text{,} & & \end{alignedat} \] and rewriting the derivative equations to match: \[ \begin{alignedat}{3} dϑ^0 &= & \; \overbrace{\left(\frac{1}{2}f(r)^{1/2} f'(r) \, ϑ^0\right)}^{\text{one term of $\cnf{0}{1}$}} &∧ ϑ^1 & & \\ dϑ^1 &= 0 & & & & \\ dϑ^2 &= & \overbrace{\left(\frac{f(r)^{1/2}}{r} \, ϑ^2\right)}^{\text{one term of $\cnf{1}{2}$}} &∧ ϑ^1 & & \\ dϑ^3 &= & \underbrace{\left(\frac{f(r)^{1/2}}{r} \, ϑ^3\right)}_{\text{one term of $\cnf{1}{3}$}} &∧ ϑ^1 & \; + \; \underbrace{\left( \frac{\cot θ}{r} \, ϑ^3 \right)}_{\text{one term of $\cnf{2}{3}$}} &∧ ϑ^2\text{,} \end{alignedat} \] we can guess that \[ \begin{alignedat}{2} \cnf{0}{1} &= \, & \frac{1}{2} f(r)^{1/2} f'(r) & \, ϑ^0 \\ \cnf{1}{2} &= \, & \frac{f(r)^{1/2}}{r} & \, ϑ^2 \\ \cnf{1}{3} &= \, & \frac{f(r)^{1/2}}{r} & \, ϑ^3 \\ \cnf{2}{3} &= \, & \frac{\cot θ}{r} & \, ϑ^3\text{.} \end{alignedat} \] Happily, plugging these expressions back into the first structure equations, we find that they hold. Therefore, by uniqueness of the connection forms, they are the connection forms.
Rather than plugging our guess into the first structure equations, a slicker way to see that it works would be to split up the first structure equation thus: \[ dϑ^λ = ∑_{λ \lt μ} \cnf{λ}{μ} ∧ ϑ^μ  ∑_{λ > μ} \cnf{λ}{μ} ∧ ϑ^μ\text{,} \] and notice that our derivative equations have the particularly simple form \[ dϑ^λ = ∑_{λ \lt μ} (f_μ \, ϑ^λ) ∧ ϑ^μ\text{,} \] so setting \[ \cnf{λ}{μ} = f_μ \, ϑ^λ \quad \text{for $λ \lt μ$} \] takes care of the left sum above. Then by semiskew symmetry, if \(λ \gt μ\), \[ \lvert \cnf{λ}{μ} ∧ ϑ^μ \rvert = \lvert \cnf{μ}{λ} ∧ ϑ^μ \rvert = \lvert (f_λ \, ϑ^μ) ∧ ϑ^μ \rvert = 0\text{.} \] Thus all terms in the right sum above vanish as required.
Then, expressing the connection forms in terms of both the basis oneforms and the coordinate forms, \[ \begin{alignedat}{6} \cnf{0}{1} &= & &\cnf{1}{0} & &= \quad & \frac{1}{2} f(r)^{1/2} f'(r) \, &ϑ^0 & \quad &= \quad & \frac{1}{2} f'(r) \, &dt \\ \cnf{2}{1} &= & \; &\cnf{1}{2} & &= \quad & \frac{f(r)^{1/2}}{r} \, &ϑ^2 & \quad &= \quad & f(r)^{1/2} \, &dθ \\ \cnf{3}{1} &= & \; &\cnf{1}{3} & &= \quad & \frac{f(r)^{1/2}}{r} \, &ϑ^3 & \quad &= \quad & f(r)^{1/2} \sin θ \, &dφ \\ \cnf{3}{2} &= & \; &\cnf{2}{3} & &= \quad & \frac{\cot θ}{r} \, &ϑ^3 & \quad &= \quad & \cos θ \, &dφ \text{.} \end{alignedat} \]
Note that \(\cnf{2}{1}\) has only one component instead of two; this is because \(g_{11}\) doesn’t depend on \(θ\). The other connection forms are either zero or have only one component, as expected for a diagonal metric depending on two coordinates.

Curvature forms
Using the expressions for \(\cnf{μ}{ν}\) in terms of the coordinate oneforms, since \(d(dt) = d(dr) = d(dθ) = d(dφ) = 0\), the derivatives of the connection forms are: \[ \begin{aligned} d \cnf{0}{1} &= \frac{1}{2} f''(r) \, dr ∧ dt \\ &= \frac{1}{2} f''(r) \, ϑ^1 ∧ ϑ^0 \\ d \cnf{2}{1} &= \frac{1}{2} f(r)^{1/2} f'(r) \, dr ∧ dθ \\ &= \frac{f'(r)}{2r} \, ϑ^1 ∧ ϑ^2 \\ d \cnf{3}{1} &= \frac{1}{2} f(r)^{1/2} f'(r) \sin ϑ \, dr ∧ dφ + f(r)^{1/2} \cos θ \, dθ ∧ dφ \\ &= \frac{f'(r)}{2r} \, ϑ^1 ∧ ϑ^3 + \frac{f(r)^{1/2} \cot θ}{r^2} \, ϑ^2 ∧ ϑ^3 \\ d \cnf{3}{2} &= \sin θ \, dθ ∧ dφ \\ &= \frac{1}{r^2} \, ϑ^2 ∧ ϑ^3\text{.} \end{aligned} \] For \(\cnf{μ}{λ} ∧ \cnf{λ}{ν}\), recalling that one need only sum over \(λ ∉ \{ μ, ν \}\), the nonzero terms are \[ \begin{alignedat}{3} \cnf{0}{λ} ∧ \cnf{λ}{2} &= \cnf{0}{1} ∧ \cnf{1}{2} & &= \; & \frac{f'(r)}{2r} \, &ϑ^0 ∧ ϑ^2 \\ \cnf{0}{λ} ∧ \cnf{λ}{3} &= \cnf{0}{1} ∧ \cnf{1}{3} & &= \; & \frac{f'(r)}{2r} \, &ϑ^0 ∧ ϑ^3 \\ \cnf{1}{λ} ∧ \cnf{λ}{3} &= \cnf{1}{2} ∧ \cnf{2}{3} & &= \; & \frac{f(r)^{1/2} \cot θ}{r^2} \, &ϑ^2 ∧ ϑ^3 \\ \cnf{2}{λ} ∧ \cnf{λ}{3} &= \cnf{2}{1} ∧ \cnf{1}{3} & &= \; & \frac{f(r)}{r^2} \, &ϑ^2 ∧ ϑ^3\text{.} \end{alignedat} \] Then we can compute the curvature forms: \[ \begin{aligned} \crf{0}{1} &= d\cnf{0}{1} = \frac{1}{2} f''(r) \, ϑ^1 ∧ ϑ^0 \\ \crf{0}{2} &= \cnf{0}{λ} ∧ \cnf{λ}{2} = \frac{f'(r)}{2r} \, ϑ^0 ∧ ϑ^2 \\ \crf{0}{3} &= \cnf{0}{λ} ∧ \cnf{λ}{3} = \frac{f'(r)}{2r} \, ϑ^0 ∧ ϑ^3 \\ \crf{1}{2} &= d\cnf{1}{2} = \frac{f'(r)}{2r} \, ϑ^1 ∧ ϑ^2 \\ \crf{1}{3} &= d\cnf{1}{3} + \cnf{1}{λ} ∧ \cnf{λ}{3} \\ &= \frac{f'(r)}{2r} \, ϑ^1 ∧ ϑ^3  \frac{f(r)^{1/2} \cot θ}{r^2} \, ϑ^2 ∧ ϑ^3 + \frac{f(r)^{1/2} \cot θ}{r^2} \, ϑ^2 ∧ ϑ^3 \\ &= \frac{f'(r)}{2r} \, ϑ^1 ∧ ϑ^3 \\ \crf{2}{3} &= d\cnf{2}{3} + \cnf{2}{λ} ∧ \cnf{λ}{3} \\ &= \frac{1}{r^2} \, ϑ^2 ∧ ϑ^3  \frac{f(r)}{r^2} \, ϑ^2 ∧ ϑ^3 \\ &= \frac{1  f(r)}{r^2} \, ϑ^2 ∧ ϑ^3\text{.} \end{aligned} \] Again by semiskew symmetry, since \(ε_0 = 1\) and \(ε_i = 1\), \(\crf{0}{i} = \crf{i}{0}\) and \(\crf{i}{j} = \crf{j}{i}\). Therefore, \[ \begin{alignedat}{3} \crf{0}{1} &= \; & \crf{1}{0} &= \; & \frac{1}{2} f''(r) \, &ϑ^1 ∧ ϑ^0 \\ \crf{0}{2} &= \; & \crf{2}{0} &= \; & \frac{f'(r)}{2r} \, &ϑ^0 ∧ ϑ^2 \\ \crf{0}{3} &= \; & \crf{3}{0} &= \; & \frac{f'(r)}{2r} \, &ϑ^0 ∧ ϑ^3 \\ \crf{1}{2} &= \; & \crf{2}{1} &= \; & \frac{f'(r)}{2r} \, &ϑ^1 ∧ ϑ^2 \\ \crf{1}{3} &= \; & \crf{3}{1} &= \; & \frac{f'(r)}{2r} \, &ϑ^1 ∧ ϑ^3 \\ \crf{2}{3} &= \; & \crf{3}{2} &= \; & \frac{1  f(r)}{r^2} \, &ϑ^2 ∧ ϑ^3\text{.} \end{alignedat} \]

Ricci curvature
We can compute the Ricci tensor \(\Ric{μν}\) as \[ \Ric{μν} = \Riem{λ}{μλν} = \crf{λ}{μ}(E_λ, E_ν)\text{,} \] where the \(E_λ\) comprise the dual frame to \(ϑ^λ\). From the relations \[ (θ^μ ∧ θ^ν)(E_ρ, E_σ) = \begin{cases} +1 & σ = μ ≠ ν = ρ \\ 1 & ρ = μ ≠ ν = σ \\ 0 & \text{otherwise,} \end{cases} \] we can examine the expressions above and conclude that \(\crf{ρ}{σ}(E_μ, E_ν)\) is possibly nonzero only when \(\{ μ, ν \} = \{ ρ, σ \}\). Furthermore, examining the expression for \(\Ric{μν}\), we can further conclude that \(\Ric{μν}\) is zero when \(μ ≠ ν\). Therefore, it suffices to check \(\Ric{λλ}\). (One of the properties we deduced for a diagonal metric depending on two coordinates was that \(\Ric{}\) would be diagonal except for possibly \(\Ric{12}\), but since \(\cnf{1}{2}\) turned out to not have a \(ϑ^1\) term, that immediately leads to \(\Ric{12} = 0\).)
From the expressions above, \[ \begin{aligned} \crf{0}{1}(E_0, E_1) &= \frac{1}{2} f''(r) \\ \crf{0}{2}(E_0, E_2) &= \crf{0}{3}(E_0, E_3) = \crf{1}{2}(E_1, E_2) = \crf{1}{3}(E_1, E_3) = \frac{f'(r)}{2r} \\ \crf{2}{3}(E_2, E_3) &= \frac{1  f(r)}{r^2}\text{,} \end{aligned} \] so using the skew symmetry of twoforms \[ \crf{μ}{ν}(E_ρ, E_σ) = \crf{μ}{ν}(E_σ, E_ρ) \] and the semiskew symmetry of \(\crf{μ}{ν}\) \[ \crf{0}{i} = \crf{i}{0} \quad \text{and} \quad \crf{i}{j} = \crf{j}{i} \text{,} \] we can compute \(\Ric{λλ}\): \[ \begin{aligned} \Ric{00} &= \crf{1}{0}(E_1, E_0) + \crf{2}{0}(E_2, E_0) + \crf{3}{0}(E_3, E_0) \\ &= \crf{0}{1}(E_0, E_1)  \crf{0}{2}(E_0, E_2)  \crf{0}{3}(E_0, E_3) \\ &= \frac{1}{2} f''(r) + \frac{f'(r)}{r} \\ \Ric{11} &= \crf{0}{1}(E_0, E_1) + \crf{2}{1}(E_2, E_1) + \crf{3}{1}(E_3, E_1) \\ &= \crf{0}{1}(E_0, E_1) + \crf{1}{2}(E_1, E_2) + \crf{1}{3}(E_1, E_3) \\ &= \Ric{00} \\ \Ric{22} &= \crf{0}{2}(E_0, E_2) + \crf{1}{2}(E_1, E_2) + \crf{3}{2}(E_3, E_2) \\ &= \crf{0}{2}(E_0, E_2) + \crf{1}{2}(E_1, E_2) + \crf{2}{3}(E_2, E_3) \\ &= \frac{f'(r)}{r} + \frac{1  f(r)}{r^2} \\ \Ric{33} &= \crf{0}{3}(E_0, E_3) + \crf{1}{3}(E_1, E_3) + \crf{2}{3}(E_2, E_3) \\ &= \Ric{22}\text{.} \end{aligned} \]
Finally, a computation shows that for \(f(r) = 1  \frac{r_S}{r}\), \[ \frac{1  f(r)}{r^2} = \frac{1}{2} f''(r) = \frac{f'(r)}{r} \text{,} \] so all the Ricci tensor components above vanish.^{[5]}
Example 3: The ppwave metric
For our last example, to keep things interesting, let’s consider a nondiagonal metric. Let \[ g = H(u, x, y) \, du ⊗ du + du ⊗ dv + dv ⊗ du + dx ⊗ dx + dy ⊗ dy \] be the ppwave metric, where \(H(u, x, y)\) is some smooth function. We want to derive a necessary and sufficient condition for \(g\) to be Ricciflat.

Orthonormal dual frame
This metric has the matrix \[ G = \begin{pmatrix} H & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}\text{,} \] which has inverse \[ G^{1} = \begin{pmatrix} 0 & 1 & 0 & 0 \\ 1 & H & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}\text{,} \] so the dual metric is \[ g^* = ∂_u ⊗ ∂_v + ∂_v ⊗ ∂_u  H(u, x, y) \, ∂_v ⊗ ∂_v + ∂_x ⊗ ∂_x + ∂_y ⊗ ∂_y\text{.} \] We can see that \(dx\) and \(dy\) form part of an orthonormal dual frame, but we have to find the other two, which involve \(du\) and \(dv\). First we have to figure out the signature of the metric. So set \[ \begin{aligned} θ^0 &= A \, du + B \, dv \\ θ^1 &= C \, du + D \, dv \\ θ^2 &= dx \\ θ^3 &= dy\text{,} \end{aligned} \] and solve for \(A\), \(B\), \(C\), and \(D\) using the orthonormality conditions \[ \begin{aligned} g^*(θ^0, θ^0) &= 2AB  B^2 H = ε_0 \\ g^*(θ^0, θ^1) &= AD + BC  BDH = 0 \\ g^*(θ^1, θ^1) &= 2CD  D^2 H = ε_1\text{.} \end{aligned} \] The tricky thing is to pick the \(θ^μ\) without assuming that \(H\) is nonzero. The simplest way to do that is to assume that none of the coefficients of \(H\) vanish, and, since we have four unknowns (not counting \(ε_0\) and \(ε_1\)) and three equations, to set \(B = 1\). Then the first equation gives \(A = (ε_0 + H)/2\), the second equation gives \(C = D(H  A)\), and plugging everything into the third equation gives \(D^2 = ε_1 / ε_0\), which implies that \(ε_1 = ε_0\) and \(D = ±1\). Set \(ε_0 = 1\) to make the frame have a Lorentzian signature \(({} \; {+} \; {+} \; {+})\), and let \(D = ε\). Then \[ \begin{aligned} A &= \frac{H  1}{2} \\ B &= 1 \\ C &= ε\frac{H + 1}{2} \\ D &= ε\text{.} \end{aligned} \] Setting \(ε = 1\) for symmetry, we finally have \[ \begin{aligned} θ^0 &= \frac{H1}{2} \, du + dv \\ θ^1 &= \frac{H+1}{2} \, du + dv = θ^0 + du \\ θ^2 &= dx \\ θ^3 &= dy \end{aligned} \] and \[ \begin{aligned} du &= θ^1  θ^0 \\ dx &= θ^2 \\ dy &= θ^3\text{;} \end{aligned} \] it’ll turn out that we don’t need to express \(dv\) in terms of the \(θ^μ\).

Connection forms
Since \[ \begin{aligned} θ^1 &= θ^0 + du \\ θ^2 &= dx \\ θ^3 &= dy\text{,} \end{aligned} \] the derivatives of the basis oneforms are \[ \begin{aligned} dθ^0 &= dθ^1 = \frac{1}{2} (H_x \, dx + H_y \, dy) ∧ du \\ &= \frac{H_x}{2} \, θ^2 ∧ θ^1  \frac{H_x}{2} \, θ^2 ∧ θ^0 + \frac{H_y}{2} \, θ^3 ∧ θ^1  \frac{H_y}{2} \, θ^3 ∧ θ^0 \\ dθ^2 &= 0 \\ dθ^3 &= 0\text{.} \end{aligned} \]
Similarly to the Schwarzschild example, by semiskew symmetry, since \(ε_0 = 1\) and \(ε_i = 1\), \(\cnf{0}{i} = \cnf{i}{0}\) and \(\cnf{i}{j} = \cnf{j}{i}\). Therefore, we can explicitly write out the first structure equations: \[ \begin{alignedat}{4} dθ^0 &= & & \cnf{0}{1} ∧ θ^1 & & \cnf{0}{2} ∧ θ^2 & & \cnf{0}{3} ∧ θ^3 \\ dθ^1 &= \cnf{0}{1} ∧ θ^0 & & & & \cnf{1}{2} ∧ θ^2 & & \cnf{1}{3} ∧ θ^3 \\ dθ^2 &= \cnf{0}{2} ∧ θ^0 & &+ \cnf{1}{2} ∧ θ^1 & & & & \cnf{2}{3} ∧ θ^3 \\ dθ^3 &= \cnf{0}{3} ∧ θ^0 & &+ \cnf{1}{3} ∧ θ^1 & &+ \cnf{2}{3} ∧ θ^2\text{.} & & \end{alignedat} \] However, unlike the Schwarzschild example, we can’t simply read off the nonzero connection forms; for example, it’s not immediately clear whether the \(\frac{H_x}{2} \, θ^2 ∧ θ^1\) term in \(dθ^0\) belongs to the \(\cnf{0}{1} ∧ θ^1\) term or the \(\cnf{0}{2} ∧ θ^2\) term. However, since \(dθ^0 = dθ^1\), we can guess that \(\cnf{0}{2} = \cnf{1}{2}\) and \(\cnf{0}{3} = \cnf{1}{3}\). Subtracting the first structure equations for \(dθ^1\) and \(dθ^0\), we get \[ \cnf{0}{1} ∧ (θ^1  θ^0) = 0\text{,} \] i.e. that \(\cnf{0}{1} ∼ θ^1  θ^0\). However, plugging this into the first structure equation for \(dθ^0\) or \(dθ^1\), we get a \(θ^0 ∧ θ^1\) term, which isn’t present in the derivative equation for \(dθ^0 = dθ^1\), which then implies that \(\cnf{0}{1} = 0\). Thus, there’s only one way to assign each term of the derivative equation for \(dθ^0 = dθ^1\) to \(\cnf{0}{2} ∧ θ^2\) or \(\cnf{0}{3} ∧ θ^3\): \[ \begin{aligned} \cnf{0}{2} &= \cnf{1}{2} = \frac{H_x}{2} \, (θ^1  θ^0) = \frac{H_x}{2} \, du \\ \cnf{0}{3} &= \cnf{1}{3} = \frac{H_y}{2} \, (θ^1  θ^0) = \frac{H_y}{2} \, du\text{.} \end{aligned} \] Plugging this into the structure equations for \(dθ^2\) and \(dθ^3\), we get \[ \begin{aligned} dθ^2 &= \cnf{0}{2} ∧ θ^0 + \cnf{1}{2} ∧ θ^1  \cnf{2}{3} ∧ θ^3 \\ &= \cnf{0}{2} ∧ du  \cnf{2}{3} ∧ θ^3 \\ &= \frac{H_x}{2} \, du ∧ du  \cnf{2}{3} ∧ θ^3 \\ &= \cnf{2}{3} ∧ θ^3 \\ dθ^3 &= \cnf{0}{3} ∧ θ^0 + \cnf{1}{3} ∧ θ^1 + \cnf{2}{3} ∧ θ^2 \\ &= \cnf{0}{3} ∧ du + \cnf{2}{3} ∧ θ^2 \\ &= \frac{H_y}{2} \, du ∧ du + \cnf{2}{3} ∧ θ^2 \\ &= \cnf{2}{3} ∧ θ^2\text{.} \end{aligned} \] Since \(dθ^2 = dθ^3 = 0\) from the derivative equations, \(\cnf{2}{3}\) is proportional to both \(θ^2\) and \(θ^3\), i.e. \(\cnf{2}{3} = 0\). We’ve found expressions for \(\cnf{μ}{ν}\) that satisfy the first structure equations. Therefore, by uniqueness of the connection forms, these expressions are the connection forms. Then, expressing the connection forms in terms of both the basis oneforms and the coordinate forms, \[ \begin{aligned} \cnf{0}{2} &= \cnf{2}{0} = \cnf{1}{2} = \cnf{2}{1} = \frac{H_x}{2} \, (θ^1  θ^0) = \frac{H_x}{2} \, du \\ \cnf{0}{3} &= \cnf{3}{0} = \cnf{1}{3} = \cnf{3}{1} = \frac{H_y}{2} \, (θ^1  θ^0) = \frac{H_y}{2} \, du\text{.} \end{aligned} \]

Curvature forms
Using the expressions for \(\cnf{μ}{ν}\) in terms of the coordinate oneforms, since \(d(du) = 0\), the derivative of \(\cnf{0}{2} = \cnf{1}{2}\) is \[ \begin{aligned} d\cnf{0}{2} &= d\cnf{1}{2} = \frac{1}{2} \, dH_x ∧ du \\ &= \frac{1}{2} (H_{xx} \, dx + H_{xy} \, dy) ∧ du \\ &= \frac{1}{2} (H_{xx} \, θ^2 + H_{xy} \, θ^3) ∧ (θ^1  θ^0) \end{aligned} \] and similarly the derivative of \(\cnf{0}{3} = \cnf{1}{3}\) is \[ d\cnf{0}{3} = d\cnf{1}{3} = \frac{1}{2} (H_{xy} \, θ^2 + H_{yy} \, θ^3) ∧ (θ^1  θ^0)\text{.} \] Since all the connection forms are proportional to \(du\), all possible sums \(\cnf{μ}{λ} ∧ \cnf{λ}{ν}\) equal \(0\). Then we can compute the curvature forms: \[ \begin{aligned} \crf{0}{2} &= \crf{1}{2} = \frac{1}{2} (H_{xx} \, θ^2 + H_{xy} \, θ^3) ∧ (θ^1  θ^0) \\ \crf{0}{3} &= \crf{1}{3} = \frac{1}{2} (H_{xy} \, θ^2 + H_{yy} \, θ^3) ∧ (θ^1  θ^0)\text{.} \end{aligned} \] Again by semiskew symmetry, since \(ε_0 = 1\) and \(ε_i = 1\), \(\crf{0}{i} = \crf{i}{0}\) and \(\crf{i}{j} = \crf{j}{i}\). Therefore, \[ \begin{aligned} \crf{0}{2} &= \crf{2}{0} = \crf{1}{2} = \crf{2}{1} = \frac{1}{2} (H_{xx} \, θ^2 + H_{xy} \, θ^3) ∧ (θ^1  θ^0) \\ \crf{0}{3} &= \crf{3}{0} = \crf{1}{3} = \crf{3}{1} = \frac{1}{2} (H_{xy} \, θ^2 + H_{yy} \, θ^3) ∧ (θ^1  θ^0)\text{.} \end{aligned} \]

Ricci curvature
We can compute the Ricci tensor \(\Ric{μν}\) as \[ \Ric{μν} = \Riem{λ}{μλν} = \crf{λ}{μ}(E_λ, E_ν)\text{,} \] where the \(E_λ\) comprise the dual frame to \(ϑ^λ\). First, using the relations \[ (θ^μ ∧ θ^ν)(E_ρ, E_σ) = \begin{cases} +1 & σ = μ ≠ ν = ρ \\ 1 & ρ = μ ≠ ν = σ \\ 0 & \text{otherwise,} \end{cases} \] we compute \[ \Ric{0ν} = \crf{λ}{0}(E_λ, E_ν) = \crf{0}{λ}(E_λ, E_ν) = \crf{0}{2}(E_2, E_ν) + \crf{0}{3}(E_3, E_ν) \] and see that it’s only nonzero for \(ν ∈ \{ 0, 1 \}\); furthermore, \(\Ric{01} = \Ric{00}\). Similarly, \[ \Ric{1ν} = \crf{λ}{1}(E_λ, E_ν) = \crf{1}{λ}(E_λ, E_ν) = \crf{0}{λ}(E_λ, E_ν) = \Ric{0ν}\text{.} \] For the last two, we can save some effort by calculating \((θ^1  θ^0)(E_0 + E_1) = 0\), which implies \[ (θ^μ ∧ (θ^1  θ^0))(E_ν, E_0 + E_1) = 0\text{.} \] Then, using skew symmetry of twoforms \[ \crf{μ}{ν}(E_ρ, E_σ) = \crf{μ}{ν}(E_σ, E_ρ)\text{,} \] we compute \[ \Ric{2ν} = \crf{λ}{2}(E_λ, E_ν) = \crf{λ}{2}(E_ν, E_λ) = \crf{0}{2}(E_ν, E_0)  \crf{1}{2}(E_ν, E_1) = \crf{0}{2}(E_ν, E_0 + E_1) = 0 \] and \[ \Ric{3ν} = \crf{λ}{3}(E_λ, E_ν) = \crf{λ}{3}(E_ν, E_λ) = \crf{0}{3}(E_ν, E_0)  \crf{1}{3}(E_ν, E_1) = \crf{0}{3}(E_ν, E_0 + E_1) = 0\text{,} \] so it suffices to compute \(\Ric{00}\): \[ \begin{aligned} \Ric{00} &= \crf{0}{2}(E_2, E_0) + \crf{0}{3}(E_3, E_0) \\ &= \frac{1}{2} (H_{xx} + H_{yy})\text{.} \end{aligned} \] Finally, we can conclude that the ppwave metric is Ricci flat exactly when \[ H_{xx} + H_{yy} = 0\text{.} \]
Further reading
The classic reference for the method of moving frames is Volume 2, Chapter 7 of Spivak’s “A Comprehensive Introduction to Differential Geometry”. However, this only covers the Riemannian case. For the semiRiemannian case, look to § 1.8 of O’Neill’s “The Geometry of Kerr Black Holes”, or § 14.6 of Gravitation.
Footnotes
[1] A metric can only be diagonal with respect to a particular coordinate system, but for brevity I’ll only mention it here. ↩
[2] See p. 52 of The Geometry of Kerr Black Holes by Barret O‘Neill. ↩
[3] The paper “Ricci Tensor of Diagonal Metric” has a similar discussion using coordinate methods; note that the calculations are much more laborious! ↩
[4] One subtle technical point is that there might not be such an expression for \(g\) throughout the whole chart domain; see this Math StackExchange question for details. In practice, though, this doesn’t turn out to be a problem. ↩
[5] The Schwarzschild metric describes the field outside a spherically symmetric and nonrotating massive body. If we let \(f(r)\) have an \(r^{2}\) term, e.g. \[ f(r) = 1  \frac{r_S}{r} + \frac{r_Q^2}{r^2} \] for some constant \(r_Q\), then we have nonvanishing Ricci components. However, this metric, called the Reissner–Nordström metric, is still useful, as it describes a charged, spherically symmetric, nonrotating massive body. ↩