• Register
PhysicsOverflow is a next-generation academic platform for physicists and astronomers, including a community peer review system and a postgraduate-level discussion forum analogous to MathOverflow.

Welcome to PhysicsOverflow! PhysicsOverflow is an open platform for community peer review and graduate-level Physics discussion.

Please help promote PhysicsOverflow ads elsewhere if you like it.


PO is now at the Physics Department of Bielefeld University!

New printer friendly PO pages!

Migration to Bielefeld University was successful!

Please vote for this year's PhysicsOverflow ads!

Please do help out in categorising submissions. Submit a paper to PhysicsOverflow!

... see more

Tools for paper authors

Submit paper
Claim Paper Authorship

Tools for SE users

Search User
Reclaim SE Account
Request Account Merger
Nativise imported posts
Claim post (deleted users)
Import SE post

Users whose questions have been imported from Physics Stack Exchange, Theoretical Physics Stack Exchange, or any other Stack Exchange site are kindly requested to reclaim their account and not to register as a new user.

Public \(\beta\) tools

Report a bug with a feature
Request a new functionality
404 page design
Send feedback


(propose a free ad)

Site Statistics

205 submissions , 163 unreviewed
5,079 questions , 2,229 unanswered
5,348 answers , 22,758 comments
1,470 users with positive rep
819 active unimported users
More ...

  How do I enforce the no-slip boundary condition in time dependent incompressible pipe flow?

+ 5 like - 0 dislike

This is a technical problem which must have been solved already. It won't be in beginners textbooks but there should be a solution somewhere. I welcome reading suggestions. Maybe someone with experience in solving Navier-Stokes equations numerically can help me. Here goes:

An incompressible fluid flowing down a pipe obeys the Navier-Stokes equations

$$\partial_t \mathbf{v} + (\mathbf{v} \cdot \nabla) \mathbf{v} = \nu \Delta \mathbf{v} - \nabla P \, ,$$

and the pressure is related to the velocity field by the incompressibility condition, $\nabla \cdot \mathbf{v} = 0$. When the flow is time dependent one usually specifies the velocity field at $t=t_0$, $\mathbf{v}(t_0,\mathbf{x}) = \mathbf{v}_0(\mathbf{x})$. The no-slip boundary condition requires the velocity to vanish on the edges of the pipe for all time $\mathbf{v}(t,r=R,\theta,z) = 0$. I use cylindrical coordinates $\mathbf{x}=(r \cos{\theta},r \sin{\theta},z)$. $R$ is the radius of the pipe.

In practice however the pressure must be expressed in terms of the velocity field at all times. To the best of my knowledge this is achieved by taking the divergence of Navier-Stokes equations. Using the incompressibility condition one can write this as

\nabla \cdot \left[(\mathbf{v} \cdot \nabla) \mathbf{v}\right] = (\partial_i v_j) (\partial_j v_i) = -\nabla^2 P \, . && (*)

Then the time evolution is computed as follows: Assume that instead of the no-slip boundary condition we specifiy the pressure on the boundary for all times, $P(t,R,\theta,z) = P_R(t,\theta,z)$. Then the initial velocity field $\mathbf{v}_0(\mathbf{x})$ is changed by a small time increment from $t=t_0$ in the following way,

\begin{align}\mathbf{v}(t_0+dt,\mathbf{x}) = \mathbf{v}_0(\mathbf{x}) + dt \left[ - (\mathbf{v}_0 \cdot \nabla) \mathbf{v}_0 + \nu \Delta \mathbf{v}_0 - \nabla P(t_0) \right]\, . && (**) \end{align}

The pressure at time $t_0$ is then the solution of an inhomogenous Laplace problem with the specified boundary condition given by $P_R(t_0,\theta,z)$. Specifying the pressure on the boundary $P_R(\theta,z)$ is mathematically fine. We can use this to integrate the flow equations for all times by iterating the procedure that I just outlined. It is however not very physical. We usually control the velocity field on the boundary and prefer to use the no-slip boundary condition on the velocity field.

One then goes back to the no-slip boundary condition by tuning $P_R(t_0,\theta,z)$ in such a way that $\mathbf{v}_0(t_0+dt,R,\theta,z)=0$. If we choose initial conditions such that $v_0(R,\theta,z)=0$ we extract the pressure through

$$ \nu \Delta \mathbf{v}_0(R,\theta,z) = \nabla P(t_0,R,\theta,z) \, .$$

My problem is the following: How can we be sure that this last step is possible? On the left-hand side we have an arbitrary (?) vector. It may not be possible to write it as the gradient of a scalar field. It looks like the no-slip boundary condition contains more information than the specification of $P(t,R,\theta,z) = P_R(t,\theta,z)$.

Edit (18 sept 2015): An obvious solution to my problem would be to consider a potential velocity field,
$$\mathbf{v} = \mathbf{\nabla} \phi \, .$$
Indeed, in this case we can simply identify the Laplacian of the potential with the pressure on the boundary,
$$\nu \nabla^2 \phi_0(R,\theta,z) = P(t_0,R,\theta,z) \, . $$

This is however a strong restriction which I do not want since I am interested in the transition to turbulence.

Edit (8 Oct 2015): I do not want to actually solve this problem numerically. I know that the scheme that I propose here is naive. What I want is to be convinced that the solution exists, is smooth and obeys the no-slip boundary conditions for all times.

asked Apr 3, 2015 in Computational Physics by Steven Mathey (350 points) [ revision history ]
edited Jul 7, 2016 by Steven Mathey

I am not an expert on fluid flow, but reading through your general argument, there is something strange about the number of boundary conditions you impose on the boundary of the pipe.

The no-slip condition is a condition for the 3 components of the velocity, so replacing it by a condition on the pressure you'd also require 3 boundary conditions. Thus in addition to specifying the boundary pressure it seems to me that you also need to impose as boundary conditions the integrability condition for your final equation, $\nabla \times$ left hand side =0. 

I agree with you and that is the essence of my question. It looks like imposing a scalar boundary condition (on the pressure) is enough to solve the problem and completely determine the flow. However, the no-slip boundary condition is a vectorial condition and is stronger. I can always choose initial conditions (at t=0) where the flow is "no-slip", but I don't see why this property should be conserved along the time evolution.

In the context of a numerical atmospheric general circulation model, it is explained in section 2b of this paper that implementing the no-slip boundary contidion boils down to ensure that the sum of internal and kinetic energy of a fluid column is not changed by surface friction.

Yes, that seems very reasonable indeed. It does not solve my problem, though.

I have a deterministic equation of motion that can be fully solved by specifying a scalar function (the pressure) on the boundary. Why is it possible to impose a vectorial boundary condition ($\vec{v}=0$) instead?

I can always tune the pressure to make sure that the component of the velocity field that is normal to the boundary vanishes ($\vec{v} \cdot \hat{n}=0$). No fluid flows past the boundary. But then I have exhausted the freedom that I have to choose the boundary condition. It would be a very nice coincidence that the full velocity field vanishes at the boundary.

1 Answer

+ 2 like - 0 dislike

I have discussed this problem with someone who solves this type of problems numerically and got the following response:

The expression on the right-hand-side of (**) in my question is evaluated at $t_0+dt$ instead of $t_0$. This together with (*) provides two equations for $\mathbf{v}(t_0+dt)$ and $P(t_0+dt)$,

&\mathbf{v}(t_0+dt,\mathbf{x}) + dt \left[(\mathbf{v}(t_0+dt) \cdot \nabla) \mathbf{v}(t_0+dt) - \nu \Delta \mathbf{v}(t_0+dt) + \nabla P(t_0+dt) \right] \\ & \qquad = \mathbf{v}_0(\mathbf{x})\, , \\
&\left[\partial_i v_j(t_0+dt)\right] \left[\partial_j v_i(t_0+dt)\right] = -\nabla^2 P(t_0+dt) \, .

These can only be solved if the pressure as well as the velocity field are fully specified at the boundaries because they are second order differential equations.

This answer is satisfying to me. It does however not tell me what I am doing wrong with my original approach. Any help would be welcome.

answered Jul 7, 2016 by Steven Mathey (350 points) [ revision history ]
edited Jul 7, 2016 by Steven Mathey

Your answer

Please use answers only to (at least partly) answer questions. To comment, discuss, or ask for clarification, leave a comment instead.
To mask links under text, please type your text, highlight it, and click the "link" button. You can then enter your link URL.
Please consult the FAQ for as to how to format your post.
This is the answer box; if you want to write a comment instead, please use the 'add comment' button.
Live preview (may slow down editor)   Preview
Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
If you are a human please identify the position of the character covered by the symbol $\varnothing$ in the following word:
Then drag the red bullet below over the corresponding character of our banner. When you drop it there, the bullet changes to green (on slow internet connections after a few seconds).
Please complete the anti-spam verification

user contributions licensed under cc by-sa 3.0 with attribution required

Your rights