CFD Online Logo CFD Online URL
Home > Forums > Main CFD Forum

Poisson BC's

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree1Likes
  • 1 Post By Dean Schrage

LinkBack Thread Tools Display Modes
Old   May 17, 2001, 16:47
Default Poisson BC's
Posts: n/a
Hi to all,

while trying to implement the pressure equation (Poisson) and enforce continuity in order to solve the incompressible Euler equations a choice on the boundary conditions type must be done.

Either Dirichlet or Neumann, what it is for sure is that BC's for the pressure must be prescribed in all the borders of the domain of study. But this is not the same for the fluid-dynamic problem, one must prescribe conditions at the inlet with care (and not to overspecify the problem) without knowing what it is happening downstream.

My question is: How can one specify BC's to solve Poisson equation at all borders without knowing the solution of the fluid-dynamic problem???

Any help will be good

  Reply With Quote

Old   May 17, 2001, 18:20
Default Re: Poisson BC's
Posts: n/a
The BC's for pressure depend on the ones you use for the normal velocity. When the normal velocity is imposed (at a wall or at the inlet), a Neumann BC prevails for the pressure. When the velocity (or mass flow) is free, a dirichlet BC is imposed to the pressure (usualy it is at an outlet).

Now, depending on the projection method you use (SIMPLE, SIMPEC, SIMPLER, Chorin projection-1, Chorin's projections-2....), the NEUMAN BC for the pressure (or correction of pressure) as to be such that the velocity at the end of the time step will be divergence free.

For more info on pressure BC's, you should look for some of the books written by Grasho and Sani.

  Reply With Quote

Old   May 18, 2001, 04:40
Default Re: Poisson BC's
Dean Schrage
Posts: n/a
I am writing a general purpose CFD code based on a pressure poissons equation (PPE) formulation. The solutions are obtained with an ADI-Brian method with the PPE parabolized to include an artifical compressibility. I think your question is really quite simple. Basically all you do is obtain the velocity field based on an initial pressure field (initially isobaric, all zeros for example). The update in u,v,w is applied to the PPE BC formulation. u,v,w change because of the BCS inposed by momentum equations, e.g. inflow velocity boundary, etc. See below. After advancing the PPE solution, you have a revised P field. Solve u,v,w again and repeat until the divergence of the velocity field is acceptably small.

As I mentioned, I use an ADI formulation. This requires that the elipticity of the pressure field be removed. By adding a time derivative term to the PPE, it is parabolized. It looks like a heat equation and it can be routed to an ADI solver. Momentum - no problem to parabolize either. Now all states [u,v,w,T,P] ^T are parabolized. Bottom line is a CFD solver that is very fast and requires no iteration.

BCs on PPE. This is also very conventional. Combination of Neumann and Dirichlet. Example: outflow velocity boundary is Neumann in velocity but Dirichlet in Pressure (set P = 0 to outlet). Inflow BC is Dirichlet in u and v, but Neumann in pressure. Same for walls, Dirichlet in V = 0 and Neumann in P.

Neumann on all walls for P? This is a pain. You must adjust the interior source to keep the pressure integration from floating. Must maintain the Neumann condition numerically. But this arrangement only happens on completely closed systems like the cavity driven flow problem. Not too conventional.

How to impose a Neumann P BC? Pretty conventional. Compute a control surface state for each CV. The value of the CS state is computed from the CV value and the gradient solved. The gradient is determined from the Neumann formulation for the particular state. Example: T Neumann condition is just a heat flux BC, that is a prescribed temperature gradient.

(T_CS - T_CV) / dx = GRAD(T) BC

Solve for T_CS given the interior solution of T_CV i

for pressure the BC (gradient normal to the wall en):

GRAD(P) dot en = -rho(V' + GRAD V [V]) + mu GRAD.GRAD(V) ) dot en

This BC is somewhat tricky to implement. Must watch en signs and so on. Also very tricky to implement in ADI but still doable.

I can send some examples if you are interested

best regards

o_mars_2010 likes this.
  Reply With Quote


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Poisson equation,Neumann BCs zhangweisnoopy Main CFD Forum 37 April 23, 2015 22:46
Dealing with BC's in OF 1.6 vkrastev OpenFOAM Running, Solving & CFD 5 September 4, 2012 11:58
BCs for Pressure Correction Equation (SIMPLE) Bharath Somayaji Main CFD Forum 1 March 1, 2006 07:12
Recommendation of a good poisson solver Quarkz Main CFD Forum 2 December 2, 2005 10:12
Poisson Equation in CFD Maciej Matyka Main CFD Forum 9 November 10, 2004 12:30

All times are GMT -4. The time now is 17:29.