SPH -- Smoothed Particle Hydrodynamics

This is a part of CFD codes list, document which is regularly posted to sci.physics.computational.fluid-dynamics newsgroup.

Many thanks to Greg Lindahl.

Version: January 19, 1997


Summary: N-body, SPH & visualisation.

From Mario Antonioletti / mario@epcc.ed.ac.uk
Date: Fri, 28 October 1994

@string{aa   = "Astron.~Astrophys." }
@string{aass = "Astron. Astrophys. Suppl. Series" }
@string{aj   = "Astron.~J" }
@string{an   = "Astron.~Nachr." }
@string{ann  = "Ann.~Rev.~Astron.~Astrophys." }
@string{amm  = "App. Math. Modelling " }
@string{apj  = "Astrophys.~J." }
@string{apjs = "Astrophys.~J.~Suppl.~Series" }
@string{asss = "Astrophys.~Sp.~Science" }
@string{ca   = "Comments Astrophys." }
@string{cacm = "Comm.~ACM"}
@string{canm = "Comm. Appl. Num. Meth."}
@string{cmap = "Computers Math. Applic." }
@string{cpc  = "Comp.~Phys.~Comm." }
@string{cpr  = "Comp.~Phys.~Repts."}
@string{gafd = "Geophys.~Astrophys. Fluid~Dynamics"}
@string{jap  = "J.~Appl.~Phys." }
@string{jfl  = "J.~Fluid~Mech." }
@string{jcp  = "J.~Comp.~Phys."}
@string{jsp  = "Journal of Statistical Physics" }
@string{mn   = "Mon.~Not. R.~astr.~Soc." }
@string{mat  = "Math. Computation" }
@string{ns   = "New Scientist" }
@string{pr   = "Phys.~Repts."}
@string{pasj = "Publ.~Astron.~Soc.~Japan" }
@string{pasp = "Publ.~Astron.~Soc.~Pacific" }
@string{ptp  = "Prog.~Theor.~Phys." }
@string{ptr  = "Phil.~Trans.~R.~Soc.~Lond.~A"}
@string{phla = "Proc.~Roy.~Soc.~London.~A" }
@string{qj   = "Q.~Jl~R. astr.~Soc." }
@string{sa   = "Sov.~Astron." }
@string{siam = "SIAM~J. Numer. Anal."}
@string{sjs  = "SIAM~J. Sci. Stat. Comput."}

   author = {Steinmetz,Matthias and M\{u}ller, Ewald},
   howpublished = {submitted to Astronomy and Astrophysics},
   journal = aa,
   number = {1},
   pages = {391--410},
   title = {On the capabilities and limits of Smoothed Particle Hydrodynamics},
   volume = {268},
   year = {1992}

   author = {Nelson,Richard P. and Papaloizou, J.C.B.},
   howpublished = {preprint},
   title = {{Three Dimensional Hydrodynamic Simulations of Collapsing Prolate Clouds}}

   author = {Hernquist, Lars},
   journal = apj,
   month = {February},
   pages = {717--722},
   title = {{Some Cautionary Remarks About Smoothed Particle Hydrodynamics}},
   volume = {404},
   year = {1993}

   author = {Monaghan,J.J.},
   howpublished = {Department of Mathematics, Monash University},
   title = {SPH Meets the Shocks of Noh}

   author = {Monaghan,J.J.},
   howpublished = {Department of Mathematics, Monash University},
   title = {Application of the Particle Method SPH to Hypersonic Flow}

   author = {Benz,W.},
   journal = cpc,
   pages = {97--105},
   title = {{Applications of Smoothed Particle Hydrodynamics (SPH) to Astrophysical Problems}},
   volume = {48},
   year = {1988}

   author = {Benz,W. and Bowers,R.L. and Cameron,A.G.W. and Press,W.H.},
   journal = apj,
   pages = {647--667},
   title = {{Dynamic Mass Exchange In Doubly Degenerate Binaries. I. 0.9
	      adn 1.2 $M_\odot$}},
   volume = {348},
   year = {1990}

   author = {Bicknell,G.V.},
   journal = sjs,
   number = {5},
   pages = {1198--1206},
   title = {The Equations of Motion of Particles in Smoothed Particle Hydrodynamics},
   volume = {12},
   year = {1991}

   author = {Brookshaw,Leigh},
   school = {Monash University},
   title = {The Stability of Binary Systems and Rotating Stars},
   year = {1986}

   author = {Chapman,Simon J.},
   school = {University of Wales},
   title = {{Multiple Protostar Formation from Cloud-Cloud Collisions}},
   year = {1992}

   author = {Davies,J.R.},
   school = {University of Wales},
   title = {{Computer Simulations of Galaxy Formation}},
   year = {1991}

   author = {Nagasawa,M. and Miyama,S.M.},
   journal = ptp,
   pages = {1250--1272},
   title = {{Three-Dimensional Numerical Simulation of Interstellar Cloud-Cloud Collisions and Triggered Star Firmation. I. Head-on Collisions.}},
   volume = {78},
   year = {1987}

   author = {Lowenewtein,M and Mathews,W.G.},
   journal = jcp,
   pages = {414--428},
   title = {{Adiabatice Particlr Hydrodynamics in Three Dimensions}},
   volume = {62},
   year = {1986}

   author = {Phillips,G.J. and Monaghan,J.J.},
   journal = mn,
   pages = {883--895},
   title = {{A Numerical Method for Three-dimensional simulations of Collapsing, Isothermal, Magnetic Gas Clouds}},
   volume = {216},
   year = {1985}

   author = {Wood,David},
   journal = mn,
   pages = {201--218},
   title = {{Collapse and Fragmentation of Isothermal Gas Clouds}},
   volume = {194},
   year = {1981}

   author = {Theuns,T. and Rathsack,M.E.},
   journal = cpc,
   pages = {141--158},
   title = {{Calculating Short Range Forces on a Massively Parallel Computer: SPH on the Connection Machine}},
   volume = {76},
   year = {1993}

   author = {Pongracic,H. and Chapman,S.J. and Davies,J.R. and Disney,M.J. and
			Nelson,A.H. and Whitworth,A.P.},
   journal = mn,
   pages = {291--299},
   title = {{Computer Simulations of the Formation of Massive Protostar}},
   volume = {256},
   year = {1993}

   author = {Durisen,Richard H. and Gingold, Robert A. and Boss,Alan P.},
   journal = aj,
   pages = {281--308},
   title = {{Dynamic Fission Instabilities in Rapidly Rotating n=3/2 Polytropes: A Comparison of Results from Finite-difference and Smoothed Particle Hydrodynamics Codes}},
   volume = {305},
   year = {1986}

   author = {Evrad,A.E.},
   journal = mn,
   pages = {911--934},
   title = {{3D Cosmological Gas Dynamics}},
   volume = {235},
   year = {1988}

   author = {Fukunaga,Masataka and Tosa,Makoto},
   journal = pasj,
   pages = {469--484},
   title = {{Dynamics of a Self-Gravitating Gas Disk in a Ovally Distorted Gravitational Potential}},
   volume = {43},
   year = {1991}
   author = {Gingold,R.A. and Monaghan,J.J.},
   journal = mn,
   pages = {375--389},
   title = {{Smoothed particle hydrodynamics: theory and application to non-spherical stars}},
   volume = {181},
   year = {1977}

   author = {Gingold,R.A. and Monaghan,J.J.},
   journal = mn,
   pages = {481--499},
   title = {{Binary Fission in Damped Rotating Polytropes}},
   volume = {184},
   year = {1978}

   author = {Gingold,R.A. and Monaghan,J.J.},
   journal = mn,
   pages = {897--924},
   title = {{The Roche Problem for Polytropes in Central Orbits}},
   volume = {191},
   year = {1980}

   author = {Gingold,R.A. and Monaghan,J.J.},
   journal = jcp,
   month = jun,
   number = {3},
   pages = {492--453},
   title = {{Kernel Estimate as a Basis for General Particle Hydrodynamics}},
   volume = {46},
   year = {1982}

   author = {Gingold,R.A. and Monaghan,J.J.},
   journal = mn,
   pages = {461--475},
   title = {{The collapse of a rotating non-axisymmetric isothermal cloud}},
   volume = {197},
   year = {1981}

   author = {Gingold,R.A. and Monaghan,J.J.},
   journal = mn,
   pages = {715--733},
   title = {{On the fragmentation of Differentially Rotating Clouds}},
   volume = {204},
   year = {1983}

   author = {Goodman,Jeremy and Hernquist,Lars},
   journal = aj,
   pages = {637--655},
   title = {{Hydrodynamics of Collisions between binary stars}},
   volume = {378},
   year = {1991}

   author = {Hernquist, Lars and Katz,Neal},
   journal = aass,
   month = {June},
   pages = {419--446},
   title = {{Treesph: A Unification of SPH with the Hierarchical Tree Method}},
   volume = {70},
   year = {1989}

   author = {Lattanzio,J.C. and Monaghan,J.J. and Pongracic,H. and Schwartz,M.P.},
   journal = sjs,
   month = apr,
   number = {2},
   pages = {591--598},
   title = {{Controlling Penetration}},
   volume = {7},
   year = {1986}

   author = {Lowenstein,M. and Mathews,W.G.},
   journal = jcp,
   pages = {414--428},
   title = {{Adiabatic Particle Hydrodynamics in Three Dimensions}},
   volume = {62},
   year = {1986}

   author = {Lucy, Leon B.},
   journal = aj,
   month = {December},
   number = {12},
   pages = {1013--1924},
   title = {{A Numerical Approach to Testing the Fission Hypothesis}},
   volume = {82},
   year = {1977}
   author = {Monaghan,J.J.},
   journal = jcp,
   pages = {374--389},
   title = {{Shock Simulation by the Particle Method SPH}},
   volume = {52},
   year = {1982}

   author = {Monaghan,J.J. and Gingold,R.A.},
   journal = jcp,
   number = {2},
   pages = {374--389},
   title = {{Shock Simulation by the Particle Method SPH}},
   volume = {52},
   year = {1983}

   author = {Monaghan,J.J. and Lattanzio,J.C.},
   journal = aa,
   pages = {135--143},
   title = {{A Refined Method for Astrophysical Problems}},
   volume = {149},
   year = {1985}

   author = {Monaghan,J.J.},
   journal = pr,
   pages = {71--124},
   title = {{Particle Methods for Hydrodynamics}},
   volume = {3},
   year = {1985}

   author = {Monaghan,J.J. and Lattanzio,J.C.},
   journal = aa,
   pages = {207--211},
   title = {{Further studies of a fragmentation Problem}},
   volume = {158},
   year = {1985}

   author = {Monaghan,J.J. and Pongracic,H.},
   journal = {Applied Numerical Mathematics},
   pages = {187--194},
   title = {{Artificial Viscosity for Particle Methods}},
   volume = {1},
   year = {1985}

   author = {Monaghan,J.J.},
   journal = cpc,
   pages = {89--96},
   title = {{An Introduction to SPH}},
   volume = {48},
   year = {1988}

   author = {Monaghan,J.J.},
   journal = jcp,
   pages = {1--15},
   title = {{On the Problem of Penetration in Particle Methods}},
   volume = {82},
   year = {1989}

   author = {Monaghan, J.J.},
   journal = ann,
   pages = {543--74},
   title = {{Smoothed Particle Hydrodynamics}},
   volume = {30},
   year = {1992}

   author = {Pongracic,Helen},
   school = {Monash University},
   title = {{Numerical Modelling of Large Body Impacts}},
   year = {1988}
   author = {Schussler,M and Schmitt,D},
   journal = aa,
   pages = {373--379},
   title = {{Comments on Smoothed Particle Hydrodynamics}},
   volume = {97},
   year = {1981}

   author = {Theuns,Tom},
   address = {Brussels},
   month = jun,
   school = {Vrije Universiteit},
   title = {{Hydrodynamics of Encounters between Star Clusters and Molecular Clouds}},
   year = {1991}

   author = {Wada,Keiichi and Habe,Asao},
   journal = mn,
   number = {1},
   pages = {82--94},
   title = {{Rapid gas supply to a nuclear by a self gravitational instability in a weak barred potential}},
   volume = {258},
   year = {1992}

   author = {Simpson, James C.},
   journal = apj,
   pages = {822--831},
   title = {Numerical Techniques for Three-Dimensional Smoothed Particle
Hydrodynamics Simulations: Applications to Accretion Disks},
   volume = {448},
   year = {1995}


