Solid Angle via Differential Geometry

This post analyzes solid angle using concepts from differential geometry.

Solid Angle via Differential Geometry
Generated by Google Gemini using the prompt "Generate an artistic depiction of solid angle. Don't use text. Depict the projection of a shape onto the surface of a sphere from outside the sphere."

In a previous post, I described solid angle using tools from calculus. In this post, I will describe solid angle in terms of differential geometry and I will generalize it to an arbitrary number of dimensions.

Three-Dimensional Solid angle

The \(2\)-dimensional unit sphere \(S^2\) is, by one definition, the collection of all unit-length vectors in \(\mathbb{R}^3\):

\[S^2 = \{ x \in \mathbb{R}^3 : \lVert x \rVert = 1\}.\]

Thus, to project an arbitrary vector in \(\mathbb{R}^3\) onto \(S^2\), we only need to normalize it:

\[\rho(x) = \frac{x}{\lVert x \rVert}.\]

This is undefined when \(x=0\), so we restrict the mapping \(\rho\) to \(\mathbb{R}^3 \setminus \{0\}\).

The sphere \(S^2\) is embedded in \(\mathbb{R}^3 \setminus \{0\}\) via the inclusion \(\iota : S^2 \hookrightarrow \mathbb{R}^3 \setminus \{0\}\). Thus, we can pull back the Euclidean metric \(g_E\) on \(\mathbb{R}^3 \setminus \{0\}\) to obtain the standard metric \(g_{S^2} = \iota^*g_E\) on \(S^2\).

Spherical Coordinates

Since we are dealing with spherical projections, it will be convenient to work with spherical coordinates. In a previous post, the following expression for the Euclidean metric \(g_E\) in spherical coordinates was derived:

\[g_E = dr^2 + r^2d\theta^2 + r^2 \sin^2\theta d\varphi^2.\]

Recall that \(r\), \(\theta\), and \(\varphi\) are coordinate functions defined on an open set \(\mathbb{R}^3 \setminus H_{x,z}\) where \(H_{x,z} = \{(x,y,z) \in \mathbb{R}^3 : x \ge 0, y = 0\}\). Likewise, \(\sin^2 \theta\) is shorthand for the composition \(\sin^2 \circ \theta\).

Recall that, for any smooth map \(F : M \rightarrow N\) between smooth manifolds \(M\) and \(N\) and any covariant \(k\)-tensor field \(A\) on \(N\), the pullback \(F^*A\) has the following coordinate expression relative to a smooth local coordinate chart with coordinate functions \((y^i)\) defined a neighborhood \(U\) of \(F(p)\) for a point \(p \in M\):

\[F^*A = (A_{i_1,\dots,i_k} \circ F)d\left(y^{i_1} \circ F\right) \otimes \dots \otimes d\left(y^{i_k} \circ F\right).\]

We can then compute the pullback \(g_{S^2} = \iota^*g_E\) as follows:

\begin{align*}g_{S^2} &= \iota^*g_E \\&= \iota^*(dr^2 + r^2d\theta^2 + r^2 \sin^2\theta d\varphi^2) \\&= d(r \circ \iota)^2 + (r \circ \iota)^2d(\theta \circ \iota)^2 + (r \circ \iota)^2 \sin^2(\theta \circ \iota) d(\varphi \circ \iota)^2 \\&= d(\theta \circ \iota)^2 +\sin^2(\theta \circ \iota) d(\varphi \circ \iota)^2.\end{align*}

Note the following:

  • \((r \circ \iota)(x) = 1\) for all \(x \in S^2\), since the radius of \(S^2\) is \(1\) by definition,
  • \((\theta \circ \iota)(x) = \theta(x)\) for all \(x \in S^2\) since \(\iota(x) = x\) by definition,
  • \((\varphi \circ \iota)(x) = \varphi(x)\) for all \(x \in S^2\) since \(\iota(x) = x\) by definition.

Thus:

\begin{align*}g_{S^2} &= d(\theta \circ \iota)^2 +\sin^2(\theta \circ \iota) d(\varphi \circ \iota)^2 \\&= d\theta\lvert_{S^2}^2 +\sin^2\theta\lvert_{S^2} d\varphi\lvert_{S^2}^2\end{align*}

The metric has the "same" coordinate expression, except that the coordinate functions are restricted to the domain \(S^2\). It is common practice to suppress the restrictions and simply write

\[g_{S^2} = d\theta^2 +\sin^2\theta d\varphi^2.\]

Volume Forms

