Substituting with the tensor identities (expressions 1):
![](https://latex.codecogs.com/svg.image?\nabla^2 \mathbf{u} = \nabla (\nabla \cdot \mathbf{u}) - \nabla \times (\nabla \times \mathbf{u}))
and
![](https://latex.codecogs.com/svg.image?(\mathbf{u} \cdot \nabla)\mathbf{u} = \frac{1}{2} \nabla (\mathbf{u} \cdot \mathbf{u}) - \mathbf{u} \times (\nabla \times \mathbf{u}))
,
and considering the incompressibility condition
![](https://latex.codecogs.com/svg.image?\nabla \cdot \mathbf{u} = 0)
, Eq. (0a) can be expressed in its rotational form as
![](https://latex.codecogs.com/svg.image?\frac{\partial \mathbf{u}}{\partial t} + \nu \nabla \times \nabla \times \mathbf{u} - \mathbf{u} \times (\nabla \times \mathbf{u}) + \nabla p^d = 0)
,
where p^d is the dynamic pressure defined as
![](https://latex.codecogs.com/svg.image?p^d = p + \frac{1}{2} (\mathbf{u} \cdot \mathbf{u}))
.
Making substitutions in expressions 1:
![](https://latex.codecogs.com/svg.image?*^{-1}d(*d\mathbf{u}) = [d(*d(*\mathbf{u}^\flat))]^\sharp - ([*^{-1}(d([*(d\mathbf{u}^\flat)]^\sharp)^\flat)]^\sharp))
and
![](https://latex.codecogs.com/svg.image?(\mathbf{u}^\flat)\mathbf{u} = \frac{1}{2} [d(\mathbf{u} \cdot \mathbf{u})]^\sharp - \mathbf{u} \times ([*(d\mathbf{u}^\flat)]^\sharp))
.
Substituting with the following identities:
![](https://latex.codecogs.com/svg.image?(\nabla \times \nabla \times \mathbf{u})^\flat = (-1)^{N+1} *^{-1}d*(d\mathbf{u}^\flat))
,
![](https://latex.codecogs.com/svg.image?(\mathbf{u} \times (\nabla \times \mathbf{u}))^\flat = (-1)^{N+1} *^{-1}(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat)))
,
![](https://latex.codecogs.com/svg.image?(\nabla \cdot \mathbf{u})^\flat = *^{-1}d*\mathbf{u}^\flat)
,
![](https://latex.codecogs.com/svg.image?(\nabla p^d)^\flat = dp^d)
,
where * is the Hodge star and
![](https://latex.codecogs.com/svg.image?*^{-1})
is the transpose Hodge star, d is the exterior derivative, and ^ is the wedge product operators.
The action of the flat operator (
![](https://latex.codecogs.com/svg.image?\flat)
) on a vector u transforms it into a 1-form
![](https://latex.codecogs.com/svg.image?u^\flat)
.
Substituting with Eqs. (3) in Eqs. (0) and (1), the Navier-Stokes equations are then expressed as (expressions 4):
![](https://latex.codecogs.com/svg.image?\frac{\partial \mathbf{u}^\flat}{\partial t} + (-1)^{N+1}\nu *^{-1}d*(d\mathbf{u}^\flat) + (-1)^{N+2} *^{-1}_F(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat)) + dp^d = 0)
,
where p^d is the dynamic pressure defined as
![](https://latex.codecogs.com/svg.image?p^d = p + \frac{1}{2} (\mathbf{u} \cdot \mathbf{u}))
, the velocity field now is represented by the 1-form
![](https://latex.codecogs.com/svg.image?\mathbf{u}^\flat)
and
![](https://latex.codecogs.com/svg.image?p^d)
is now the dynamic pressure 1-form.
We denote the velocity 1-form
![](https://latex.codecogs.com/svg.image?u^\flat)
defined on the primal vertex by u, which represents the integration of the velocity vector field along the primal edges; i.e.
![](https://latex.codecogs.com/svg.image?u = \int_{\sigma^1} \mathbf{u} dl)
, at
![](https://latex.codecogs.com/svg.image?C^0(K))
The velocity 0-form u may be referred to as the normal
![](https://latex.codecogs.com/svg.image?\nu)
is the kinematic viscosity, since it represents the
![](https://latex.codecogs.com/svg.image?\nu)
is the kinematic viscosity by the triangles’ vertex (i.e. primal vertex). Similarly for the scalar potential term in Eq. (4), it follows from diagram (5) that the scalar potential 0-form in this term is also defined on the dual vertex.
![](http://homedevice.pro/wp-content/uploads/2015/09/IMG_20150903_122212s-300x300.jpg)
Diagram 5
Lines showing the Laplace operator (grad div A - rot rot A) for the composite idempotentIn regards to the convective term, because the term
![](https://latex.codecogs.com/svg.image?d(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat)))
is defined on the dual 3-cells, the term
![](https://latex.codecogs.com/svg.image?d*^{-1}(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat)))
is defined on the primal 2-cells, the term
![](https://latex.codecogs.com/svg.image?*^{-1}(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat)))
has to be defined on the primal edges, and therefore
![](https://latex.codecogs.com/svg.image?(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat)))
is defined on the dual 2-cell.
Since
![](https://latex.codecogs.com/svg.image?\mathbf{u}^\flat)
is a 1-form, then
![](https://latex.codecogs.com/svg.image?*d\mathbf{u}^\flat)
is a 1-form (in 3D), and therefore the wedge product is carried out between a 1-form and a 1-form, such that the outcome of this wedge product must be defined on the dual 2-cell.
Applying the exterior derivative operator to Eq. (4) (equivalent to taking the curl of the momentum equation Eq. (0a)), and considering the exterior derivative property dd = 0, the resulting governing equation is (expressions 6):
![](https://latex.codecogs.com/svg.image?\frac{1}{c^2}\frac{\partial d\mathbf{u}^\flat}{\partial t} + (-1)^{N+1} *^{-1}_F( \mu *d*^{-1}d*(d\mathbf{u}^\flat)) + (-1)^N d*^{-1}_F(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat)) = 0)
,
![](https://latex.codecogs.com/svg.image?\mu=d*d\nu)
![](https://latex.codecogs.com/svg.image?\rho \wedge \frac{\partial \mathbf{u}^\flat}{\partial t} + (-1)^{N+1} ( \mu *d*^{-1}d*(d\mathbf{u}^\flat)) + (-1)^N d*_F d*^{-1}_F(\mathbf{u}^\flat \wedge*(d\mathbf{u}^\flat) = 0)
,