From jlu@cs.umr.edu

I'm new to this area. I heard (can be wrong) there is package
called PMD developed by Argone (a national lab close to
Chicago, IL.) I don't have details.

[Tried to find something out about this PMD package byt was unable to
find anyhing. If anyone would care to enlighten me please do so.]

Parallel Tree Codes

From Michael S. Warren / msw@qso.lanl.gov
Theoretical Astrophysics, T-6
Mail Stop B288
Los Alamos National Laboratory
Los Alamos, NM 87545
Office Phone: (505) 665-5023
FAX: (505) 665-4055

  John Salmon and I have several papers on the subject of parallel
tree codes.  Use World Wide Web http://qso.lanl.gov/ or anonymous ftp
to sampson.ccsf.caltech.edu/nbody for more information.
  Our parallel SPH code is working well, also.  We hope to have a
paper about it done soon.  Performance is better than 100
particles/processor/second (including gravity) on the CM-5 or Intel
Paragon.  We have run a few timestep benchmark on the 512 processor
Intel Delta with 16 million particles.

Hut's code on CM-2

From Magnus Selhammar / magnus@astro.uu.se

If I remember it correct, Theuns didn't include self
gravitation in is implementation. At least he didn't use
the Barnes Hut tree to calculate the gravitation.

I have made a SPH-code for the CM2 using the Barnes Hut
method. It is relatively straighforward if you know how
the CM2 works:). It can become rather messy, and certain 
care must taken to keep the communication from taking too 
much time. 