Recall that, given any metric \(g\) on a smooth \(n\)-manifold, there exists a corresponding volume form \(\omega_g\) defined in terms of local coordinates \((x^i)\) as

\[\omega_g = \sqrt{\mathrm{det}\left(g_{ij}\right)}dx^1 \wedge \dots \wedge dx^n,\]

where

\[g_{ij} = g\left(\frac{\partial}{\partial x^i}, \frac{\partial}{\partial x^j}\right).\]

Thus, in our \(2\)-dimensional example, the matrix \((g_{S^2})_{ij}\) relative to the coordinate functions \((\theta, \varphi)\) is

\[(g_{S^2})_{ij} = \begin{bmatrix}1 & 0 \\ 0 & \sin^2 \theta\end{bmatrix}\]

and \(\sqrt{\mathrm{det}\left((g_{S^2})_{ij}\right)} = \sin \theta\) (since \(\theta\) is restricted to the range \((0,\pi)\) and is thus positive) so the volume form \(\omega_{S^2}\) corresponding to \(g_{S^2}\) is expressed in spherical coordinates as

\[\sin \theta d\theta \wedge d\varphi.\]

Given any surface \(S\) that is smoothly immersed in \(\mathbb{R}^3 \setminus \{0\}\), via immersion map \(j : S \rightarrow \mathbb{R}^3 \setminus \{0\}\), we can pull back the volume form \(\omega_{S^2}\) along \(\rho \circ j : S \rightarrow S^2\) (whenever \(\rho \circ j\) is a local diffeomorphism) to produce a volume form for \(S\) induced by the projection:

\[\overline{\omega_S} = j^*\rho^*(\omega_{S^2}) = (\rho \circ j)^*(\omega_{S^2}).\]

Note that we write \(\omega_S\) for the volume form on \(S\) induced by the Euclidean metric and \(\overline{\omega_S}\) for the volume form for \(S\) induced by the projection. This volume form represents the element of solid angle, i.e., when integrated, it yields the solid angle of the surface (the oriented projection of the surface onto the unit sphere):

\[\int_S \overline{\omega_S}.\]

Here, the integral is an integral of the differential form \(\overline{\omega_S}\) over the manifold \(S\).

Interior Products

There is an alternative derivation of these metrics that has the advantage of being both coordinate-free and geometrically intuitive. This approach also provides a link to the classical expressions in calculus. Consider the following theorem:

Theorem. For any oriented Riemannian manifold \((M, g)\), immersed hypersurface \(S \subseteq M\), and unit normal vector field \(N\) along \(S\), the volume form \(\omega_{\tilde{g}}\) with respect to the induced metric \(\tilde{g}\) and orientation determined by \(N\) is given by

\[\omega_{\tilde{g}} = \iota_S^*\left(N \lrcorner \omega_g\right).\]

Recall that, by definition, for any differential form \(\omega \in \Omega^k(M)\) and smooth vector field \(X \in \mathfrak{X}(M)\) defined on a smooth manifold \(M\),

\[(X \lrcorner \omega)_p = X_p \lrcorner \omega_p,\]

where, for any tangent vectors \(v_1, \dots, v_{k-1} \in T_pM\),

\[(X_p \lrcorner \omega_p)(v_1, \dots, v_{k-1}) = \omega_p(X_p, v_1, \dots, v_k).\]

Basically, the interior product \(X \lrcorner \omega\) "inserts" the vector field \(X\) in the "first slot" of the form \(\omega\) to produce an operator \(\omega(X, \dots)\).

There is an important lemma (which is formally analogous to the Leibniz rule) that indicates how to compute with interior products: for \(X \in \mathfrak{X}(M)\) ,\(\omega \in \Omega^k(M)\) and \(\eta \in \Omega^l(M)\),

\[X \lrcorner (\omega \wedge \eta) = (X \lrcorner \omega) \wedge \eta + (-1)^k\omega \wedge (X \lrcorner \eta).\]

Consider the Euclidean volume form \(\omega_E\) on \(\mathbb{R}^3\):

\[\omega_E = dx \wedge dy \wedge dz.\]

For any unit normal vector field \(N\) along an immersed surface \(S \subseteq \mathbb{R}^3\), we compute

\begin{align*}N \lrcorner \omega_E &= N \lrcorner (dx \wedge (dy \wedge dz)) \\&= (N \lrcorner dx) \wedge (dy \wedge dz) + (-1)^1 dx \wedge (N \lrcorner (dy \wedge dz)) \\&= N_x dy \wedge dz - dx \wedge ((N \lrcorner dy) \wedge dz + (-1)^1 dy \wedge (N \lrcorner dz)) \\&= N_x dy \wedge dz - N_y dx \wedge dz + N_z dx \wedge dy \\&= N_x dy \wedge dz + N_y dz \wedge dx + N_z dx \wedge dy, \end{align*}

where the vector field \(N\) is expressed in standard coordinates as

\[N = N_x \frac{\partial}{\partial x} + N_y \frac{\partial}{\partial y} + N_z \frac{\partial}{\partial z}.\]

We can then compute the volume form for \(S^2\) in Cartesian coordinates:

\begin{align}\omega_{S^2} &= \iota^*_{S^2}\left(\hat{r} \lrcorner (dx \wedge dy \wedge dz)\right) \\&= \iota^*_{S^2}\left(\frac{x}{r}dy \wedge dz + \frac{y}{r} dz \wedge dx + \frac{z}{r} dx \wedge dy\right),\end{align}

where \(\hat{r}\) is the radial unit vector field defined as

\[\hat{r} = \frac{x}{r} \frac{\partial}{\partial x} + \frac{y}{r} \frac{\partial}{\partial y} + \frac{z}{r} \frac{\partial}{\partial z}\]

where \(x,y,z\) are the respective coordinate functions and \(r\) is a smooth function defined as

\[r(x,y,z) = \sqrt{x^2 + y^2 + z^2}.\]

The pullback along the inclusion \(\iota^*_{S^2}\) has the effect of restricting each of the coordinate functions to \(S^2\). Thus, since \(r=1\) on \(S^2\), the final form (remembering that the coordinate functions are now restricted to \(S^2\)) is

\[\omega_{S^2} = x dy \wedge dz + y dz \wedge dx + z dx \wedge dy.\]

Note that we are implicitly treating \(S^2\) as a surface immersed in \(\mathbb{R}^3 \setminus \{0\}\) since this differential form is not defined at the point \(0\) due to the appearances of \(r\) in the denominator.

We can also apply this to spherical coordinates. Since the Euclidean metric is expressed in spherical coordinates as

\[g_E = dr^2 + r^2d\theta^2 + r^2 \sin^2\theta d\varphi^2\]

and the corresponding matrix representation of the metric in these coordinates is

\[\begin{bmatrix}1 & 0 & 0 \\ 0 & r^2 & 0 \\ 0 & 0 & r^2 \sin^2 \theta\end{bmatrix},\]

the volume form in these coordinates is thus

\[r^2 \sin \theta dr \wedge d\theta \wedge d\varphi.\]

The radial unit vector in these coordinates is simply \(\frac{\partial}{\partial r}\) and thus the volume form for \(S^2\) is

\begin{align}\omega_{S^2} &= \iota^*_{S^2}\left(\frac{\partial}{\partial r} \lrcorner (r^2 \sin \theta dr \wedge d\theta \wedge d\varphi)\right) \\&= \iota^*_{S^2}\left((r^2 \sin \theta) \frac{\partial}{\partial r} \lrcorner (dr \wedge d\theta \wedge d\varphi)\right) \\&= \iota^*_{S^2}\left((r^2 \sin \theta) (1 \cdot d\theta \wedge d\varphi + 0 \cdot d\varphi \wedge dr + 0 \cdot (r^2 \sin \theta dr) \wedge d\theta)\right) \\&= \iota^*_{S^2}\left(r^2 \sin \theta d\theta \wedge d\varphi\right) \\&= \sin \theta d\theta\lvert_{S^2} \wedge d\varphi\lvert_{S^2}.\end{align}

Since \(\partial/\partial r\) is a coordinate basis vector field, its component functions are the constant function \(1\) with respect to \(r\) and \(0\) with respect to \(\theta\) and \(\varphi\). Also, \(r \circ \iota_{S^2}\) is the constant function \(1\), so the \(r^2\) term disappears. The restrictions are often dropped if understood from context, so that the expression is simply

\[\omega_{S^2} = \sin \theta d\theta \wedge d\varphi.\]

Next, we will compute \(\rho^*\omega_{S^2}\) in Cartesian coordinates. First, note that

\begin{align*}\rho^*\omega_{S^2} &= \rho^*(x dy \wedge dz + y dz \wedge dx + z dx \wedge dy) \\&= (x \circ \rho) d(y \circ \rho) \wedge d(z \circ \rho) + (y \circ \rho) d(z \circ \rho) \wedge d(x \circ \rho) + (z \circ \rho) d(x \circ \rho) \wedge d(y \circ \rho) \\&= \frac{x}{r} d\left(\frac{y}{r}\right) \wedge d\left(\frac{z}{r}\right) + \frac{y}{r} d\left(\frac{z}{r}\right) \wedge d\left(\frac{x}{r}\right) + \frac{z}{r} d\left(\frac{x}{r}\right) \wedge d\left(\frac{y}{r}\right) .\end{align*}

