Missing boundary conditions in splitting scheme for Navier Stokes equations

Hello, consider this example of Navier Stokes equations in a channel with an obstacle. The fluid is in a rectangular domain with a circular hole (\Omega), with boundaries \partial \Omega_{\text{L}}, \partial \Omega_{\text {R}}, \partial \Omega_{\text {T}}, \partial \Omega_{\text {B}} (left, right, top and bottom edges of the rectangle). The obstacle boundary is \partial \Omega_\text{O}. The fluid velocity is \bf{v} and pressure is p.

Consider these boundary conditions (BCs):

{\bf v} = {\bf v}_{0} \text{ on } \partial \Omega_\text{L} \cup \Omega_\text{R} \cup \Omega_\text{B}
\sigma_{ij} \hat{n}_j = t_i \text{ on } \partial \Omega_\text{O} \cup \partial \Omega_\text{T}
p = p_0 \text{ on } \partial \Omega_\text{T} \text{ (1)}.

The number of BCs is enough to fix the solution of the problem, but there is an issue when I try to solve it with the splitting scheme reported here.

The first step (where one solves for the approximate velocity \overline {\bf v}) works fine. However, in the second step, where one solves for the pressure increment \phi \equiv p^{n-1/2} - p^{n-3/2}, we have a this PDE for \phi:

\nabla^2 \phi = \frac{\rho}{\Delta t} \vec{\nabla}\cdot \overline{\bf v}.

In the boundary parts where \bf v satisfies Dirichlet BCs, \phi satisfies a Neumann BC:
\hat{n} \cdot \vec{\nabla} \phi = 0 \text{ on } \partial \Omega_\text{L} \cup \Omega_\text{R} \cup \Omega_\text{B}.
Also, the Dirichlet BC (1) implies
\phi = 0 \text{ on } \partial \Omega_\text{T}.

But the Poisson equation for \phi needs also a BC on \partial \Omega_\text{O}. Do you know how to obtain this missing BC?

Thank you !

Strong boundary conditions on pressure for Navier-Stokes isn’t really meaningful, see for instance Gresho 1987: https://onlinelibrary.wiley.com/doi/abs/10.1002/fld.1650071008

Of course, if you want to “cheat”, you could solve for the pressure rather than the correction of the pressure, which straight-up gives you a Dirichlet BC on pressure.
This is for instance done in the old Oasis implementation:

If you really really want to keep a strong pressure bc, I would suggest setting the exact bc on your initial pressure (p^*), such that the boundary condition for the correction becomes \phi=0.

Wait, aren’t you now asking exactly the question I answered in Pressure solution is not unique in splitting scheme for Navier Stokes equations - #4 by Stein …?

No, because here there is the Dirichlet BC \phi = 0 on \partial \Omega_{\text T}. So, unlike that post, here the solution of the Poisson-like equation for \phi is determined uniquely.

Right, but my anwser in post 4 of that tread refered to the condition to impose on \phi for the natural bounday where you prescribe a traction, which is your question right now, isn’t it?

You seem to have a missconception about what the traction boundary condition of the Navier-Stokes equations entails. There are not two separate conditions, as you’re stating

That is really not correct.

Per my other anser, the first conditions writes out as
2\mu \nabla^s \boldsymbol{u} \cdot \boldsymbol{n} - p \boldsymbol{n} = \boldsymbol{t}_N

So you see there already is a pressure in that statement. You cannot add another condition on the pressure on that same boundary

The way to think about that is that, once you have solved for u, this becomes a pressure Dirichlet condition through:

p = (2\mu \nabla^s \boldsymbol{u} \cdot \boldsymbol{n}) \cdot \boldsymbol{n} - \boldsymbol{t}_N \cdot \boldsymbol{n}

I don’t see why they are implemented all the time though, see for example ‘[…] and a pair of boundary conditions for the pressure at the inflow and outflow boundaries’ here.

I can’t answer for the choices made by others up to over a decade ago.
Most commonly, people do it because it might make physical sense, as you have pressure data from an experiment.

For coupled schemes, it is not that problematic to set pressure conditions, in the sense that you might pick the “wrong” function space, but you know what you get out. Doing the same for splitting schemes is more tricky, as you would have to go through all of the mathematics to see if it makes sense.

Furthermore, if you have more than a single inlet/outlet problem, one usually enforces pressure differences at outlets through traction, as @Stein described.

See for instance: Pressure boundary conditions for blood flows | Chinese Annals of Mathematics, Series B | Springer Nature Link
where they consider artificial inlet/outlets with a pressure condition.
See for instance section 6.4.

Furthermore, a detailed breakdown of different splitting schemes can be found at: https://www.uio.no/studier/emner/matnat/math/MEK4470/data/lecturenotes.pdf
or
https://www.math.ntnu.no/preprint/numerics/2010/N5-2010.pdf

1 Like