Multipole methods may not be the method of choice if you
want to include hydrodynamics. The particle-cell interaction
in the BH-method is more related to hydrodynamics than the 
cell-cell interaction. Multipole methods are also much more
complicated to program, and the gain in efficiency may using 
them may be lost due to programming and debugging problems.

TMC among others are doing research on multipole methods. 
Perhaps you don't want to compete with them, but rather
wait for their publications.

The best visualization tool you can use is probably 
IDL. The problem is that it takes some time to master.


Katz's SPH and TIPSY visualization package

Marios Dikaiakos / marios@cs.washington.edu
Dept. of Astronomy, FM-20
University of Washington
Seattle, WA 98195

Hi! Try xmosaic on http://www-hpcc.astro.washington.edu/ and you 'll
find lots of answers to your questions. Alternatively, you can get
some info by ftp-ing to ftp-hpcc.astro.washington.edu as anonymous and
seeing if there are any interesting papers there.

In UW, the Astronomers are using a very nice visualization tool called
TIPSY, written by Neal Katz and Tom Quinn. It's X-based and runs on
multiple platforms (including Sparcs).

In the web server you 'll find some info about TIPSY too.

N-body codes on CM-5

From bhatt@bellcore.com

Pangfeng Liu at DIMACS (pangfeng@dimacs.rutgers.edu) and I have
developed N-body codes on the CM-5.  In particular, we have implemented
Salmon's version of the Barnes-Hut algorithm.  The performance is
competitive with the Warren-Salmon implementations on the Delta.  The
code is written so that it is relatively easy to port other tree
algorithms (the Greengard/Rokhlin 3D adaptive FMM for example).

