Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
SWIFTsim
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SWIFT
SWIFTsim
Commits
e9f791c8
Commit
e9f791c8
authored
12 years ago
by
Matthieu Schaller
Browse files
Options
Downloads
Patches
Plain Diff
Added a typical time step example to the theory file.
Former-commit-id: c912d939a101b470723915178f22827d6e1b94f8
parent
f1119be4
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
theory/latex/swift.tex
+117
-17
117 additions, 17 deletions
theory/latex/swift.tex
with
117 additions
and
17 deletions
theory/latex/swift.tex
+
117
−
17
View file @
e9f791c8
...
@@ -21,36 +21,41 @@
...
@@ -21,36 +21,41 @@
\chapter
{
General properties
}
\chapter
{
General properties
}
\label
{
chap:intro
}
\label
{
chap:intro
}
This chapter focuses on the general description of the different objects entering the
\swift
code and a qualitative
description of their interactions.
\section
{
Particles and interactions
}
The
\swift
code follows the model of
\eagle
and uses four different types of particles to represent the different
The
\swift
code follows the model of
\eagle
and uses four different types of particles to represent the different
objects present in the Universe. These different types with their
\gadget
names are summarized in table
objects present in the Universe. These different types with their
\gadget
names are summarized in table
\ref
{
tab:parttypes
}
.
\ref
{
tab:parttypes
}
.
\begin{table}
[h]
\begin{table}
[h]
\centering
\centering
\label
{
tab:parttypes
}
\begin{tabular}
{
|l|l|l|
}
\begin{tabular}
{
|l|l|l|
}
\hline
\hline
\textbf
{
Object
}
&
\textbf
{
\gadget
name
}
&
\textbf
{
Description
}
\\
\textbf
{
Object
}
&
\textbf
{
\gadget
name
}
&
\textbf
{
Description
}
\\
\hline
\hline
Gas
&
PartType0
&
Particles representing the gas.
\\
Gas
&
PartType0
&
Particles representing the gas.
\\
DM
&
PartType1
&
Particles representing the dark matter.
\\
DM
&
PartType1
&
Particles representing the dark matter.
\\
Star
&
PartType4
&
Paricles representing the stars.
\\
Star
&
PartType4
&
Par
t
icles representing the stars.
\\
BH
&
PartType5
&
Particles representing the
B
lack
H
oles.
\\
BH
&
PartType5
&
Particles representing the
b
lack
h
oles.
\\
\hline
\hline
\end{tabular}
\end{tabular}
\caption
{
The four types of particles present in the
\swift
code.
}
\caption
{
\label
{
tab:parttypes
}
The four types of particles present in the
\swift
code.
}
\end{table}
\end{table}
All of these particles are affected by the gravitation force but additional interactions will exit for the non-DM
All of these particles are affected by the gravitation force but additional interactions will exit for the non-DM
particles. The number of DM particles is a constant but the number of gas, star and BH particles will vary
particles. The number of DM particles is a constant but the number of gas, star and BH particles will vary
over the simulation time. The latter two will t
i
pically increase while the number of gas particles will usually
over the simulation time. The latter two will t
y
pically increase while the number of gas particles will usually
decrease.
\\
decrease.
\\
Depending on the exact variation of the
\eagle
physics used, the total number of particles will be a
Depending on the exact variation of the
\eagle
physics used, the total number of particles will be a
constant, implying that particles will change type but none will be spawned.
\\
constant, implying that particles will change type but none will be spawned.
\\
In a typical cosmological simulation, 50
\%
of the particles are DM particles, 46
\%
are gas particles, 4
\%
are star
In a typical cosmological simulation, 50
\%
of the particles are DM particles, 46
\%
are gas particles, 4
\%
are star
particles and less than 0.001
\%
are BH particles. These numbers can change slightly when doing a ``zoom'' simulation.
\\
particles and less than 0.001
\%
are BH particles. These numbers can change slightly when doing a ``zoom'' simulation.
\\
The gas particles interact through
t
SPH forces which are computed through two loops over the neighbouring particles
The gas particles interact through SPH forces which are computed through two loops over the neighbouring particles
(Chapter
\ref
{
chap:SPH
}
). The first of these loop is over all the particles within a range
$
h
_
i
$
of the particle
$
i
$
(Chapter
\ref
{
chap:SPH
}
). The first of these loop is over all the particles within a range
$
h
_
i
$
of the particle
$
i
$
whereas the second on is over all particles within
$
h
_
i
$
and over all particles that see particle
$
i
$
within their
whereas the second on is over all particles within
$
h
_
i
$
and over all particles that see particle
$
i
$
within their
search radius
$
h
_
j
$
. This second loop is in principle more expensive as more neighbours have to be found.
\\
search radius
$
h
_
j
$
. This second loop is in principle more expensive as more neighbours have to be found.
\\
...
@@ -61,7 +66,7 @@ This is done by interpolating ``cooling tables'' which have been pre-computed an
...
@@ -61,7 +66,7 @@ This is done by interpolating ``cooling tables'' which have been pre-computed an
function of all the relevant quantities. This is a very cheap module in terms of computing.
function of all the relevant quantities. This is a very cheap module in terms of computing.
The star particles (Chapter
\ref
{
chap:stars
}
) are created from gas particles when the right gas density and pressure
The star particles (Chapter
\ref
{
chap:stars
}
) are created from gas particles when the right gas density and pressure
criteria are met. This does not require any loop over neighbours as it is a particle by particle effect. Dep
d
ending on
criteria are met. This does not require any loop over neighbours as it is a particle by particle effect. Depending on
the options chosen, a gas particle can be transformed into a star particle or it can spawn one or more star particles.
\\
the options chosen, a gas particle can be transformed into a star particle or it can spawn one or more star particles.
\\
Once they have been created, these star particles cease to interact via SPH forces and only obey the gravity forces.
\\
Once they have been created, these star particles cease to interact via SPH forces and only obey the gravity forces.
\\
The star particles evolve with time in order to reflect the change in chemical element composition of their cores.
The star particles evolve with time in order to reflect the change in chemical element composition of their cores.
...
@@ -77,14 +82,14 @@ using, once again, a loop over the neighbours. \\
...
@@ -77,14 +82,14 @@ using, once again, a loop over the neighbours. \\
The Black Hole particles (Chapter
\ref
{
chap:BHs
}
) are created from gas particles when they hit the bottom of a potential
The Black Hole particles (Chapter
\ref
{
chap:BHs
}
) are created from gas particles when they hit the bottom of a potential
well of a given depth. These particles will then do feedback in the same way that stars do it, i.e. by dumping a certain
well of a given depth. These particles will then do feedback in the same way that stars do it, i.e. by dumping a certain
amount of energy to one or more neighbouring gas particles. The black hole also swallow
a
(i.e. destroys) gas particles
amount of energy to one or more neighbouring gas particles. The black hole also swallow
s
(i.e. destroys) gas particles
passing by under some circumstances. This is achieved in the same loop over the neighbouring gas particles. There is no
passing by under some circumstances. This is achieved in the same loop over the neighbouring gas particles. There is no
interaction between the BHs and the stars or DM particles.
\\
interaction between the BHs and the stars or DM particles.
\\
In summary, the various loops over different particles can be written in a short table. The
In summary, the various loops over different particles can be written in a short table
(
\ref
{
tab:interactions
}
)
. The
exact equations happening in these loops are given in the corresponding sections of this document.
exact equations happening in these loops are given in the corresponding sections of this document.
\begin{table}
[h]
\begin{table}
[
!
h]
\centering
\centering
\begin{tabular}
{
|l|c|c|c|c|
}
\begin{tabular}
{
|l|c|c|c|c|
}
\hline
\hline
...
@@ -100,12 +105,61 @@ $ \nearrow$&\textbf{DM} & \textbf{Gas} & \textbf{Stars} & \textbf{BHs} \\
...
@@ -100,12 +105,61 @@ $ \nearrow$&\textbf{DM} & \textbf{Gas} & \textbf{Stars} & \textbf{BHs} \\
\hline
\hline
\end{tabular}
\end{tabular}
\label
{
tab:interactions
}
\label
{
tab:interactions
}
\caption
{
The various loops over neighbours required by the
\eagle
model. For instance, gas particles are looping over
\caption
{
\label
{
tab:interactions
}
The various loops over neighbours required by the
\eagle
model. For instance, gas
particles are looping over
their gas neighbours and (in another loop) over their DM neighbours. This table does not show the frequency of the
their gas neighbours and (in another loop) over their DM neighbours. This table does not show the frequency of the
loops. Only the gas-gas loop occurs at every time step.
}
loops. Only the gas-gas loop occurs at every time step.
}
\end{table}
\end{table}
\textcolor
{
red
}{
DISCUSS UNIT SYSTEM !!
}
\section
{
A typical time step
}
All the different particles are arranged according to their time step size in different bins and the code will then
evolve all particles in a given bin and then move to the next one. For a given set of active particles, the time step
can be decomposed as follows:
\begin{enumerate}
\item
Compute next time step.
\item
First kick for active particles.
\item
Drift (active and inactive) particles.
\item
Predict inactive particles forward in time.
\item
Compute gravity accelerations for all particles.
\item
*Compute SPH accelerations for gas particles.
\item
Calculate the cooling for the gas particles.
\eagle
\item
Second kick for the active particles.
\item
Create star particles if needed.
\eagle
\item
*Calculate the star's smoothing length.
\eagle
\item
Evolve stars' chemical content.
\eagle
\item
*Calculate the DM velocity dispersion for star particles.
\eagle
\item
*Calculate the weights used for the star feedback.
\eagle
\item
*Perform star feedback on gas particles.
\eagle
\item
*Perform stellar enrichment.
\eagle
\item
*Swallow gas particles into BH particles.
\eagle
\item
Merge BH particles that lie close-by.
\eagle
\item
*Perform BH feedback on gas particles.
\eagle
\item
Find halos.
\eagle
\end{enumerate}
The details of these individual steps are described in the next chapters. The lines post-fixed with the term
\eagle
are
specific of our implementation. The other elements are part of the standard
\gadget
code. Lines pre-fixed by an asterisk
are the loops described in the previous section and table
\ref
{
tab:interactions
}
. Apart from gravity, halo finding and
the loops, all operations are performed on a particle-by-particle basis and are thus very cheap. Halo finding is only
performed very rarely and is described in chapter
\ref
{
chap:FOF
}
.
\section
{
Units used in the code
}
\textcolor
{
red
}{
To be agreed on and written down.
}
% ##################################################################################################################
\chapter
{
Dark Matter particles
}
\chapter
{
Dark Matter particles
}
\label
{
chap:DMs
}
\label
{
chap:DMs
}
...
@@ -113,6 +167,30 @@ loops. Only the gas-gas loop occurs at every time step.}
...
@@ -113,6 +167,30 @@ loops. Only the gas-gas loop occurs at every time step.}
This section describes the physics of the DM particles but as all particles are affected by gravity, the equations
This section describes the physics of the DM particles but as all particles are affected by gravity, the equations
apply to all four types.
apply to all four types.
% ##################################################################################################################
\chapter
{
Gas particles - SPH
}
\chapter
{
Gas particles - SPH
}
\label
{
chap:SPH
}
\label
{
chap:SPH
}
...
@@ -142,15 +220,15 @@ Every particle contains the following information:
...
@@ -142,15 +220,15 @@ Every particle contains the following information:
Artificial viscosity
&
Primary
&
$
\alpha
$
&
$
[-]
$
\\
Artificial viscosity
&
Primary
&
$
\alpha
$
&
$
[-]
$
\\
Artificial conductivity
&
Primary
&
$
\alpha
_
u
$
&
$
[-]
$
\\
Artificial conductivity
&
Primary
&
$
\alpha
_
u
$
&
$
[-]
$
\\
Velocity divergence
&
Secondary
&
$
\nabla\cdot
\vec
{
v
}$
&
$
[
s
^{
-
1
}
]
$
\\
Velocity divergence
&
Secondary
&
$
\nabla\cdot
\vec
{
v
}$
&
$
[
s
^{
-
1
}
]
$
\\
Internal energy
l
aplacian
&
Secondary
&
$
\nabla
u
$
&
$
[
m
\cdot
s
^{
-
2
}
]
$
\\
Internal energy
L
aplacian
&
Secondary
&
$
\nabla
u
$
&
$
[
m
\cdot
s
^{
-
2
}
]
$
\\
\hline
\hline
\end{tabular}
\end{tabular}
\end{table}
\end{table}
Secondary quantities are computed from the primary one in a loop (density loop) over all particle neighbors. Tertiary
Secondary quantities are computed from the primary one in a loop (density loop) over all particle neighbo
u
rs. Tertiary
ones are computed from secondary ones in another loop (force loop).
\\
ones are computed from secondary ones in another loop (force loop).
\\
For optimi
z
ation purposes, any function of these quantities could be stored. For instance,
$
1
/
h
$
instead of
$
h
$
or
For optimi
s
ation purposes, any function of these quantities could be stored. For instance,
$
1
/
h
$
instead of
$
h
$
or
$
\frac
{
P
}{
\rho\Omega
}$
instead of
$
\Omega
$
may be options worth exploring.
\\
$
\frac
{
P
}{
\rho\Omega
}$
instead of
$
\Omega
$
may be options worth exploring.
\\
The four quantities in the second part of the table are used in improved state-of-the-art implementations of SPH. In a
The four quantities in the second part of the table are used in improved state-of-the-art implementations of SPH. In a
...
@@ -237,7 +315,7 @@ where $\eta \approx 1.2$ is a constant. These two equations can be solved iterat
...
@@ -237,7 +315,7 @@ where $\eta \approx 1.2$ is a constant. These two equations can be solved iterat
bisection scheme. In practice, the loop is performed over all particles
$
j
$
which are at a distance
bisection scheme. In practice, the loop is performed over all particles
$
j
$
which are at a distance
$
|
\vec
{
r
}_{
ij
}
|<
\zeta
$
|
\vec
{
r
}_{
ij
}
|<
\zeta
h
$
from the particle of interest. One has to iterate those two equations until their outcomes are stable.
\\
h
$
from the particle of interest. One has to iterate those two equations until their outcomes are stable.
\\
Another measure of the accuracy of
$
h
$
is the weighted number of neighbors which (in 3D) reads
Another measure of the accuracy of
$
h
$
is the weighted number of neighbo
u
rs which (in 3D) reads
\begin{equation}
\begin{equation}
N
_{
ngb
}
=
\frac
{
4
}{
3
}
\pi
\left
(
\zeta
h
\right
)
^
3
\sum
_
j W(
\vec
{
r
}_{
ij
}
,h
_
i)
N
_{
ngb
}
=
\frac
{
4
}{
3
}
\pi
\left
(
\zeta
h
\right
)
^
3
\sum
_
j W(
\vec
{
r
}_{
ij
}
,h
_
i)
...
@@ -309,7 +387,7 @@ In practice the loop is here performed over all pairs of particles such that $|\
...
@@ -309,7 +387,7 @@ In practice the loop is here performed over all pairs of particles such that $|\
$
|
\vec
{
r
}_{
ij
}
| <
\zeta
$
|
\vec
{
r
}_{
ij
}
| <
\zeta
h
_
j
$
. In general, the equations are more involved as they will contain terms to mimic the effect of viscosity or
h
_
j
$
. In general, the equations are more involved as they will contain terms to mimic the effect of viscosity or
thermal conduction. These terms are pure functions of the properties of particles
$
i
$
and
$
j
$
and are thus very simple
thermal conduction. These terms are pure functions of the properties of particles
$
i
$
and
$
j
$
and are thus very simple
to insert once the code is stabili
z
ed.
\\
to insert once the code is stabili
s
ed.
\\
The time step is given by the Courant relation where the cell size is the smoothing length and the velocity is the
The time step is given by the Courant relation where the cell size is the smoothing length and the velocity is the
signal speed:
signal speed:
...
@@ -590,14 +668,36 @@ computed in the density loop and reads
...
@@ -590,14 +668,36 @@ computed in the density loop and reads
% ##################################################################################################################
\chapter
{
Stars - EAGLE
}
\chapter
{
Stars - EAGLE
}
\label
{
chap:stars
}
\label
{
chap:stars
}
Blabla
\eagle
blablabla
Blabla
\eagle
blablabla
% ##################################################################################################################
\chapter
{
Black Holes - EAGLE
}
\chapter
{
Black Holes - EAGLE
}
\label
{
chap:BHs
}
\label
{
chap:BHs
}
Blabla
\eagle
blablabla
Blabla
\eagle
blablabla
% ##################################################################################################################
\chapter
{
Halo finding
}
\label
{
chap:FOF
}
Blabla FOF balblabla
\end{document}
\end{document}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment