Perelman's F-Functional as an Action
The Yamabe operator, Rayleigh quotient, and Euler–Lagrange equations for Ricci flow from a variational principle
1. Perelman's F-Functional
Let $(M^n, g)$ be a closed Riemannian manifold and $f: M \to \mathbb{R}$ a smooth function. Perelman introduced the $\mathcal{F}$-functional as an action principle governing the Ricci flow. Define the action:
$$S_P \;=\; \mathcal{F}(g,f) \;=\; \int_M \bigl(R + |\nabla f|^2\bigr)\,e^{-f}\,d\mu$$
Here $R$ is the scalar curvature of $g$, $|\nabla f|^2 = g^{ij}\partial_i f\,\partial_j f$, and $d\mu = \sqrt{\det g}\,d^nx$ is the Riemannian volume form. The measure$e^{-f}d\mu$ is called the weighted volume element; it plays the role of the path-integral measure in the gravitational analogy.
The functional $\mathcal{F}$ combines the Einstein–Hilbert action$\int R\,d\mu$ with a dilaton kinetic term $\int|\nabla f|^2 e^{-f}d\mu$, mirroring the low-energy string effective action in the string frame. An integration by parts shows the equivalence to a more familiar form:
$$\mathcal{F}(g,f) = \int_M \bigl(R + 2\Delta f - |\nabla f|^2\bigr)\,e^{-f}\,d\mu + 2\int_M \Delta(e^{-f})\,d\mu$$
On a closed manifold $M$, the second integral vanishes by the divergence theorem, leaving $\mathcal{F} = \int(R + 2\Delta f - |\nabla f|^2)e^{-f}d\mu$.
2. Rewriting via $u = e^{-f/2}$
The substitution $u = e^{-f/2}$ (so $f = -2\ln u$) linearizes the functional. Computing the kinetic piece step by step: since $\nabla f = -2\,u^{-1}\nabla u$ and $e^{-f} = u^2$, the product simplifies as:
$$|\nabla f|^2\,e^{-f} = 4\,u^{-2}|\nabla u|^2 \cdot u^2 = 4\,|\nabla u|^2$$
The curvature term transforms as $R\,e^{-f} = R\,u^2$. Combining:
$$\boxed{\mathcal{F}(g,f) = \int_M \bigl(R\,u^2 + 4\,|\nabla u|^2\bigr)\,d\mu}$$
Integrating the gradient term by parts on the closed manifold $M$ (no boundary terms):
$$\int_M 4\,|\nabla u|^2\,d\mu = \int_M 4\,g^{ij}\partial_i u\,\partial_j u\,d\mu = -\int_M 4\,u\,\Delta u\,d\mu$$
Therefore the action can be written as a quadratic form:
$$\mathcal{F} = \int_M u\bigl(-4\Delta + R\bigr)u\,d\mu = \langle u,\,\mathcal{H}_{\rm Yamabe}\,u\rangle_{L^2}$$
This expresses $\mathcal{F}$ as a Rayleigh quotient for the Yamabe (conformal Laplacian) operator, establishing $\mathcal{F}$ as a spectral quantity whose minimization is an eigenvalue problem.
3. The Yamabe Operator and $\lambda$-Invariant
The conformal Laplacian (Yamabe operator) in dimension $n$ is:
$$\mathcal{H}_{\rm Yamabe} = -\frac{4(n-1)}{n-2}\,\Delta + R$$
In $n = 3$ spatial dimensions this reduces to $\mathcal{H}_{\rm Yamabe} = -4\Delta + R$. Since $\mathcal{H}_{\rm Yamabe}$ is elliptic and self-adjoint on $L^2(M, d\mu)$, it has a discrete spectrum $\lambda_1 \leq \lambda_2 \leq \cdots$ with orthonormal eigenfunctions$\{u_k\}_{k=1}^\infty$.
Perelman's $\lambda$-invariant is the infimum of $\mathcal{F}$ over all normalized $u$:
$$\boxed{\lambda(g) = \inf_{\|u\|_{L^2}=1} \mathcal{F}(g,f) = \inf_{\|u\|_{L^2}=1}\langle u,\,\mathcal{H}_{\rm Yamabe}\,u\rangle = \lambda_1(g)}$$
The eigenvalue equation for the ground state is:
$$(-4\Delta + R)\,u_0 = \lambda_1\,u_0, \qquad u_0 > 0$$
Positivity of $u_0$ follows from the Perron–Frobenius theorem for elliptic operators. The sign of $\lambda(g)$ determines the Yamabe class:$\lambda(g) > 0$ means positive scalar curvature is achievable conformally,$\lambda(g) = 0$ means scalar-flat, and $\lambda(g) < 0$ means the conformal class admits only negative scalar curvature.
For the round $S^3$ of radius $r$, one can compute $R = 6/r^2$and $\lambda_1 = 6/r^2$ (the constant function is the ground state). More generally, the Rayleigh quotient gives:
$$\lambda(g) = \frac{\int_M(4|\nabla u_0|^2 + R\,u_0^2)\,d\mu}{\int_M u_0^2\,d\mu}$$
4. Euler–Lagrange: Variation in $f$
We vary $\mathcal{F}$ with respect to $f$ at fixed $g$, subject to the constraint $\int_M e^{-f}d\mu = \text{const}$. Under $f \to f + \delta f$:
$$\delta_f(|\nabla f|^2\,e^{-f}) = (2\nabla^i f\,\nabla_i\delta f)\,e^{-f} + |\nabla f|^2\,e^{-f}(-\delta f)$$
For the scalar curvature term: $\delta_f(R\,e^{-f}) = -R\,e^{-f}\,\delta f$. Collecting and integrating the $2\nabla^i f\,\nabla_i\delta f$ term by parts:
$$\int_M 2\nabla^i f\,\nabla_i(\delta f)\,e^{-f}\,d\mu = -\int_M 2(\Delta f - |\nabla f|^2)\,\delta f\,e^{-f}\,d\mu$$
Summing all contributions:
$$\delta_f \mathcal{F} = -\int_M \bigl(2\Delta f - |\nabla f|^2 + R\bigr)\,\delta f\;e^{-f}\,d\mu$$
Setting $\delta_f\mathcal{F} = 0$ with the constraint enforced by a Lagrange multiplier $\lambda$:
$$\boxed{2\Delta f - |\nabla f|^2 + R = \lambda}$$
5. Euler–Lagrange: Variation in $g^{ij}$
Under $g_{ij} \to g_{ij} + \delta g_{ij}$ we use the Palatini identity$\delta R = -R_{ij}\,\delta g^{ij} + \nabla_i\nabla_j\,\delta g^{ij} - g_{ij}\,\Delta\,\delta g^{ij}$, together with $\delta\sqrt{g} = \frac{1}{2}\sqrt{g}\,g_{ij}\,\delta g^{ij}$ and$\delta_g(|\nabla f|^2) = -\nabla_i f\,\nabla_j f\,\delta g^{ij}$. After integration by parts against the weighted measure $e^{-f}d\mu$:
$$\delta_g \mathcal{F} = -\int_M \bigl(R_{ij} + \nabla_i\nabla_j f\bigr)\,\delta g^{ij}\;e^{-f}\,d\mu$$
The key cancellations use $\nabla_i(e^{-f}) = -(\nabla_i f)\,e^{-f}$ to convert total divergences with the weighted measure into $\nabla_i\nabla_j f$ terms. The stationarity condition $\delta_g\mathcal{F} = 0$ yields:
$$\boxed{R_{ij} + \nabla_i\nabla_j f = 0}$$
This is the tensorial Euler–Lagrange equation. Notice the structural similarity to the vacuum Einstein equation $R_{ij} = 0$: the Hessian of $f$ plays the role of a matter source.
6. The Soliton Equation as On-Shell Condition
Combining both Euler–Lagrange equations gives the steady gradient Ricci soliton. From $R_{ij} + \nabla_i\nabla_j f = 0$, take the trace with $g^{ij}$:
$$R + \Delta f = 0$$
Substitute $\Delta f = -R$ into $2\Delta f - |\nabla f|^2 + R = \lambda$:
$$-2R - |\nabla f|^2 + R = \lambda \quad\Longrightarrow\quad R + |\nabla f|^2 = -\lambda$$
The on-shell value is $\mathcal{F}_{\rm on-shell} = \lambda\cdot\int e^{-f}d\mu$. The full on-shell system:
$$\boxed{R_{ij} + \nabla_i\nabla_j f = 0, \qquad R + |\nabla f|^2 = -\lambda}$$
This is the steady gradient Ricci soliton equation. A shrinking soliton instead satisfies$R_{ij} + \nabla_i\nabla_j f = \frac{1}{2\tau}g_{ij}$, corresponding to the$\mathcal{W}$-entropy. An expanding soliton has $R_{ij} + \nabla_i\nabla_j f = -\frac{1}{2\tau}g_{ij}$.
The contracted second Bianchi identity $\nabla^j(R_{ij} - \frac{1}{2}Rg_{ij}) = 0$ applied to the soliton equation gives an integrability condition:
$$\nabla_i R + 2R_{ij}\nabla^j f = 0$$
which is automatically satisfied on-shell and constrains the topology of solitons.
7. Time-Extended Action and the Coupled Flow
To obtain the Ricci flow dynamically, introduce a time-extended action integrating$\mathcal{F}$ over $[0,T]$:
$$I_P = \int_0^T \mathcal{F}(g(\tau), f(\tau))\,d\tau = \int_0^T\!\!\int_M \bigl(R + |\nabla f|^2\bigr)\,e^{-f}\,d\mu\,d\tau$$
Varying $I_P$ with respect to the metric path $g(\tau)$ yields the modified Ricci flow:
$$\frac{\partial g_{ij}}{\partial\tau} = -2\bigl(R_{ij} + \nabla_i\nabla_j f\bigr)$$
Under the DeTurck diffeomorphism $\phi_\tau$ generated by $\nabla^i f$, this is gauge-equivalent to Hamilton's Ricci flow $\partial_\tau g_{ij} = -2R_{ij}$. The variation with respect to $f(\tau)$ yields the backward heat equation:
$$\boxed{\frac{\partial f}{\partial\tau} = -\Delta f + |\nabla f|^2 - R}$$
In terms of $u = e^{-f/2}$, this becomes the conjugate heat equation:
$$\frac{\partial u}{\partial\tau} = \bigl(-\Delta + \tfrac{1}{2}R\bigr)\,u = \tfrac{1}{4}\mathcal{H}_{\rm Yamabe}\,u$$
The coupled system preserves $\int e^{-f}d\mu = \text{const}$ and makes $\mathcal{F}$monotonically non-decreasing. The monotonicity formula (proved in the next lecture) gives:
$$\boxed{\frac{d\mathcal{F}}{d\tau} = 2\int_M |R_{ij} + \nabla_i\nabla_j f|^2\,e^{-f}\,d\mu \;\geq\; 0}$$
Equality holds precisely at steady gradient Ricci solitons. This monotonicity is the analogue of the second law of thermodynamics for the geometric flow, and will be reinterpreted as a gradient flow identity in the next section.
Simulation: Perelman F-Functional and Yamabe Eigenvalue
PythonClick Run to execute the Python code
Code will be executed with Python 3 on the server