The following reports describe the implementation.

1.  P. Liu and S. Bhatt, Experiences with Parallel N-body simulations,
	to appear in the Proceedings of the 1994 ACM Symposium on
	Parallel Algorithms and Architectures.

2.  P. Liu, The parallel implementation of N-body algorithms, Ph.D.
	dissertation, Yale University, 1994.

We would be happy to provide our code to anyone interested in using it.

[I think their code is written in C.]

Another SPH archive?

From markus@octavia.anu.edu.au

I would be grateful if you could send me any info on Nbody and SPH
implementations and/or references that come your
way. As regards visualisation: We use AVS (commercial) as well as
pgplot, (gnuplot, sm, as you noted), vort (a 'movie' extension to the
PBMplus package), NCSA Imagetool has a few fans as well.

If you're interested I can find the main ftp sites for these
(I usually just archie for them).


Scott Kohn's parallel SPH3D code

From Scott R. Kohn skohn@cs.ucsd.edu
University of California, San Diego
Department of Computer Science and Engineering
9500 Gilman Drive
La Jolla, California 92093-0114

     As part of my work on a run-time library for parallel systems,
I implemented a 3d SPH code.  This code was originally provided to
me by John Wallin (jwallin@hubble.gmu.edu), who would be able to
provide you with details about the physics end of things.

     The code runs on most parallel platforms I have access to (CM5,
Paragon, workstations with PVM, single processor workstations, C-90)
and the performance is quite good.  (Although somewhat difficult
to parallelize by hand, the run-time system we've developed made it
relatively easy to parallelize the code.)

     As for visualization, I have written a couple C++ classes which
