A geometrically precise account of Navier-Stokes

Edit: as Markus Lohmayer points out, this is really only Euler’s equation; Navier Stokes also includes viscosity which I have not mentioned yet.

Edit 2: I think that the final equation that I got for momentum conservation may actually be wrong, because momentum is carried by the fluid in a different way than quantities like mass or entropy. So there’s still a significant amount of deconfusion that needs to happen; I haven’t cracked this nut yet!


The Navier-Stokes equation describes the evolution of a fluid flowing through space. It is important for many applications, and it is famously hard to solve. I have felt for a while that I should probably get a basic understanding of what it is saying, partially because it’s important in DECAPODES, and partially out of a general feeling that it is an important part of physics to know, and partially because it’s in the first chapter of Beyond Equilibrium Thermodynamics, which I have been trying to read.

I have been so conditioned to think about everything in terms of exterior algebra (as a result of this) that I had to put Navier-Stokes in exterior algebra terms to make sense of it. (This has been done before; this is just recording my personal process of doing that).

This post is a result of this digestion process; hopefully it will be useful to others who are similarly exterior algebra-pilled.

Geometric setup

The first difficulty in the Navier-Stokes equation is to figure out the different variables, and the types of those variables. There are a couple ways of doing this; this is the way of organizing the variables that made the most sense to me.

First of all, we work on an underlying Reimannian manifold X. We will use the musical isomorphims \sharp : T^\ast X \rightleftarrows T X : \flat coming from this Reimannian structure, and by abuse of notation we will also use this for turning vector fields (elements of \Gamma (T X)) into 1-forms (elements of \Omega^1 X = \Gamma (T^\ast X)) and vice-versa.

Also coming from the Reimannian structure, we have the Hodge star \star \colon \Omega^k X \to \Omega^{n-k} X, where n is the dimension of X.

We will denote vector-valued k-forms with values in the vector bundle E by

\Omega^k(X,E) := \Gamma\left(\bigwedge_{i=1}^k T^\ast X \otimes E\right)

Specifically, sections of E are elements of \Omega^0(X,E), so the musical isomorphisms can be seen as going between \Omega^1 X and \Omega^0(X, TX).

Types of variables

We can now talk about the variables involved in Navier-Stokes. All of these are implicitly also functions of time.

  • \rho \in \Omega^n(X) is the mass n-form; integrating \rho over a volume V gives the total mass of the fluid in V. \star \rho is the mass density 0-form.

  • v \in \Omega^0(X, TX) is the vector-valued velocity 0-form, which describes the “flow field” of the system. We assume that all of the particles in the infinitesimal neighborhood of x are flowing with velocity v(x).

  • \Phi \in \Omega^{n-1}(X) is the fluid flux n-1 form, given by the equation

    \Phi = \star (v^{\flat})

    Integrating this over a surface gives the flux of fluid through that surface. Determining where in Navier-Stokes I wanted to use v, and where I wanted to use \Phi was half the battle in figuring out what was going on.

  • M \in \Omega^n(X,TX) is the vector-valued momentum 0-form, given by the equation

    M = \rho v
  • \pi \in \Omega^{n-1}(X,TX) is the vector-valued force n-1 form, which when integrated over a surface gives the force exerted on that surface by the interaction of molecules. In general, \pi may be some function of the other variables, but for now we let it stay abstract.

Conservation equations

Navier-Stokes is formulated by considering two conservation equations: one for mass, and the other for momentum. We start with the one for mass.

Mass conservation

We start by considering mass conservation over a volume element V \subset X. The conservation law

\frac{d}{dt} \int_V \rho = - \int_{\partial V} (\star \rho) \Phi

states that the change in the mass inside V is equal to the flux of mass through the boundary of V, which is the flux in fluid multiplied by the fluid density. We can then apply Stoke’s law to get

\frac{d}{dt} \int_V \rho = \int_{\partial V} (\star \rho) \mathbf{v} = \int_V \mathrm{d} ((\star \rho) \Phi)

Then, noticing that V was arbitrary, we see that we must have

\frac{d}{dt} \rho = -\mathrm{d}((\star \rho) \Phi)

It is typical to condense this further by introducing a “material derivative”, defined on an n-form \alpha by

\frac{D_v}{D_v t} \alpha = \frac{d}{dt} \alpha + d((\star \alpha) \Phi)

where we have extended the traditional notation \frac{D}{Dt} to emphasize the dependence on v, via \Phi = \star (v^\flat). We can interpret this as “the change in the extensive quantity of the fluid \alpha”. This is the change in \alpha that’s not accounted for by the movement of the fluid. With this, we can write the mass conservation law as

\frac{D_v}{D_v t} \rho = 0

Now we consider the equation for momentum

Momentum conservation

The conservation law for momentum looks very similar to the one for mass, except it is a vector equation rather than a scalar equation.

\frac{d}{dt} \int_V M = - \int_{\partial V} (\star M) \Phi + \pi