Next, note that

\begin{align*}dr &= d\left(\sqrt{x^2 + y^2 + z^2}\right) \\&= \frac{1}{2}\frac{2x dx + 2y dy + 2z dz}{\sqrt{x^2 + y^2 + z^2}} \\&= \frac{1}{r} (xdx + ydy + zdz).\end{align*}

Next, we will compute \(d(y/r) \wedge d(z/r)\) (note that \(dr \wedge dr = 0\) and \(dy \wedge dy = 0\) and \(dz \wedge dz = 0\)):

\begin{align*} d\left(\frac{y}{r}\right) \wedge d\left(\frac{z}{r}\right) &= \left( \frac{dy}{r} - \frac{y dr}{r^2} \right) \wedge \left( \frac{dz}{r} - \frac{z dr}{r^2} \right) \\&= \frac{dy \wedge dz}{r^2} - \frac{z dy \wedge dr}{r^3} - \frac{y dr \wedge dz}{r^3} \\&= \frac{dy \wedge dz}{r^2} + \frac{1}{r^4} \left[ z dy \wedge (x dx + y dy + z dz) + y (x dx + y dy + z dz) \wedge dz \right] \\&= \frac{dy \wedge dz}{r^2} + \frac{1}{r^4} \left[ xz dy \wedge dx + z^2 dy \wedge dz + xy dx \wedge dz + y^2 dy \wedge dz\right].\end{align*}

Next, we will compute \(d(z/r) \wedge d(x/r)\) (note that \(dr \wedge dr = 0\) and \(dz \wedge dz = 0\) and \(dx \wedge dx = 0\)):

\begin{align*} d\left(\frac{z}{r}\right) \wedge d\left(\frac{x}{r}\right) &= \left( \frac{dz}{r} - \frac{z dr}{r^2} \right) \wedge \left( \frac{dx}{r} - \frac{x dr}{r^2} \right) \\&= \frac{dz \wedge dx}{r^2} - \frac{x dz \wedge dr}{r^3} - \frac{z dr \wedge dx}{r^3} \\&= \frac{dz \wedge dx}{r^2} + \frac{1}{r^4} \left[ x dz \wedge (x dx + y dy + z dz) + z (x dx + y dy + z dz) \wedge dx \right] \\&= \frac{dz \wedge dx}{r^2} + \frac{1}{r^4} \left[ x^2 dz \wedge dx + xy dz \wedge dy + yz dy \wedge dx + z^2 dz \wedge dx\right].\end{align*}

Next, we will compute \(d(x/r) \wedge d(y/r)\) (note that \(dr \wedge dr = 0\) and \(dx \wedge dx = 0\) and \(dy \wedge dy = 0\)):

\begin{align*} d\left(\frac{x}{r}\right) \wedge d\left(\frac{y}{r}\right) &= \left( \frac{dx}{r} - \frac{x dr}{r^2} \right) \wedge \left( \frac{dy}{r} - \frac{y dr}{r^2} \right) \\&= \frac{dx \wedge dy}{r^2} - \frac{y dx \wedge dr}{r^3} - \frac{x dr \wedge dy}{r^3} \\&= \frac{dx \wedge dy}{r^2} + \frac{1}{r^4} \left[dx \wedge (x dx + y dy + z dz) + x (x dx + y dy + z dz) \wedge dy \right] \\&= \frac{dx \wedge dy}{r^2} + \frac{1}{r^4} \left[ y^2 dx \wedge dy + yz dx \wedge dz + x^2 dx \wedge dy + xz dz \wedge dy\right].\end{align*}

Multiplying each of these subterms by their respective coefficient (i.e. \(x/r\), \(y/r\), \(z/r\), respectively), we obtain

\[\frac{x}{r} d\left(\frac{y}{r}\right) \wedge d\left(\frac{z}{r}\right) = \frac{x dy \wedge dz}{r^3} + \frac{1}{r^5} \left[ x^2z dy \wedge dx + xz^2 dy \wedge dz + x^2y dx \wedge dz + xy^2 dy \wedge dz\right],\]

\[\frac{y}{r} d\left(\frac{z}{r}\right) \wedge d\left(\frac{x}{r}\right) = \frac{y dz \wedge dx}{r^3} + \frac{1}{r^5} \left[ x^2 y dz \wedge dx + xy^2 dz \wedge dy + y^2z dy \wedge dx + yz^2 dz \wedge dx\right],\]