do visualization using basic X11 (works on sun4).  They don't do anything
fancy, but will draw lines and plot points.  In the 3d version, you can
rotate the view using the mouse buttons.  In fact, my parallel SPH code
uses these routines to do run-time visualization.

     Here is a sample piece of code for the SPH visualization:

   XWindow3 window(500, 500, "sph3d smoothed particle hydrodynamics");
   window.setScale(-SCALE, SCALE, -SCALE, SCALE, -SCALE, SCALE);
   while (window.checkButton() != EXIT_BUTTON_NUMBER)
      int n;
      float x[MAXPARTICLES][DIM], t;
      get_data(input, n, t, x);
      cout << "Particles: " << n << " Timestep: " << t << endl;
      window.drawBox(-BOUND, -BOUND, -BOUND, BOUND, BOUND, BOUND);
      window.drawPoints(x, MAXPARTICLES);
   while (window.checkButton() == EXIT_BUTTON_NUMBER);

Let me know if you would like some more information.  All of this code
is available at the following sites:

	ftp://ftp.sdsc.edu/pub/sdsc/parallel/LPARX (anonymous ftp)
	http://www-cse.ucsd.edu/users/skohn	   (www)
	also available from netlib

The sph3d code is in subdirectory sph3d and the display code in
directory graph.
If you download the entire distribution, the sph code is in
subdirectory sph3d.  Also in sph3d is a display program which does the
display of particles from trace files, something you might be
interested in for visualizing your work.

The user's manual goes into a lot of detail about the basis of the
programming model but does not explain the sph code.  You can use the
code and modify the physics (which some are doing) without knowing
anything about the LPARX parallel programming model.  Unfortunately,
we haven't yet published a paper about how we parallelized the sph3d
code.  That's on our list of thinks to do.

As far as the C++/Fortran language stuff, we tend to use C++ for the
management of data structures and Fortran for numeric performance.
This style gives you the best of both worlds: data structures and good
number-crunching performance.  The SPH3D code is written in a mixture
of C++ and Fortran.  We do not use HPF because HPF won't work for this
type of application.

For details on the physics of the SPH3D code, I suggest you contact
John Wallin (jwallin@hubble.gnu.edu).

Collection of papers related to N-body simulations

From Jaswinder Pal Singh / jps@samay.stanford.edu
Center for Integrated Systems, 213
Stanford University
Stanford, CA 94305-4070

See also his papers on Parallelization of Applications.

We have a couple of papers that you might be interested in.  They are
available by anonymous ftp from samay.stanford.edu in the papers/
directory. The ones of interest are:  nbody-sched.ps.Z nbody-arch.ps.Z
and fmm-sc93.ps.Z



