CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   CHANNEL FLOW: a question and a request (

Carlos August 19, 2002 10:53

CHANNEL FLOW: a question and a request

I have one "stupid" question and one demand:

Question number one:

I have created a code for the steady Navier-Stokes equations, and it seems to me that it gives me good results for the velocity, but for the pressure, he gives me the value zero everywhere. I left in the exit "free outflow" Boundary condition (Pressure gradient +pression) *normal = 0., and for the inlet, the usual parabolic profile. I solve the discretized problem with an iterative method (of type Schur -Complement). The question is: for this type of Boundary conditions, which type of pressure one has to find out? What type of "predicted" pressure is well adapted as initial value in the iterative process?


Question number two: Has anybody a FORTRAN77 file with an implementation of the GMRES solver method for a System Ax=B? Because I have one but I have a suspect of their performances

....Okay, Thank You very Much


versi August 19, 2002 23:20

Re: CHANNEL FLOW: a question and a request
Why not give prescribed pressure at outlet?

Paul August 19, 2002 23:32

Re: CHANNEL FLOW: a question and a request
Hi, Carlos,

1) If the velocity is correct, check your pressure to

make sure if it is zero or not.

2) A simple boundary condition (gradient of pressure = 0 at the outlet, prescribed velocity profile at inlet) should give you good result.

3) Use a few simple linear systems to test you GMRES module. You can also get the subroutine from Netlib or elsewhere. If it works for such system, it should also works for your NSe.



Carlos August 20, 2002 15:22

Re: CHANNEL FLOW: a question and a request
Thank you by your answers. Indeed, for the canal plan, I impose parabolic profile for the entry, zero for walls, but NOTHING for the pressure, and as result, I obtain parabolic profile everywhere, but for the pressure, a " zero " everywhere. One said to me that the fact of putting as condition ( Deformation+pression)* normal=0 gives exactly the idea of an outside pressure (and eventually zero), but what me surprise it is the fact of obtaining pressure zero everywhere, being given that in my calculations for the speed I use the speed as "slave" later to resolve equations for the pressure " Bt*inverse (S) B*p=F...



Andrea Panizza August 23, 2002 05:55

Re: CHANNEL FLOW: a question and a request
Hello carlos, fortran77 code GMRES can be found in the libraries dftemplates.tgz (double precision) and sftemplates.tgz (single) at The files are gmres.f and gmresrevcom.f. For what it concerns your code, you are solving incompressible steady NVs in a plane channel with constant area duct, aren't you? Then pressure has a constant negative pressure gradient, and cannot be uniformly zero, but decreases linearly from inflow to outflow. Actually, this is strictly true for infinitely long ducts or equivalently ducts in which periodic b.c. are imposed on velocity only <=> Poiseuille flow, but it should hold in your case, provided that H/L <<1 where L is the plane channel length and H its width. So I am surprised than you can get the right velocity, even though the pressure is wrong: you should have a velocity field whose divergence is non zero. Therefore, I would suggest you to check that the assigned boundary velocities are correct, and also that, _at_convergence_ , mass is conserved both globally and locally down to your prescribed tolerance (e.g., check differences between mass flow at inlet and mass flow at outlet, and checkl divergence in any cell). I am also very interested in your choice of a Schur Complement method for the treatment of pressure: could you please provide further details and references on your implementation? I guess that you start with a trial pressure field and 1) Solve momentum equations for velocity, considering p as a right hand side term, by GMRES and not CG, since, due to convection terms, the coefficient matrix is not symmetrical. 2) With the new velocity, you calculate the divergence of the velocity field and add it to the old pressure, multiplied by some factor beta. 3) With the new pressure, you go back to point 1)and iterate to convergence. Am I correct?

Goodbye, Andrea

All times are GMT -4. The time now is 16:31.