Before we interpret this, note that this actually doesn’t make sense, because M is a tangent-vector valued n-form, and we can’t add together tangent vectors to form the integral. However, as long as V is sufficiently small, we can trivialize the tangent bundle to make this work, and we only care about small V because we are turning this into a differential equation. At some point, however, I would like someone to tell me how to think about momentum conservation over a large V.

With this in mind, we interpret the equation as saying that the total momentum in V changes in two ways. One is by fluid with certain momentum moving through the boundary, bringing its momentum with it. The other is by forces exerted on V by the molecules around V.

We can apply the same trick as we did for mass conservation to turn this into a differential equation. We apply Stoke’s law to get

\int_{\partial V} (\star M) \Phi + \pi = \int_V \mathrm{d}((\star M) \Phi + \pi)

Then we argue that because this holds for every V, we have

\frac{d}{dt} M = -\mathrm{d}((\star M) \Phi) - \mathrm{d}\pi

We can finish this by simplifying with the material derivative, and we get

\frac{D_v}{D_v t} M = -\mathrm{d}\pi


In the end, the laws are very simple! We have mass: \frac{D_v}{D_v t} \rho = 0, and momentum: \frac{D_v}{D_v t}M = -\mathrm{d}\pi.

There are a variety of ways of spicing things up from here.

  1. Expand \pi out into some function of the variables.
  2. Consider a multi-component fluid, with masses \rho_1,\ldots,\rho_k. Then there are some additional terms for how the components mix, and perhaps react.
  3. Consider an external force, perhaps coming from gravity or electromagnetism, which imparts momentum change to the terms
  4. Derive laws for energy conservation and entropy production from the equations momentum and mass conservation, which is what happens next in Beyond Equilibrium Thermodynamics

However, these will have to wait for another time.

1 Like

Hi there!

If you are like me and you enjoyed reading Owen’s post, then maybe you will also like what follows.

First some remarks on terminology:

One speaks of Euler equations if the considered fluid is inviscid and of Navier-Stokes equations if viscosity is taken into account.

In both cases, one can consider incompressible and compressible fluids.
The incompressibility constraint frees you from thermodynamics, since pressure becomes a Lagrange multiplier.

In the compressible case, usually a balance equation for either entropy or energy is required, as the pressure depends on it. This can however be avoided by assuming a barotropic fluid, meaning that the pressure is supposed to depend only on the mass density and not on entropy/energy.

In case you wonder, one can either choose energy as a potential and entropy as a corresponding state variable (together with mass density), or the other way around, due to convexity. One could even think of using a differential equation for temperature, although it is physically less intuitive, since temperature, as an intensive quantity, is not conserved by any means.

This article presents the Navier-Stokes-Fourier model (i.e. a compressible, viscous, and thermally conducting fluid model) in a compositional style, meaning that the model is hierarchically decomposed, using undirected wiring diagrams, into components that represent primitive physical behaviors, namely storage of energy, reversible exchange of energy and irreversible processes.
Further, the structural properties of the modeling language guarantee thermodynamic consistency, in a way that is very closely related to the GENERIC equation that Owen mentioned.

By removing the subsystems which model the irreversible processes, i.e. thermal conduction and viscosity, and by neglecting all ports which correspond to the boundary of the fluid domain, the model is essentially reduced to Euler’s model (equations below).

As Owen did, the article also uses Cartan’s exterior calculus as much as possible.
However, since the viscous stress tensor is symmetric by definition (if it were not, one would also have to consider conservation of angular momentum), vanilla exterior calculus cannot suffice and one has to consider tensor-valued forms, as Owen did. More concretely, vector-valued and covector-valued forms are enough.
To my knowledge, the original reference for this is this.
The idea is simple:
Since velocity combined with force yields power, and since velocity clearly is a vector (field), the force must be a covector (field).
Indeed, there is no clear reason why one should need a metric to to compute power.
Since the rate of change of momentum is given by a force, momentum should then also be thought of as a covector.

For the viscosity model, with its symmetric stress tensor, it is however necessary to convert velocity to a vector-valued 0-form and momentum to a covector-valued n-form (with n being the dimension of the spatial domain).

As promised above, I will state the resulting balance equations for the Euler model. Due to the compositional / extensible nature of the modeling language, the balance equation for entropy does not simply go away by removing the dissipative subsystems. It now just says that entropy is advected by the flow, but due to the absence of the irreversible components, it becomes a conserved quantity.

\dot{\upsilon} \: = \: -\iota_{\upsilon^\sharp}(\mathrm{d} \upsilon) -\mathrm{d} (\frac{1}{2} \star (\upsilon \wedge \star \upsilon)) -\frac{1}{\star m} \, \mathrm{d} \pi
\dot{m} \: = \: -\mathrm{d} (\star m \, \star \upsilon)
\dot{s} \: = \: -\mathrm{d} (\star s \, \star \upsilon)

Here, m and s are (pseudo/twisted) n-forms, representing the mass and the entropy, respectively. Rather than choosing the momentum (covector field) p as a state variable, the specific momentum \upsilon = \frac{1}{\star m} \, p is used instead, since it yields to a simpler representation of advection. Of course, you may call \upsilon the velocity, but it is a covector.