[They also have a thesis there by Jaswinder Pal Singh entitled
"Parallel Hierarchical N-Body Methods and their implications for
Multiprocessors" which is worth reading.]

SPH visualization, bibliography, and more...

From Mario Antonioletti / mario@epcc.ed.ac.uk

A couple of parting shots. I have used Tipsy before and it's worth
using.  Documentation is a bit of a problem but Tom Quinn is working
on this. sm (supermongo) is also worth using but this is not in the
public domain (though relatively cheap) and you'll have to write your
own macros to do 3D - there already exists some 3D functionality
within it [if interested contact: Patricia Monger
monger@calliope.cis.mcmaster.ca].  xgobi is another worthwhile
tool. It's in the public domain (use archie to find your nearest

I have a bibtex format file of SPH papers I've come across - in no way
is it exhaustive but if anybody's interested I'll mail them a
copy. Thanks again to all those that replied. If anyone has anything
else to add please mail me. All the best,


Hugh Couchman's Adaptive Particle-Mesh N-body code

There is introduction, related paper, and source.

One Dimensional Smooth Particle Hydrodynamics

link to URL document and source

This is code for performing one dimensional gas dynamical simulations
using the technique known as smooth particle hydrodynamics. This code
was originally written as a teaching tool for the NASA/Goddard summer
school on Higher Performance Computing in the earth and space
sciences. Some of its features include:

 o A routine to compute a thermal diffusion term. 
 o The ability to advance in time wither the specific internal energy
   or an entropic function. 
 o The ability to choose different artificial viscosities. 
 o The ability to choose from among several initial conditions. 

The code is written in Fortran 90 and has only been tested on the
Maspar MP-2 at Goddard so its performance or correctness on other
machines is unknown.

If you find any bugs contact: Kevin Olson, olson@jeans.gsfc.nasa.gov.

NEMO - An Extendible Stellar Dynamics Toolbox

NEMO package maintained by Peter Teuben.

NEMO is an extendible Stellar Dynamics Toolbox.  It has various programs
to create, integrate, analyze and visualize N-body like systems.  In
addition there are various tools to operate on images, tables and
orbits, including FITS files to export/import to/from other astronomical
data reduction packages.  We also advertise other software packages,
which try and solve similar problems. 

Richard Gerber's Codes

The codes will be available in January '95. For current information see Gerber's home page or contact him directly via e-mail, gerber@pokey.arc.nasa.gov.

MPA Galaxy Formation Group

A number of movies illustrating work done by Galaxy Formation Group.
Well, they certainly have some software...

Eric Tittley's Large Scale Structure on the Net

Monash Astrophysics

Smooth Particle Hydrodynamics Simulations of Deflagrations in Supernovae

Cosmological Simulations with TreeSPH

Smooth Particle Hydrodynamical Simulations of Protostellar Jets

Cardiff Star Formation Group

Fast Particle Algorithms for Computational Fluid Dynamics

Zdzislaw Meglicki, PhD thesis

A doctoral dissertation, "Analysis and Applications of Smoothed
Particle Magnetohydrodynamics", which has been recently reviewed and
approved by the ANU Standing Committee of the Council of the
University, has been placed on line. Most of the material covered by
the dissertation has already been published. But interested
researchers will find much detail in the dissertation, which is
usually not covered in papers.

The dissertation has been split into two volumes available as:

Volume 1:
	4.5 MB
Volume 2:
	0.8 MB

The dissertation covers the following issues:

Volume 1:

	The Basic Formalism
	The Verification of SPH and Weighted Differences Method
	Coding (vectorisation and CM algorithms)
	3D Structure of Accretion Disks
	Gravitational Collapse of a Magnetised Vortex (a model of 
	   the Galactic Centre)
	Comparison with Zeus3D

Volume 2:

	A 3D Model of a Tokamak Based on the Maschke-Perrin Solution

Excerpts from referees' comments are include below:

Referee 1: It is my assessment that this thesis represents a
    significant and carefully executed body of work. Unusual attention
    has been given to the derivation of the numerical equations and
    their relations or similarities to other techniques. While others
    have developed codes based on the SPH technique to simulate
    megneto-hydrodynamic flows, this work figures among the best
    documented and tested. This is very important as this numerical
    method is still somewhat controversial. 
Referee 2: This thesis is a comprehensive and careful study of the
    accuracy of SPH estimation of gradients and the application of SPH
    to the simulation of magnetohydrodynamic phenomena. I read it with
    great interest. In respect of the accuracy of SPH, which occupies
    the first two chapters, [the author] has made a careful study of aspects
    of this problem. As he rightly observes, SPH is a technique for
    working with disordered grids or nodes, and it may by implemented in
    [various] ways. [...] [Author's] work on MHD problems is a
    significant contribution to a difficult astrophysical problem. He
    has tackled this problem very professionally with careful comparison
    against the Zeus code. 
Referee 3: For the first time [SPH has been] rigorously examined
    [...]. Merits and limits of the SPH are mathematically and
    objectively well analysed through the definition of a "figure of
    merit". Valuable improvement of the SPH is also proposed by an
    appropriate reformulation of the SPH by utilization of the Weighted
    Differences Method. [...] Astrophysical phenomena, here studied, are
    well understood and clearly exposed. Interesting results have been
    obtained studying the accretion disk structure in binary systems, as
    the Karman vortex formation. The issue of the magnetised cloud
    collapse in the galaxy centre is also very well analysed, with many
    informations on numerical and astrophysical details. Code testing is
    very accurate, in particular I find the comparison with the
    Maschke-Perrin solution extremely interesting. Comparison between
    SPH and Zeus code is very well analysed and discussed. 


(mirror site in UK) is an adaptive particle-particle, particle-mesh plus smoothed
particle hydrodynamics code developed by

     Hugh Couchman, University of Western Ontario 
     Frazer Pearce, University of Sussex 
     Peter Thomas, University of Sussex

Mario's Home Page