Off topic - Some advice on solving Navier-Stokes with FiniteDifference

William A. Perkins william.perkins at
Wed Aug 12 10:19:07 CDT 2009


There are two ways that I know of to deal with pressure checker
boarding: staggered grids or some form of Rhie-Chow interpolation.
IMO, these are simple only for uniform, Cartesian grids.  For grids
that are curvilinear, unstructured, non-uniform, and/or
non-orthogonal, things get real complicated. There may be other
methods, but something is required.

Regarding boundary conditions, I would suggest this text book:

    H. K. Versteeg and W. Malalasekera. An Introduction to
    Computational Fluid Dynamics, the Finite Volume Method. 2nd
    edition. Prentice-Hall. 2007

While this book uses the finite volume method, the explanation of
boundary conditions and staggered grids is very good and relatively
easy to interpret for finite difference.  I would also recommend

    Joel H. Ferziger and Milovan Peric. Computational Methods for
    Fluid Dynamics. Springer-Verlag, 3rd edition, 2002.

This is a little more general with regard to method discussing finite
difference and finite volume, but still settling on finite volume.  

My $0.02: I question the use of finite difference.  For Navier-Stokes,
the use of finite volume is much more prevalent in commercial and
research codes.  If your student follows Versteeg and Malalasekera a
simple, working, staggered grid FV code could be built in a very short
time.  If something more complicated is needed, it's probably
explained in Ferziger and Peric.  

Also My $0.02: Unless the point of your student's work is to
experience building her own code, why not download something like
OpenFOAM ( and just use it?  I
expect the effort to learn something like OpenFOAM for a simple
application will be much less than writing a new code.

Hope this helps.


>>>>> "Stephen" == Stephen Wornom <stephen.wornom at> writes:

    Stephen> Shengyong wrote:
    >> Hi, Farshid
    >> Maybe she should use the staggered grid method which is very simple to 
    >> implement.
    Stephen> Does it remain simple for curvilinear meshes?
    Stephen> Stephen
    >> On Tue, Aug 11, 2009 at 5:16 AM, Farshid Mossaiby <mossaiby at 
    >> <mailto:mossaiby at>> wrote:
    >> Hi all,
    >> Sorry for this off-topic post.
    >> I am helping a master studnet which is working on solving
    >> Navier-Stokes equation with Finite Difference method. She is
    >> trying to eliminate spourious pressure modes from the solution.
    >> She needs to know some details that are not usually found in the
    >> papers but important when programming, e.g. boundary condition for
    >> pressure. If someone has expertise on this or know a *simple* FD
    >> code, I would be thankful to let me know.
    >> Best regards,
    >> Farshid Mossaiby
    >> -- 
    >> Pang Shengyong
    >> Solidification  Simulation Lab,
    >> State Key Lab of  Mould & Die Technology,
    >> Huazhong Univ. of Sci. & Tech. China

Bill Perkins
Research Engineer
Hydrology Group

Pacific Northwest National Laboratory
902 Battelle Boulevard
P.O. Box 999, MSIN K9-36
Richland, WA  99352 USA
Tel:  509-372-6131
Fax: 509-372-6089
william.perkins at

More information about the petsc-users mailing list