The pressure 0-form \pi is a function of m and s, see Eq. 12 in the article.

I think one has to make a careful distinction between a covector-valued 0-form and a 1-form. The Hodge star of a covector-valued 0-form would be a covector-valued n-form, but the Hodge star of a 1-form is an (n-1)-form.

By the way you are using specific momentum, I think you are treating it as a 1-form. Can you explain the form of advection you used for the specific momentum equation? I understand advection for scalar quantities, but not for a 1-form.

Also, I feel like I couldn’t understand the difference between Navier-Stokes and Euler until I actually understood what was going on! So I still don’t understand Navier-Stokes, but at least I understand the difference!

Hi Owen!
As you mentioned, covector-valued 0-forms and 1-forms are different types and hence it is important to formally distinguish them, but they are canonically isomorphic. In the literature you will find notation like \star_1 and \star_2 to distinguish whether the Hodge star should act on the “covector-part” or the “differential-form-part”, and similarly for the musical isomorphism.

Yes, according to Kanso et al. (and many others) it makes sense to geometrically think of momentum as a covector such that it can intrinsically be paired with a velocity vector, yielding the rate at which energy is exchanged.
The specific momentum is momentum divided by mass density, which is still a 1-form.

I think I might have to correct myself, since my use of the word advection should probably be considered as incorrect.
Advection means that a quantity is carried by the flow, as it is the case for mass and entropy. In geometric terms, this simply means Lie derivative of the differential form along the velocity vector field. Since the advected quantities are n forms, you simply get the exterior derivative, according to Élie Cartan’s magic formula.

If you equate advection with Lie derivative, then I should definitely not have said that the momentum is advected, since it is not a Lie derivative that describes its transport by the flow. Something more non-linear is going on, which makes fluid dynamics difficult, as you mentioned.

Arguably the most elegant way to obtain the balance of (specific) momentum equation is by starting with the Lagrangian (i.e. particle-based) description of the ideal/reversible fluid dynamics, which is a canonical Hamiltonian system on the contangent bundle of the diffeomorphism group of the spatial domain (which has to be without boundary or with impermeable boundary to give an automorphism group). Since diffeomorphisms naturally act on advected quantities, you get a semidirect product Lie group. Since the Hamiltonian (with the constant parameter fluid mass) is right-invariant (this is the particle relabeling symmetry), one can apply a symmetry reduction theorem by Marsden, Ratiu and Weinstein. This yields a non-canonical Hamiltonian system on the linear dual of the semidirect product Lie algebra. This reduced description, commonly called the Eulerian description of the fluid, uses the momentum (or velocity) in the inertial frame as a state variable, while the configuration (particle positions) is no more a state variable. In other words, the cotangent bundle is right-trivialized. The canonical symplectic structure (for the Lagrangian description) is thereby reduced to the so-called Lie-Poisson structure (for the Eulerian description). The Lie Poisson structure essentially is the linear adjoint of the curried Lie bracket \mathrm{ad_X} = \pm[X, -], which is also called an adjoint map in the context of Lie groups.

What I wanted to say in my previous reply is that the expression of this Poisson structure is simpler after the variable transformation from momentum to specific momentum. In the equations I posted, it corresponds to the first two terms on the RHS of the momentum balance equation.

@owenlynch I agree with your conclusions in the edits to your first post and maybe I can add some more context / connections.

In the Lagrangian (particle-based) description, a configuration of the fluid is given by a diffeomorphism which maps initial particle positions q(0) to current particle positions q(t). Given that the advected quantity is a differential form T(t), configurations q act on advected quantities T via pullback, i.e.

\mathrm{T}^*q(t) \, T(t) = T(0)

The Lie derivative is the differential version of this.

For a Lie advected tensorial quantity T advected along a time-dependent velocity vector field v, the “material derivative formula” is:

\frac{\partial T}{\partial t} + \mathcal{L}_v T = 0

see for instance Manifolds, Tensor Analysis, and Applications (Second Time-dependent Lie Derivative Theorem).
If T happens to be a differential form this becomes, using Cartan’s magic formula,

\frac{\partial T}{\partial t} + \mathrm{d} \, \iota_v \, T + \iota_v \, \mathrm{d} \, T = 0

If moreover T is a top-form, i.e. a differential k-form with k being the dimension of the manifold (fluid domain, usually n = 3), the last term vanishes:

\frac{\partial T}{\partial t} = - \mathrm{d} \, \iota_v \, T

The interior product \iota_v can be rewritten using a formula published originally by Hirani in his thesis, see also formula (3) in the mentioned article, which gives

\frac{\partial T}{\partial t} = - \mathrm{d} (T \, \star v^\flat)

exactly as you posted for mass conservation.

The equation you posted for conservation of momentum does not correspond to the Lie-Poisson structure which underlies fluid mechanics.

A reference that I found helpful is this article.

I really like using the diffeomorphism group of your space as the configuration space of the fluid; that is very geometrically clear. I’m going to have to write a new blog post starting from this perspective! (but first I’ll finish the promised one on exergy).