- Source: Projection method (fluid dynamics)
In computational fluid dynamics, the projection method, also called Chorin's projection method, is an effective means of numerically solving time-dependent incompressible fluid-flow problems. It was originally introduced by Alexandre Chorin in 1967
as an efficient means of solving the incompressible Navier-Stokes equations. The key advantage of the projection method is that the computations of the velocity and the pressure fields are decoupled.
The algorithm
The algorithm of the projection method is based on the Helmholtz decomposition (sometimes called Helmholtz-Hodge decomposition) of any vector field into a solenoidal part and an irrotational part. Typically, the algorithm consists of two stages. In the first stage, an intermediate velocity that does not satisfy the incompressibility constraint is computed at each time step. In the second, the pressure is used to project the intermediate velocity onto a space of divergence-free velocity field to get the next update of velocity and pressure.
Helmholtz–Hodge decomposition
The theoretical background of projection type method is the decomposition theorem of Ladyzhenskaya sometimes referred to as Helmholtz–Hodge Decomposition or simply as Hodge decomposition. It states that the vector field
u
{\displaystyle \mathbf {u} }
defined on a simply connected domain can be uniquely decomposed into a divergence-free (solenoidal) part
u
sol
{\displaystyle \mathbf {u} _{\text{sol}}}
and an irrotational part
u
irrot
{\displaystyle \mathbf {u} _{\text{irrot}}}
.
Thus,
u
=
u
sol
+
u
irrot
=
u
sol
+
∇
ϕ
{\displaystyle \mathbf {u} =\mathbf {u} _{\text{sol}}+\mathbf {u} _{\text{irrot}}=\mathbf {u} _{\text{sol}}+\nabla \phi }
since
∇
×
∇
ϕ
=
0
{\displaystyle \nabla \times \nabla \phi =0}
for some scalar function,
ϕ
{\displaystyle \,\phi }
. Taking the
divergence of equation yields
∇
⋅
u
=
∇
2
ϕ
(
since,
∇
⋅
u
sol
=
0
)
{\displaystyle \nabla \cdot \mathbf {u} =\nabla ^{2}\phi \qquad ({\text{since,}}\;\nabla \cdot \mathbf {u} _{\text{sol}}=0)}
This is a Poisson equation for the scalar function
ϕ
{\displaystyle \,\phi }
. If the vector field
u
{\displaystyle \mathbf {u} }
is known, the above equation can be solved for the scalar function
ϕ
{\displaystyle \,\phi }
and the divergence-free part of
u
{\displaystyle \mathbf {u} }
can be extracted using the relation
u
sol
=
u
−
∇
ϕ
{\displaystyle \mathbf {u} _{\text{sol}}=\mathbf {u} -\nabla \phi }
This is the essence of solenoidal projection method for solving incompressible
Navier–Stokes equations.
Chorin's projection method
The incompressible Navier-Stokes equation (differential form of momentum equation) may be written as
∂
u
∂
t
+
(
u
⋅
∇
)
u
=
−
1
ρ
∇
p
+
ν
∇
2
u
{\displaystyle {\frac {\partial \mathbf {u} }{\partial t}}+(\mathbf {u} \cdot \nabla )\mathbf {u} =-{\frac {1}{\rho }}\nabla p+\nu \nabla ^{2}\mathbf {u} }
In Chorin's original version of the projection method, one first computes an intermediate velocity,
u
∗
{\displaystyle \mathbf {u} ^{*}}
, explicitly using the momentum equation by ignoring the pressure gradient term:
(
1
)
u
∗
−
u
n
Δ
t
=
−
(
u
n
⋅
∇
)
u
n
+
ν
∇
2
u
n
{\displaystyle \quad (1)\qquad {\frac {\mathbf {u} ^{*}-\mathbf {u} ^{n}}{\Delta t}}=-(\mathbf {u} ^{n}\cdot \nabla )\mathbf {u} ^{n}+\nu \nabla ^{2}\mathbf {u} ^{n}}
where
u
n
{\displaystyle \mathbf {u} ^{n}}
is the velocity at
n
{\displaystyle \,n}
th time step. In the second half of the algorithm, the projection step, we correct the intermediate velocity to obtain the final solution of the time step
u
n
+
1
{\displaystyle \mathbf {u} ^{n+1}}
:
(
2
)
u
n
+
1
=
u
∗
−
Δ
t
ρ
∇
p
n
+
1
{\displaystyle \quad (2)\qquad \mathbf {u} ^{n+1}=\mathbf {u} ^{*}-{\frac {\Delta t}{\rho }}\,\nabla p^{n+1}}
One can rewrite this equation in the form of a time step as
u
n
+
1
−
u
∗
Δ
t
=
−
1
ρ
∇
p
n
+
1
{\displaystyle {\frac {\mathbf {u} ^{n+1}-\mathbf {u} ^{*}}{\Delta t}}=-{\frac {1}{\rho }}\,\nabla p^{n+1}}
to make clear that the algorithm is really just an operator splitting approach in which one considers the viscous forces (in the first half step) and the pressure forces (in the second half step) separately.
Computing the right-hand side of the second half step requires knowledge of the pressure,
p
{\displaystyle \,p}
, at the
(
n
+
1
)
{\displaystyle \,(n+1)}
time level. This is obtained by taking the divergence and requiring that
∇
⋅
u
n
+
1
=
0
{\displaystyle \nabla \cdot \mathbf {u} ^{n+1}=0}
, which is the divergence (continuity) condition, thereby deriving the following Poisson equation for
p
n
+
1
{\displaystyle \,p^{n+1}}
,
∇
2
p
n
+
1
=
ρ
Δ
t
∇
⋅
u
∗
{\displaystyle \nabla ^{2}p^{n+1}={\frac {\rho }{\Delta t}}\,\nabla \cdot \mathbf {u} ^{*}}
It is instructive to note that the equation written as
u
∗
=
u
n
+
1
+
Δ
t
ρ
∇
p
n
+
1
{\displaystyle \mathbf {u} ^{*}=\mathbf {u} ^{n+1}+{\frac {\Delta t}{\rho }}\,\nabla p^{n+1}}
is the standard Hodge decomposition if boundary condition for
p
{\displaystyle \,p}
on the domain boundary,
∂
Ω
{\displaystyle \partial \Omega }
are
∇
p
n
+
1
⋅
n
=
0
{\displaystyle \nabla p^{n+1}\cdot \mathbf {n} =0}
. In practice, this condition is responsible for the errors this method shows close to the boundary of the domain since the real pressure (i.e., the pressure in the exact solution of the Navier-Stokes equations) does not satisfy such boundary conditions.
For the explicit method, the boundary condition for
u
∗
{\displaystyle \mathbf {u} ^{*}}
in equation (1) is natural. If
u
⋅
n
=
0
{\displaystyle \mathbf {u} \cdot \mathbf {n} =0}
on
∂
Ω
{\displaystyle \partial \Omega }
, is prescribed, then the space of divergence-free vector fields will be orthogonal to the space of irrotational vector fields, and from equation (2) one has
∂
p
n
+
1
∂
n
=
0
on
∂
Ω
{\displaystyle {\frac {\partial p^{n+1}}{\partial n}}=0\qquad {\text{on}}\quad \partial \Omega }
The explicit treatment of the boundary condition may be circumvented by using a staggered grid and requiring that
∇
⋅
u
n
+
1
{\displaystyle \nabla \cdot \mathbf {u} ^{n+1}}
vanish at the pressure nodes that are adjacent to the boundaries.
A distinguishing feature of Chorin's projection method is that the velocity field is forced to satisfy a discrete continuity constraint at the end of each time step.
General method
Typically the projection method operates as a two-stage fractional step scheme, a method which uses multiple calculation steps for each numerical time-step. In many projection algorithms, the steps are split as follows:
First the system is progressed in time to a mid-time-step position, solving the above transport equations for mass and momentum using a suitable advection method. This is denoted the predictor step.
At this point an initial projection may be implemented such that the mid-time-step velocity field is enforced as divergence free.
The corrector part of the algorithm is then progressed. These use the time-centred estimates of the velocity, density, etc. to form final time-step state.
A final projection is then applied to enforce the divergence restraint on the velocity field. The system has now been fully updated to the new time.