Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SWIFT
SWIFTsim
Commits
bca94340
Commit
bca94340
authored
May 09, 2019
by
Matthieu Schaller
Browse files
Merge branch 'master' into FOF
parents
f8a0b838
080b8536
Changes
201
Expand all
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
bca94340
...
...
@@ -49,9 +49,12 @@ examples/*/*.mpg
examples/*/*/gravity_checks_*.dat
examples/*/*/coolingtables.tar.gz
examples/*/*/coolingtables
examples/*/*/yieldtables.tar.gz
examples/*/*/yieldtables
examples/Cooling/CoolingRates/cooling_rates
examples/Cooling/CoolingRates/cooling_element_*.dat
examples/Cooling/CoolingRates/cooling_output.dat
examples/SubgridTests/StellarEvolution/StellarEvolutionSolution*
tests/testActivePair
tests/testActivePair.sh
...
...
@@ -110,6 +113,7 @@ tests/testMaths
tests/testRandom
tests/testThreadpool
tests/testParser
tests/testFeedback
tests/parser_output.yml
tests/testPeriodicBC.sh
tests/testPeriodicBCPerturbed.sh
...
...
README
View file @
bca94340
...
...
@@ -35,6 +35,7 @@ Parameters:
-M, --multipole-reconstruction Reconstruct the multipoles every time-step.
-s, --hydro Run with hydrodynamics.
-S, --stars Run with stars.
-B, --black-holes Run with black holes.
-x, --velociraptor Run with structure finding.
--limiter Run with time-step limiter.
...
...
README.md
View file @
bca94340
...
...
@@ -83,6 +83,7 @@ Parameters:
-M, --multipole-reconstruction Reconstruct the multipoles every time-step.
-s, --hydro Run with hydrodynamics.
-S, --stars Run with stars.
-B, --black-holes Run with black holes.
-x, --velociraptor Run with structure finding.
--limiter Run with time-step limiter.
...
...
configure.ac
View file @
bca94340
...
...
@@ -1329,7 +1329,8 @@ case "$with_subgrid" in
with_subgrid_entropy_floor=none
with_subgrid_stars=GEAR
with_subgrid_star_formation=GEAR
with_subgrid_feedback=thermal
with_subgrid_feedback=none
with_subgrid_black_holes=none
;;
EAGLE)
with_subgrid_cooling=EAGLE
...
...
@@ -1338,7 +1339,8 @@ case "$with_subgrid" in
with_subgrid_entropy_floor=EAGLE
with_subgrid_stars=EAGLE
with_subgrid_star_formation=EAGLE
with_subgrid_feedback=none
with_subgrid_feedback=EAGLE
with_subgrid_black_holes=EAGLE
;;
*)
AC_MSG_ERROR([Unknown subgrid choice: $with_subgrid])
...
...
@@ -1369,7 +1371,7 @@ esac
# Hydro scheme.
AC_ARG_WITH([hydro],
[AS_HELP_STRING([--with-hydro=<scheme>],
[Hydro dynamics to use @<:@gadget2, minimal, pressure-entropy, pressure-energy, pressure-energy-monaghan, default, gizmo-mfv, gizmo-mfm, shadowfax, planetary, anarchy-pu
debug
default: gadget2@:>@]
[Hydro dynamics to use @<:@gadget2, minimal, pressure-entropy, pressure-energy, pressure-energy-monaghan, default, gizmo-mfv, gizmo-mfm, shadowfax, planetary, anarchy-pu default: gadget2@:>@]
)],
[with_hydro="$withval"],
[with_hydro="gadget2"]
...
...
@@ -1728,7 +1730,7 @@ case "$with_stars" in
AC_DEFINE([STARS_GEAR], [1], [GEAR stellar model])
;;
none)
AC_DEFINE([STARS_NONE], [1], [
None
stellar model])
AC_DEFINE([STARS_NONE], [1], [
Basic
stellar model])
;;
*)
...
...
@@ -1739,7 +1741,7 @@ esac
# Feedback model
AC_ARG_WITH([feedback],
[AS_HELP_STRING([--with-feedback=<model>],
[Feedback model to use @<:@none,
thermal
, debug default: none@:>@]
[Feedback model to use @<:@none,
EAGLE
, debug default: none@:>@]
)],
[with_feedback="$withval"],
[with_feedback="none"]
...
...
@@ -1754,10 +1756,11 @@ if test "$with_subgrid" != "none"; then
fi
case "$with_feedback" in
thermal
)
AC_DEFINE([FEEDBACK_
THERMAL
], [1], [
Thermal Blastwave
])
EAGLE
)
AC_DEFINE([FEEDBACK_
EAGLE
], [1], [
EAGLE stellar feedback and evolution model
])
;;
none)
AC_DEFINE([FEEDBACK_NONE], [1], [No feedback])
;;
*)
...
...
@@ -1765,10 +1768,39 @@ case "$with_feedback" in
;;
esac
# Black hole model.
AC_ARG_WITH([black-holes],
[AS_HELP_STRING([--with-black-holes=<model>],
[Black holes model to use @<:@none, default: none@:>@]
)],
[with_black_holes="$withval"],
[with_black_holes="none"]
)
if test "$with_subgrid" != "none"; then
if test "$with_black_holes" != "none"; then
AC_MSG_ERROR([Cannot provide with-subgrid and with-black-holes together])
else
with_black_holes="$with_subgrid_black_holes"
fi
fi
case "$with_black_holes" in
none)
AC_DEFINE([BLACK_HOLES_NONE], [1], [No black hole model])
;;
EAGLE)
AC_DEFINE([BLACK_HOLES_EAGLE], [1], [EAGLE black hole model])
;;
*)
AC_MSG_ERROR([Unknown black-hole model: $with_black_holes])
;;
esac
# External potential
AC_ARG_WITH([ext-potential],
[AS_HELP_STRING([--with-ext-potential=<pot>],
[external potential @<:@none, point-mass, point-mass-ring, point-mass-softened, isothermal,
softened-isothermal,
nfw, hernquist, disc-patch, sine-wave, default: none@:>@]
[external potential @<:@none, point-mass, point-mass-ring, point-mass-softened, isothermal, nfw, hernquist, disc-patch, sine-wave, default: none@:>@]
)],
[with_potential="$withval"],
[with_potential="none"]
...
...
@@ -1886,6 +1918,9 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test "$ac_cv_path_ac_pt_DX_DOXYGEN" != ""])
# Check if using EAGLE cooling
AM_CONDITIONAL([HAVEEAGLECOOLING], [test $with_cooling = "EAGLE"])
# Check if using EAGLE feedback
AM_CONDITIONAL([HAVEEAGLEFEEDBACK], [test $with_feedback = "EAGLE"])
# Handle .in files.
AC_CONFIG_FILES([Makefile src/Makefile examples/Makefile examples/Cooling/CoolingRates/Makefile doc/Makefile doc/Doxyfile tests/Makefile])
AC_CONFIG_FILES([argparse/Makefile tools/Makefile])
...
...
@@ -1962,7 +1997,8 @@ AC_MSG_RESULT([
Tracers : $with_tracers
Stellar model : $with_stars
Star formation model : $with_star_formation
Feedback model : $with_feedback
Star feedback model : $with_feedback
Black holes model : $with_black_holes
Individual timers : $enable_timers
Task debugging : $enable_task_debugging
...
...
doc/Doxyfile.in
View file @
bca94340
...
...
@@ -763,7 +763,6 @@ INPUT = @top_srcdir@ @top_srcdir@/src @top_srcdir@/tests @top_
INPUT += @top_srcdir@/src/hydro/Minimal
INPUT += @top_srcdir@/src/hydro/Gadget2
INPUT += @top_srcdir@/src/gravity/Default
INPUT += @top_srcdir@/src/stars/Default
INPUT += @top_srcdir@/src/riemann
INPUT += @top_srcdir@/src/potential/point_mass
INPUT += @top_srcdir@/src/equation_of_state/ideal_gas
...
...
@@ -776,6 +775,8 @@ INPUT += @top_srcdir@/src/entropy_floor/EAGLE
INPUT += @top_srcdir@/src/star_formation/EAGLE
INPUT += @top_srcdir@/src/tracers/EAGLE
INPUT += @top_srcdir@/src/stars/EAGLE
INPUT += @top_srcdir@/src/feedback/EAGLE
INPUT += @top_srcdir@/src/black_holes/EAGLE
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
...
...
@@ -810,7 +811,7 @@ RECURSIVE = NO
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE =
EXCLUDE =
@top_srcdir@/src/cooling/EAGLE/newton_cooling.c
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
...
...
doc/RTD/source/CommandLineOptions/index.rst
View file @
bca94340
...
...
@@ -30,6 +30,7 @@ can be found by typing ``./swift -h``::
-M, --multipole-reconstruction Reconstruct the multipoles every time-step.
-s, --hydro Run with hydrodynamics.
-S, --stars Run with stars.
-B, --black-holes Run with black holes.
-x, --velociraptor Run with structure finding.
--limiter Run with time-step limiter.
...
...
doc/RTD/source/ParameterFiles/parameter_description.rst
View file @
bca94340
...
...
@@ -656,6 +656,17 @@ which stops these from being done at the scale of the leaf cells, of which
there can be a large number. In this case cells with gravity tasks must be at
least 4 levels above the leaf cells (when possible).
To control the depth at which the ghost tasks are placed, there are
two parameters (one for the gas, one for the stars). These specify the
maximum number of particles allowed in such a task before splitting
into finer ones. These parameters are:
.. code:: YAML
engine_max_parts_per_ghost: 1000
engine_max_sparts_per_ghost: 1000
Extra space is required when particles are created in the system (to the time
of the next rebuild). These are controlled by:
...
...
doc/RTD/source/SubgridModels/EAGLE/EAGLE_entropy_floor.svg
View file @
bca94340
This diff is collapsed.
Click to expand it.
doc/RTD/source/SubgridModels/EAGLE/index.rst
View file @
bca94340
...
...
@@ -20,7 +20,10 @@ particles. Two floors are used in conjonction. Both are implemented as
polytropic
"equations of states"
:
math
:`
P
=
P_c
\
left
(\
rho
/\
rho_c
\
right
)^\
gamma
`
(
all
done
in
physical
coordinates
),
with
the
constants
derived
from
the
user
input
given
in
terms
of
temperature
and
Hydrogen
number
density
.
Hydrogen
number
density
.
The
code
computing
the
entropy
floor
is
located
in
the
directory
``
src
/
entropy_floor
/
EAGLE
/``
and
the
floor
is
applied
in
the
drift
and
kick
operations
of
the
hydro
scheme
.
It
is
also
used
in
some
of
the
other
subgrid
schemes
.
The
first
limit
,
labelled
as
``
Cool
``,
is
typically
used
to
prevent
low
-
density
high
-
metallicity
particles
to
cool
below
the
warm
phase
because
...
...
@@ -57,13 +60,19 @@ critical density at redshift zero [#f1]_, and :math:`\rho_{\rm com}` the
gas
co
-
moving
density
.
Typical
values
for
:
math
:`\
Delta_
{\
rm
floor
}`
are
of
order
10.
The
model
is
governed
by
4
parameters
for
each
of
the
two
limits
.
These
are
given
in
the
``
EAGLEEntropyFloor
``
section
of
the
YAML
file
.
The
parameters
are
the
Hydrogen
number
density
(
in
:
math
:`
cm
^{-
3
}`)
and
temperature
(
in
:
math
:`
K
`)
of
the
anchor
point
of
each
floor
as
well
as
the
power
-
law
slope
of
each
floor
and
the
minimal
over
-
density
required
to
apply
the
limit
.
For
a
normal
EAGLE
run
,
that
section
of
the
parameter
file
reads
:
The
model
is
governed
by
4
parameters
for
each
of
the
two
limits
.
These
are
given
in
the
``
EAGLEEntropyFloor
``
section
of
the
YAML
file
.
The
parameters
are
the
Hydrogen
number
density
(
in
:
math
:`
cm
^{-
3
}`)
and
temperature
(
in
:
math
:`
K
`)
of
the
anchor
point
of
each
floor
as
well
as
the
power
-
law
slope
of
each
floor
and
the
minimal
over
-
density
required
to
apply
the
limit
.
Note
that
,
even
though
the
anchor
points
are
given
in
terms
of
temperatures
,
the
slopes
are
expressed
using
a
power
-
law
in
terms
of
entropy
and
*
not
*
in
terms
of
temperature
.
For
a
slope
of
:
math
:`\
gamma
`
in
the
parameter
file
,
the
temperature
as
a
function
of
density
will
be
limited
to
be
above
a
power
-
law
with
slope
:
math
:`\
gamma
-
1
`
(
as
shown
on
the
figure
above
).
For
a
normal
EAGLE
run
,
that
section
of
the
parameter
file
reads
:
..
code
::
YAML
...
...
@@ -87,6 +96,10 @@ floor by a factor :math:`\frac{\mu_{\rm neutral}}{\mu_{ionised}}
\
approx
\
frac
{
1.22
}{
0.59
}
\
approx
2
`
due
to
the
different
ionisation
states
of
the
gas
.
Recall
that
we
additionally
impose
an
absolute
minium
temperature
at
all
densities
with
a
value
provided
in
the
:
ref
:`
Parameters_SPH
`
section
of
the
parameter
file
.
This
minimal
temperature
is
typically
set
to
100
Kelvin
.
Note
that
the
model
only
makes
sense
if
the
``
Cool
``
threshold
is
at
a
lower
density
than
the
``
Jeans
``
threshold
.
...
...
@@ -457,8 +470,46 @@ Stellar enrichment: Wiersma+2009b
.. _EAGLE_feedback:
Supernova feedback: Dalla Vecchia+2012
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supernova feedback: Dalla Vecchia+2012 & Schaye+2015
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: YAML
# EAGLE stellar enrichment and feedback model
EAGLEFeedback:
use_SNII_feedback: 1 # Global switch for SNII thermal (stochastic) feedback.
use_SNIa_feedback: 1 # Global switch for SNIa thermal (continuous) feedback.
use_AGB_enrichment: 1 # Global switch for enrichement from AGB stars.
use_SNII_enrichment: 1 # Global switch for enrichement from SNII stars.
use_SNIa_enrichment: 1 # Global switch for enrichement from SNIa stars.
filename: ./yieldtables/ # Path to the directory containing the EAGLE yield tables.
IMF_min_mass_Msun: 0.1 # Minimal stellar mass considered for the Chabrier IMF in solar masses.
IMF_max_mass_Msun: 100.0 # Maximal stellar mass considered for the Chabrier IMF in solar masses.
SNII_min_mass_Msun: 6.0 # Minimal mass considered for SNII feedback (not SNII enrichment!) in solar masses.
SNII_max_mass_Msun: 100.0 # Maximal mass considered for SNII feedback (not SNII enrichment!) in solar masses.
SNII_wind_delay_Gyr: 0.03 # Time in Gyr between a star'
s
birth
and
the
SNII
thermal
feedback
event
.
SNII_delta_T_K
:
3.16228e7
#
Change
in
temperature
to
apply
to
the
gas
particle
in
a
SNII
thermal
feedback
event
in
Kelvin
.
SNII_energy_erg
:
1.0e51
#
Energy
of
one
SNII
explosion
in
ergs
.
SNII_energy_fraction_min
:
3.0
#
Maximal
fraction
of
energy
applied
in
a
SNII
feedback
event
.
SNII_energy_fraction_max
:
0.3
#
Minimal
fraction
of
energy
applied
in
a
SNII
feedback
event
.
SNII_energy_fraction_Z_0
:
0.0012663729
#
Pivot
point
for
the
metallicity
dependance
of
the
SNII
energy
fraction
(
metal
mass
fraction
).
SNII_energy_fraction_n_0_H_p_cm3
:
0.67
#
Pivot
point
for
the
birth
density
dependance
of
the
SNII
energy
fraction
in
cm
^-
3.
SNII_energy_fraction_n_Z
:
0.8686
#
Power
-
law
for
the
metallicity
dependance
of
the
SNII
energy
fraction
.
SNII_energy_fraction_n_n
:
0.8686
#
Power
-
law
for
the
birth
density
dependance
of
the
SNII
energy
fraction
.
SNIa_max_mass_Msun
:
8.0
#
Maximal
mass
considered
for
SNIa
feedback
and
enrichment
in
solar
masses
.
SNIa_timescale_Gyr
:
2.0
#
Time
-
scale
of
the
exponential
decay
of
the
SNIa
rates
in
Gyr
.
SNIa_efficiency_p_Msun
:
0.002
#
Normalisation
of
the
SNIa
rates
in
inverse
solar
masses
.
SNIa_energy_erg
:
1.0e51
#
Energy
of
one
SNIa
explosion
in
ergs
.
AGB_ejecta_velocity_km_p_s
:
10.0
#
Velocity
of
the
AGB
ejectas
in
km
/
s
.
SNII_yield_factor_Hydrogen
:
1.0
#
(
Optional
)
Correction
factor
to
apply
to
the
Hydrogen
yield
from
the
SNII
channel
.
SNII_yield_factor_Helium
:
1.0
#
(
Optional
)
Correction
factor
to
apply
to
the
Helium
yield
from
the
SNII
channel
.
SNII_yield_factor_Carbon
:
0.5
#
(
Optional
)
Correction
factor
to
apply
to
the
Carbon
yield
from
the
SNII
channel
.
SNII_yield_factor_Nitrogen
:
1.0
#
(
Optional
)
Correction
factor
to
apply
to
the
Nitrogen
yield
from
the
SNII
channel
.
SNII_yield_factor_Oxygen
:
1.0
#
(
Optional
)
Correction
factor
to
apply
to
the
Oxygen
yield
from
the
SNII
channel
.
SNII_yield_factor_Neon
:
1.0
#
(
Optional
)
Correction
factor
to
apply
to
the
Neon
yield
from
the
SNII
channel
.
SNII_yield_factor_Magnesium
:
2.0
#
(
Optional
)
Correction
factor
to
apply
to
the
Magnesium
yield
from
the
SNII
channel
.
SNII_yield_factor_Silicon
:
1.0
#
(
Optional
)
Correction
factor
to
apply
to
the
Silicon
yield
from
the
SNII
channel
.
SNII_yield_factor_Iron
:
0.5
#
(
Optional
)
Correction
factor
to
apply
to
the
Iron
yield
from
the
SNII
channel
.
..
_EAGLE_black_hole_seeding
:
...
...
doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_entropy_floor.py
View file @
bca94340
...
...
@@ -52,21 +52,21 @@ plot([1e-1, 1e-1], [20, 4000], "k:", lw=0.6)
plot
([
3e-6
,
3e-4
],
[
28000
,
28000
],
"k--"
,
lw
=
0.6
)
text
(
3
e-6
,
1
e-6
,
22500
,
"$n_{
\\
rm H}$^Cool_gamma_effective"
,
"$n_{
\\
rm H}$^Cool_gamma_effective
- 1
"
,
va
=
"top"
,
fontsize
=
6
,
fontsize
=
5.5
,
family
=
"monospace"
,
)
plot
([
3e-1
,
3e1
],
[
15000.0
,
15000.0
*
10.0
**
(
2.0
/
3.0
)],
"k--"
,
lw
=
0.6
)
text
(
3
e-1
,
20
0000
,
"$n_{
\\
rm H}$^Jeans_gamma_effective"
,
1.2
e-1
,
19
0000
,
"$n_{
\\
rm H}$^Jeans_gamma_effective
- 1
"
,
va
=
"top"
,
rotation
=
43
,
fontsize
=
6
,
fontsize
=
5.5
,
family
=
"monospace"
,
)
text
(
...
...
@@ -76,7 +76,7 @@ text(
rotation
=
90
,
va
=
"bottom"
,
ha
=
"right"
,
fontsize
=
6
,
fontsize
=
5.5
,
family
=
"monospace"
,
)
text
(
...
...
@@ -89,9 +89,9 @@ text(
fontsize
=
5.5
,
family
=
"monospace"
,
)
text
(
5e-8
,
8800
,
"Cool_temperature_norm_K"
,
va
=
"bottom"
,
fontsize
=
6
,
family
=
"monospace"
)
text
(
5e-8
,
8800
,
"Cool_temperature_norm_K"
,
va
=
"bottom"
,
fontsize
=
5.5
,
family
=
"monospace"
)
text
(
5e-8
,
4400
,
"Jeans_temperature_norm_K"
,
va
=
"bottom"
,
fontsize
=
6
,
family
=
"monospace"
5e-8
,
4400
,
"Jeans_temperature_norm_K"
,
va
=
"bottom"
,
fontsize
=
5.5
,
family
=
"monospace"
)
fill_between
([
1e-5
,
1e5
],
[
10
,
10
],
[
8000
,
8000
],
color
=
"0.9"
)
fill_between
([
1e-1
,
1e5
],
[
4000
,
400000
],
color
=
"0.9"
)
...
...
doc/RTD/source/Task/index.rst
View file @
bca94340
...
...
@@ -10,7 +10,7 @@ This section of the documentation includes information on the task system
available in SWIFT, as well as how to implement your own task.
SWIFT can produce a graph containing all the dependencies.
Everything is described in :ref:`
_a
nalysis
t
ools`.
Everything is described in :ref:`
A
nalysis
_T
ools`.
.. toctree::
...
...
examples/Cooling/CoolingRates/cooling_rates.c
View file @
bca94340
...
...
@@ -104,9 +104,9 @@ INLINE static double eagle_print_metal_cooling_rate(
/* calculate cooling rates */
for
(
int
j
=
0
;
j
<
eagle_cooling_N_metal
+
2
;
j
++
)
element_lambda
[
j
]
=
0
.
0
;
lambda_net
=
eagle_metal_cooling_rate
(
log10
(
u
),
cosmo
->
z
,
n_h
,
abundance_ratio
,
n_h_i
,
d_n_h
,
He_i
,
d_He
,
cooling
,
/*dLambdaNet_du=*/
NULL
,
element_lambda
);
lambda_net
=
eagle_metal_cooling_rate
(
log10
(
u
),
cosmo
->
z
,
n_h
,
abundance_ratio
,
n_h_i
,
d_n_h
,
He_i
,
d_He
,
cooling
,
element_lambda
);
/* write cooling rate contributions to their own files. */
for
(
int
j
=
0
;
j
<
eagle_cooling_N_metal
+
2
;
j
++
)
{
...
...
@@ -164,6 +164,7 @@ int main(int argc, char **argv) {
struct
part
p
;
struct
xpart
xp
;
struct
phys_const
internal_const
;
struct
hydro_props
hydro_properties
;
struct
cooling_function_data
cooling
;
struct
cosmology
cosmo
;
struct
space
s
;
...
...
@@ -210,8 +211,13 @@ int main(int argc, char **argv) {
// Init units
units_init_from_params
(
&
us
,
params
,
"InternalUnitSystem"
);
// Init physical constants
phys_const_init
(
&
us
,
params
,
&
internal_const
);
// Init porperties of hydro
hydro_props_init
(
&
hydro_properties
,
&
internal_const
,
&
us
,
params
);
// Init chemistry
chemistry_init
(
params
,
&
us
,
&
internal_const
,
&
chem_data
);
chemistry_first_init_part
(
&
internal_const
,
&
us
,
&
cosmo
,
&
chem_data
,
&
p
,
&
xp
);
...
...
@@ -228,19 +234,27 @@ int main(int argc, char **argv) {
message
(
"Redshift is %f"
,
cosmo
.
z
);
// Init cooling
cooling_init
(
params
,
&
us
,
&
internal_const
,
&
cooling
);
cooling_init
(
params
,
&
us
,
&
internal_const
,
&
hydro_properties
,
&
cooling
);
cooling
.
H_reion_done
=
1
;
cooling_print
(
&
cooling
);
cooling_update
(
&
cosmo
,
&
cooling
,
&
s
);
// Copy over the raw metals into the smoothed metals
memcpy
(
&
p
.
chemistry_data
.
smoothed_metal_mass_fraction
,
&
p
.
chemistry_data
.
metal_mass_fraction
,
chemistry_element_count
*
sizeof
(
float
));
p
.
chemistry_data
.
smoothed_metal_mass_fraction_total
=
p
.
chemistry_data
.
metal_mass_fraction_total
;
// Calculate abundance ratios
float
abundance_ratio
[(
chemistry_element_count
+
2
)];
abundance_ratio_to_solar
(
&
p
,
&
cooling
,
abundance_ratio
);
// extract mass fractions, calculate table indices and offsets
float
XH
=
p
.
chemistry_data
.
metal_mass_fraction
[
chemistry_element_H
];
float
He
Frac
=
p
.
chemistry_data
.
metal_mass_fraction
[
chemistry_element_He
]
/
(
XH
+
p
.
chemistry_data
.
metal_mass_fraction
[
chemistry_element_
He
]
);
float
XH
=
p
.
chemistry_data
.
smoothed_
metal_mass_fraction
[
chemistry_element_H
];
float
X
He
=
p
.
chemistry_data
.
smoothed_
metal_mass_fraction
[
chemistry_element_He
]
;
float
HeFrac
=
XHe
/
(
XH
+
X
He
);
int
He_i
,
n_h_i
;
float
d_He
,
d_n_h
;
get_index_1d
(
cooling
.
HeFrac
,
eagle_cooling_N_He_frac
,
HeFrac
,
&
He_i
,
&
d_He
);
...
...
@@ -280,7 +294,7 @@ int main(int argc, char **argv) {
// calculate cooling rates
const
double
temperature
=
eagle_convert_u_to_temp
(
log10
(
u
),
cosmo
.
z
,
0
,
NULL
,
n_h_i
,
He_i
,
d_n_h
,
d_He
,
&
cooling
);
log10
(
u
),
cosmo
.
z
,
n_h_i
,
He_i
,
d_n_h
,
d_He
,
&
cooling
);
const
double
cooling_du_dt
=
eagle_print_metal_cooling_rate
(
n_h_i
,
d_n_h
,
He_i
,
d_He
,
&
p
,
&
xp
,
&
cooling
,
&
cosmo
,
&
internal_const
,
...
...
examples/Cooling/CoolingRates/cooling_rates.yml
View file @
bca94340
...
...
@@ -15,6 +15,11 @@ Cosmology:
Omega_lambda
:
0.693
# Dark-energy density parameter
Omega_b
:
0.0455
# Baryon density parameter
SPH
:
resolution_eta
:
1.234
CFL_condition
:
0.1
minimal_temperature
:
100.
EAGLEChemistry
:
init_abundance_metal
:
0.014
init_abundance_Hydrogen
:
0.70649785
...
...
examples/Cooling/CoolingRedshiftDependence/cooling_redshift_dependence_high_z.yml
View file @
bca94340
...
...
@@ -44,7 +44,20 @@ InitialConditions:
periodic
:
1
# Parameters for the EAGLE chemistry
EAGLEChemistry
:
# Solar abundances
# EAGLEChemistry: # Solar abundances
# init_abundance_metal: 0.014
# init_abundance_Hydrogen: 0.70649785
# init_abundance_Helium: 0.28055534
# init_abundance_Carbon: 2.0665436e-3
# init_abundance_Nitrogen: 8.3562563e-4
# init_abundance_Oxygen: 5.4926244e-3
# init_abundance_Neon: 1.4144605e-3
# init_abundance_Magnesium: 5.907064e-4
# init_abundance_Silicon: 6.825874e-4
# init_abundance_Iron: 1.1032152e-3
# Parameters for the EAGLE chemistry
EAGLEChemistry
:
# Primoridal abundances
init_abundance_metal
:
0.
init_abundance_Hydrogen
:
0.752
init_abundance_Helium
:
0.248
...
...
@@ -82,4 +95,4 @@ LambdaCooling:
ConstCooling
:
cooling_rate
:
1.
# Cooling rate (du/dt) (internal units)
min_energy
:
1.
# Minimal internal energy per unit mass (internal units)
cooling_tstep_mult
:
1.
# Dimensionless pre-factor for the time-step condition
\ No newline at end of file
cooling_tstep_mult
:
1.
# Dimensionless pre-factor for the time-step condition
examples/Cooling/CoolingRedshiftDependence/cooling_redshift_dependence_low_z.yml
View file @
bca94340
...
...
@@ -44,7 +44,19 @@ InitialConditions:
periodic
:
1
# Parameters for the EAGLE chemistry
EAGLEChemistry
:
# Primordial
# EAGLEChemistry: # Solar abundances
# init_abundance_metal: 0.014
# init_abundance_Hydrogen: 0.70649785
# init_abundance_Helium: 0.28055534
# init_abundance_Carbon: 2.0665436e-3
# init_abundance_Nitrogen: 8.3562563e-4
# init_abundance_Oxygen: 5.4926244e-3
# init_abundance_Neon: 1.4144605e-3
# init_abundance_Magnesium: 5.907064e-4
# init_abundance_Silicon: 6.825874e-4
# init_abundance_Iron: 1.1032152e-3
EAGLEChemistry
:
# Primordial abundances
init_abundance_metal
:
0.
init_abundance_Hydrogen
:
0.752
init_abundance_Helium
:
0.248
...
...
examples/Cooling/CoolingRedshiftDependence/cooling_redshift_dependence_no_z.yml
View file @
bca94340
...
...
@@ -35,7 +35,20 @@ InitialConditions:
periodic
:
1
# Parameters for the EAGLE chemistry
EAGLEChemistry
:
# Solar abundances
# EAGLEChemistry: # Solar abundances
# init_abundance_metal: 0.014
# init_abundance_Hydrogen: 0.70649785
# init_abundance_Helium: 0.28055534
# init_abundance_Carbon: 2.0665436e-3
# init_abundance_Nitrogen: 8.3562563e-4
# init_abundance_Oxygen: 5.4926244e-3
# init_abundance_Neon: 1.4144605e-3
# init_abundance_Magnesium: 5.907064e-4
# init_abundance_Silicon: 6.825874e-4
# init_abundance_Iron: 1.1032152e-3
# Parameters for the EAGLE chemistry
EAGLEChemistry
:
# Primoridal abundances
init_abundance_metal
:
0.
init_abundance_Hydrogen
:
0.752
init_abundance_Helium
:
0.248
...
...
@@ -73,4 +86,4 @@ LambdaCooling:
ConstCooling
:
cooling_rate
:
1.
# Cooling rate (du/dt) (internal units)
min_energy
:
1.
# Minimal internal energy per unit mass (internal units)
cooling_tstep_mult
:
1.
# Dimensionless pre-factor for the time-step condition
\ No newline at end of file
cooling_tstep_mult
:
1.
# Dimensionless pre-factor for the time-step condition
examples/EAGLE_ICs/EAGLE_12/eagle_12.yml
View file @
bca94340
...
...
@@ -112,3 +112,46 @@ EAGLEEntropyFloor:
Cool_temperature_norm_K
:
8000
# Temperature of the EAGLE Cool limiter entropy floor at the density threshold expressed in Kelvin.
Cool_gamma_effective
:
1.
# Slope the of the EAGLE Cool limiter entropy floor
# EAGLE feedback model
EAGLEFeedback
:
use_SNII_feedback
:
1
# Global switch for SNII thermal (stochastic) feedback.
use_SNIa_feedback
:
1
# Global switch for SNIa thermal (continuous) feedback.
use_AGB_enrichment
:
1
# Global switch for enrichement from AGB stars.
use_SNII_enrichment
:
1
# Global switch for enrichement from SNII stars.
use_SNIa_enrichment
:
1
# Global switch for enrichement from SNIa stars.
filename
:
./yieldtables/
# Path to the directory containing the EAGLE yield tables.
IMF_min_mass_Msun
:
0.1
# Minimal stellar mass considered for the Chabrier IMF in solar masses.
IMF_max_mass_Msun
:
100.0
# Maximal stellar mass considered for the Chabrier IMF in solar masses.
SNII_min_mass_Msun
:
6.0
# Minimal mass considered for SNII feedback (not SNII enrichment!) in solar masses.
SNII_max_mass_Msun
:
100.0
# Maximal mass considered for SNII feedback (not SNII enrichment!) in solar masses.
SNII_wind_delay_Gyr
:
0.03
# Time in Gyr between a star's birth and the SNII thermal feedback event.
SNII_delta_T_K
:
3.16228e7
# Change in temperature to apply to the gas particle in a SNII thermal feedback event in Kelvin.
SNII_energy_erg
:
1.0e51
# Energy of one SNII explosion in ergs.
SNII_energy_fraction_min
:
3.0
# Maximal fraction of energy applied in a SNII feedback event.
SNII_energy_fraction_max
:
0.3
# Minimal fraction of energy applied in a SNII feedback event.
SNII_energy_fraction_Z_0
:
0.0012663729
# Pivot point for the metallicity dependance of the SNII energy fraction (metal mass fraction).
SNII_energy_fraction_n_0_H_p_cm3
:
0.67
# Pivot point for the birth density dependance of the SNII energy fraction in cm^-3.
SNII_energy_fraction_n_Z
:
0.8686
# Power-law for the metallicity dependance of the SNII energy fraction.
SNII_energy_fraction_n_n
:
0.8686
# Power-law for the birth density dependance of the SNII energy fraction.
SNIa_max_mass_Msun
:
8.0
# Maximal mass considered for SNIa feedback and enrichment in solar masses.
SNIa_timescale_Gyr
:
2.0
# Time-scale of the exponential decay of the SNIa rates in Gyr.
SNIa_efficiency_p_Msun
:
0.002
# Normalisation of the SNIa rates in inverse solar masses.
SNIa_energy_erg
:
1.0e51
# Energy of one SNIa explosion in ergs.
AGB_ejecta_velocity_km_p_s
:
10.0
# Velocity of the AGB ejectas in km/s.
SNII_yield_factor_Hydrogen
:
1.0
# (Optional) Correction factor to apply to the Hydrogen yield from the SNII channel.
SNII_yield_factor_Helium
:
1.0
# (Optional) Correction factor to apply to the Helium yield from the SNII channel.
SNII_yield_factor_Carbon
:
0.5
# (Optional) Correction factor to apply to the Carbon yield from the SNII channel.
SNII_yield_factor_Nitrogen
:
1.0
# (Optional) Correction factor to apply to the Nitrogen yield from the SNII channel.
SNII_yield_factor_Oxygen
:
1.0
# (Optional) Correction factor to apply to the Oxygen yield from the SNII channel.
SNII_yield_factor_Neon
:
1.0
# (Optional) Correction factor to apply to the Neon yield from the SNII channel.
SNII_yield_factor_Magnesium
:
2.0
# (Optional) Correction factor to apply to the Magnesium yield from the SNII channel.
SNII_yield_factor_Silicon
:
1.0
# (Optional) Correction factor to apply to the Silicon yield from the SNII channel.
SNII_yield_factor_Iron
:
0.5
# (Optional) Correction factor to apply to the Iron yield from the SNII channel.
# EAGLE AGN model
EAGLEAGN
:
max_eddington_fraction
:
1.
# Maximal allowed accretion rate in units of the Eddington rate.
radiative_efficiency
:
0.1
# Fraction of the accreted mass that gets radiated.
coupling_efficiency
:
0.15
# Fraction of the radiated energy that couples to the gas in feedback events.
AGN_delta_T_K
:
3.16228e8
# Change in temperature to apply to the gas particle in an AGN feedback event in Kelvin.
AGN_num_ngb_to_heat
:
1.
# Target number of gas neighbours to heat in an AGN feedback event.
examples/EAGLE_ICs/EAGLE_25/eagle_25.yml
View file @
bca94340
...
...
@@ -113,3 +113,46 @@ EAGLEEntropyFloor:
Cool_temperature_norm_K
:
8000
# Temperature of the EAGLE Cool limiter entropy floor at the density threshold expressed in Kelvin.
Cool_gamma_effective
:
1.
# Slope the of the EAGLE Cool limiter entropy floor
# EAGLE feedback model
EAGLEFeedback
:
use_SNII_feedback
:
1
# Global switch for SNII thermal (stochastic) feedback.
use_SNIa_feedback
:
1
# Global switch for SNIa thermal (continuous) feedback.
use_AGB_enrichment
:
1
# Global switch for enrichement from AGB stars.
use_SNII_enrichment
:
1
# Global switch for enrichement from SNII stars.
use_SNIa_enrichment
:
1
# Global switch for enrichement from SNIa stars.
filename
:
./yieldtables/
# Path to the directory containing the EAGLE yield tables.
IMF_min_mass_Msun
:
0.1
# Minimal stellar mass considered for the Chabrier IMF in solar masses.
IMF_max_mass_Msun
:
100.0
# Maximal stellar mass considered for the Chabrier IMF in solar masses.
SNII_min_mass_Msun
:
6.0
# Minimal mass considered for SNII feedback (not SNII enrichment!) in solar masses.