\[\frac{z}{r} d\left(\frac{x}{r}\right) \wedge d\left(\frac{y}{r}\right) = \frac{z dx \wedge dy}{r^3} + \frac{1}{r^5} \left[ y^2 z dx \wedge dy + yz^2 dx \wedge dz + x^2 z dx \wedge dy + xz^2 dz \wedge dy\right].\]

The right-hand terms (with \(\frac{1}{r^5}\) coefficeints) all cancel out, leaving the final expression:

\[\frac{1}{r^2}\left(\frac{x}{r}dy \wedge dz + \frac{y}{r} dz \wedge dx + \frac{z}{r} dx \wedge dy\right).\]

This is precisely

\[\frac{1}{r^2}(\hat{r} \lrcorner \omega_E).\]

If we choose an orthonormal frame \((E_1, E_2)\) for a surface \(S\) embedded in \(\mathbb{R}^3\), then, together with the unit normal vector field \(N\), when restricted to points along \(S\), the vector fields \((E_1, E_2, N)\) comprise an orthonormal frame for the points in \(\mathbb{R}^3\) along \(S\). The volume form \(\omega_S\) (i.e., the volume form induced by the Euclidean metric) can be augmented as follows:

\[\omega_E = N^{\flat} \wedge \omega_S.\]

This equation only holds when restricted to \(S\). The notation \(N^{\flat}\) refers to covector field corresponding to the vector field \(N\) under the tangent/co-tangent isomorphism. Combining this with the previous equation yields

\begin{align*}\rho^*\omega_{S^2} &= \frac{1}{r^2}\hat{r} \lrcorner (N^{\flat} \wedge \omega_S) \\&= \frac{1}{r^2} \left[(\hat{r} \lrcorner N^{\flat}) \wedge \omega_S - N^{\flat} \wedge (\hat{r} \lrcorner \omega_S)\right].\end{align*}

If we then pull back along the inclusion \(\iota_{S} : S \hookrightarrow \mathbb{R}^3 \setminus \{0\}\), we obtain the final expression

\begin{align}\overline{\omega_S} &= \iota_S^*\left(\frac{1}{r^2} \left[(\hat{r} \lrcorner N^{\flat}) \wedge \omega_S - N^{\flat} \wedge (\hat{r} \lrcorner \omega_S)\right]\right) \\&= \iota_S^*\left(\frac{1}{r^2}N^{\flat}(\hat{r})\omega_S\right) \\&= \frac{1}{r^2}N^{\flat}(\hat{r})\omega_S.\end{align}

The \(N^{\flat} \wedge \hat{r} \lrcorner \omega_S\) term vanishes because the normal vector field \(N\) yields \(0\) by definition for all tangent vector fields along \(S\).

When interpreted as vectors in \(\mathbb{R}^3\) under the tangent space isomorphism \(T_p\mathbb{R}^3 \cong \mathbb{R}^3\), the coefficient in this final expression may be written as follows (noting that \(N^{\flat}(\hat{r})\) becomes \(N \cdot \hat{r}\)):

\[\frac{1}{r^2} N \cdot \hat{r}.\]

Since \(N \cdot \hat{r} = \cos \psi\) where \(\psi\) is the "tilt" angle between the unit vectors \(N\) and \(\hat{r}\), this is often written as

\[\frac{1}{r^2} \cos \psi.\]

This thus derives the classical formula for the conversion between area and solid angle.

Generalization

Nothing in the preceding derivations relied on the embedding in \(\mathbb{R}^3\). In fact, solid angle can be generalized to hyper-surfaces. Given a hyper-sphere \(S^n\) and hyper-surface \(S\) embedded in \(\mathbb{R}^{n+1}\), a volume form can be derived from the corresponding projection as either

\[\overline{\omega_S} = \iota_{S}^*\rho^*\omega_{S^n}\]

or

\[\overline{\omega_S} = \iota_{S}^*\left(N \lrcorner \omega_{E}\right),\]

where \(\rho : \mathbb{R}^{n+1} \rightarrow S^n\) is the \(n+1\)-dimensional projection \(x \mapsto x / \lVert x \rVert\) onto the \(n\)-dimensional hyper-sphere, \(\iota_S : S \hookrightarrow \mathbb{R}^{n+1}\) is the inclusion map, \(N\) is a unit normal vector field along \(S\), and \(\omega_E\) is the \((n+1)\)-form induced by the \((n+1)\)-dimensional Euclidean metric on \(\mathbb{R}^{n+1}\).