Beruflich Dokumente
Kultur Dokumente
Numerical Implementation
Introduction
The SPH formulation in the form of the Navier-Stokes equations was covered in previous
lectures.
We have ordinary differential equations (ODE's) with respect to time which can be numerically
integrated.
A number of implementation issues are important for realistic simulations
Zero-energy mode
Particle interactions
Projects
This section will show how to develop a 3-D SPH code and will be applied to a
simple 1-D problem, the shock tube and 3-D planet collisions.
Projects 1-3:
Implement an N-body integrator to study the Trojan satellites of Jupiter.
Implement a simple 1-D SPH code to reproduce the results of the one
dimensional shock wave.
Implement a basic 3-D SPH simulation tool to make collisions between two
Jovian type planets.
Zero-energy mode
When evaluating derivatives for regular particle distributions the derivative at the particle
can be zero and the derivative between neighboring particles can be anti-symmetric.
This can result in no strain and is generally undesirable.
This can be solved by staggering the particles, solving for velocity at one point and stress
at another.
Solid Boundaries
For particles near or on the boundary
only particles inside the boundary
contribute to the integral.
This is know as particle deficiency.
This gives incorrect solutions.
To solve this problem ghost or virtual
particles can be introduced at the
boundary to prevent unphysical
effects.
Type I: On boundary, contribute to
kernel and particle approximations for
real particles
Type II: Outside boundary, exert
repulsive force to prevent interior
particles from penetrating
Particle interactions
Nearest neighbors
In SPH, the smoothing function has compact
support so only nearest neighboring particles (NNP)
interact.
To find them NNP searching algorithms must be
used.
Three common types include:
All-pair search - compare each interaction
length with h to find neighbors - simple
but inefficient
Linked list algorithm - maintain a one off
list of neighbors - efficient but not dynamic
and requires a large list
Tree search algorithm - use a subdividing
tree search algorithm - efficient and
dynamic but more complex
Particle interactions
Pairwise interaction
Pairwise interaction can be used to avoid having to
use double loops when, for example, calculating
summation density.
When searching for nearest neighbor particles also
generate lists containing W and dW/dr for each
interacting pair together with lists containing the
particle indices.
The final calculation of density can then be carried
out using a single loop and the lists of data which is
very efficient.
However, this has a drawback of requiring large
storage for the lists.
Canup, 2004, Icarus 168:433
Project assignment
Implement an SPH code from scratch in matlab to solve the shock wave problem (don't
include artificial viscosity yet).
Speed of sound
SPH
Input
Time Integration
Single Step
Density
Direct Find
Search for
NN pairs
Kernel
Internal Force
EOS
Calculate
dv/dt and
de/dt
Calculate
W and W'
Output
Call all subfunctions and
sum the results
Art Viscosity
Calculate the
artificial viscosity
Add as many extra modules
as needed
where d is 1/h, 15/(7h2), and 3/(2h3) and =2 in 1-, 2-, and 3-D respectively.
If we take the derivative of this we have
3 dx
d 2 + R 2
2 h
1
2 dx
W (R,h) = d ( 2 R)
2
hr
and
0 R <1
1 R < 2
R2
Gravitational Potential
Use the following equations from the thesis: (P. Cossins, Chapter 3, Smoothed Particle
Hydrodynamics, Ph.D. Thesis, Leicester 2010) (Note notation, they use x we use R)
Conclusions
Hopefully, this has given you a well rounded introduction into the main components of N-body and
SPH techniques.