Commit 94e79f99 authored by Peter W. Draper's avatar Peter W. Draper
Browse files

Merge remote-tracking branch 'origin/master' into dumper-thread

parents c472663f 675bafff
......@@ -32,6 +32,7 @@ examples/*/*/*.dat
examples/*/*/*.png
examples/*/*/*.pdf
examples/*/*/*.mp4
examples/*/*/*.txt
examples/*/*/*.rst
examples/*/*/*.hdf5
examples/*/*/*.csv
......@@ -53,6 +54,7 @@ examples/*/*/used_parameters.yml
examples/*/*/unused_parameters.yml
examples/*/*/fof_used_parameters.yml
examples/*/*/fof_unused_parameters.yml
examples/*/*/partition_fixed_costs.h
examples/*/*.mpg
examples/*/*/gravity_checks_*.dat
examples/*/*/coolingtables.tar.gz
......@@ -162,6 +164,7 @@ tests/testOutputList
tests/testCbrt
tests/testFormat.sh
tests/testCooling
tests/testComovingCooling
tests/testHashmap
tests/*.png
tests/*.txt
......
......@@ -6,7 +6,7 @@
/____/ |__/|__/___/_/ /_/
SPH With Inter-dependent Fine-grained Tasking
Version : 0.8.4
Version : 0.8.5
Website: www.swiftsim.com
Twitter: @SwiftSimulation
......@@ -41,7 +41,17 @@ Parameters:
black holes seeding.
-x, --velociraptor Run with structure finding.
--limiter Run with time-step limiter.
--sync Run with time-step synchronization
of particles hit by feedback events.
Simulation meta-options:
--eagle Run with all the options needed for the
EAGLE model. This is equivalent to --hydro
--limiter --sync --self-gravity --stars
--star-formation --cooling --feedback
--black-holes --fof.
Control options:
-a, --pin Pin runners using processor affinity.
......
......@@ -57,7 +57,7 @@ Runtime parameters
/____/ |__/|__/___/_/ /_/
SPH With Inter-dependent Fine-grained Tasking
Version : 0.8.4
Version : 0.8.5
Website: www.swiftsim.com
Twitter: @SwiftSimulation
......@@ -92,7 +92,16 @@ Parameters:
perform black hole seeding.
-x, --velociraptor Run with structure finding.
--limiter Run with time-step limiter.
--sync Run with time-step synchronization
of particles hit by feedback events.
Simulation meta-options:
--eagle Run with all the options needed for the
EAGLE model. This is equivalent to --hydro
--limiter --sync --self-gravity --stars
--star-formation --cooling --feedback
--black-holes --fof.
Control options:
-a, --pin Pin runners using processor affinity.
......
......@@ -16,7 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Init the project.
AC_INIT([SWIFT],[0.8.4],[https://gitlab.cosma.dur.ac.uk/swift/swiftsim])
AC_INIT([SWIFT],[0.8.5],[https://gitlab.cosma.dur.ac.uk/swift/swiftsim])
swift_config_flags="$*"
# We want to stop when given unrecognised options. No subdirs so this is safe.
......@@ -71,6 +71,13 @@ AC_USE_SYSTEM_EXTENSIONS
AX_COMPILER_VENDOR
AX_COMPILER_VERSION
# Check whether we have a recent enough GCC
if test "$ax_cv_c_compiler_vendor" = "gnu"; then
AX_COMPARE_VERSION([$ax_cv_c_compiler_version], [ge], [8.1.0],
[gcc_handles_avx512="yes"],
[gcc_handles_avx512="no"])
fi
# Restrict support.
AC_C_RESTRICT
......@@ -85,6 +92,12 @@ AC_ARG_ENABLE([logger],
if test "$with_logger" = "yes"; then
AC_DEFINE([WITH_LOGGER], 1, [logger enabled])
# The logger requires that long long is a 64bit type, let's
# check that.
AC_CHECK_SIZEOF([long long int])
if test "$ac_cv_sizeof_long_long_int" != "8"; then
AC_MSG_ERROR([The particle logger requires that 'long long int' has size 8 bytes])
fi
fi
AM_CONDITIONAL([HAVELOGGER],[test $with_logger = "yes"])
......@@ -463,6 +476,35 @@ if test "$enable_opt" = "yes" ; then
AX_CC_MAXOPT
ac_test_CFLAGS="yes"
# Choose the best flags for the gravity sub-library on this compiler and architecture
if test "$ax_cv_c_compiler_vendor" = "intel"; then
case "$icc_flags" in
*CORE-AVX512*)
GRAVITY_CFLAGS="$GRAVITY_CFLAGS -qopt-zmm-usage=high"
;;
*)
AC_MSG_WARN([No additional flags needed for gravity on this platform])
;;
esac
elif test "$ax_cv_c_compiler_vendor" = "gnu"; then
if test "$gcc_handles_avx512" = "yes"; then
case "$ax_gcc_arch" in
*skylake-avx512*)
GRAVITY_CFLAGS="$GRAVITY_CFLAGS -mprefer-vector-width=512"
;;
*)
AC_MSG_WARN([No additional flags needed for gravity on this platform])
;;
esac
else
AC_MSG_WARN([No additional flags needed for gravity on this platform])
fi
else
AC_MSG_WARN([Do not know what best gravity vectorization flags to choose for this compiler])
fi
AC_ARG_VAR([GRAVITY_CFLAGS], [C compiler flags added to the basic CFLAGS to compile
the gravity-related files.])
# Check SSE & AVX support (some overlap with AX_CC_MAXOPT).
# Don't use the SIMD_FLAGS result with Intel compilers. The -x<code>
# value from AX_CC_MAXOPT should be sufficient.
......@@ -690,7 +732,8 @@ if test "x$with_parmetis" != "xno"; then
PARMETIS_LIBS="-lparmetis -lmetis"
PARMETIS_INCS=""
fi
AC_CHECK_LIB([parmetis],[ParMETIS_V3_RefineKway], [have_parmetis="yes"],
# Note use different function to avoid caching of first check.
AC_CHECK_LIB([parmetis],[ParMETIS_V3_PartKway], [have_parmetis="yes"],
[have_parmetis="no"], [$METIS_LIBS $PARMETIS_LIBS])
fi
......@@ -1022,6 +1065,16 @@ fi
AC_SUBST([TBBMALLOC_LIBS])
AM_CONDITIONAL([HAVETBBMALLOC],[test -n "$TBBMALLOC_LIBS"])
# check for a random seed
AC_ARG_WITH([random-seed],
[AS_HELP_STRING([--with-random-seed=SHORT INT],
[Set the random seed.]
)],
[with_random_seed="$withval"],
[with_random_seed="0"]
)
AC_DEFINE_UNQUOTED([SWIFT_RANDOM_SEED_XOR], [$with_random_seed],[Value of the random seed.])
# Check for python.
have_python="no"
AC_ARG_WITH([python],
......@@ -1388,6 +1441,7 @@ with_subgrid_pressure_floor=none
with_subgrid_stars=none
with_subgrid_star_formation=none
with_subgrid_feedback=none
with_subgrid_task_order=none
case "$with_subgrid" in
yes)
......@@ -1397,12 +1451,14 @@ case "$with_subgrid" in
;;
GEAR)
with_subgrid_cooling=grackle_0
with_subgrid_chemistry=GEAR
with_subgrid_chemistry=GEAR_10
with_subgrid_pressure_floor=GEAR
with_subgrid_stars=GEAR
with_subgrid_star_formation=GEAR
with_subgrid_feedback=none
with_subgrid_feedback=GEAR
with_subgrid_black_holes=none
# GEAR's order is not used anymore
with_subgrid_task_order=none
enable_fof=no
;;
EAGLE)
......@@ -1414,6 +1470,7 @@ case "$with_subgrid" in
with_subgrid_star_formation=EAGLE
with_subgrid_feedback=EAGLE
with_subgrid_black_holes=EAGLE
with_subgrid_task_order=EAGLE
enable_fof=yes
;;
*)
......@@ -1512,8 +1569,11 @@ case "$with_hydro" in
planetary)
AC_DEFINE([PLANETARY_SPH], [1], [Planetary SPH])
;;
sphenix)
AC_DEFINE([SPHENIX_SPH], [1], [SPHENIX SPH])
;;
anarchy-du)
AC_DEFINE([ANARCHY_DU_SPH], [1], [ANARCHY (DU) SPH])
AC_DEFINE([SPHENIX_SPH], [1], [SPHENIX SPH])
;;
anarchy-pu)
AC_DEFINE([ANARCHY_PU_SPH], [1], [ANARCHY (PU) SPH])
......@@ -1744,7 +1804,8 @@ esac
# chemistry function
AC_ARG_WITH([chemistry],
[AS_HELP_STRING([--with-chemistry=<function>],
[chemistry function @<:@none, GEAR, EAGLE default: none@:>@]
[chemistry function @<:@none, GEAR_*, EAGLE default: none@:>@
For GEAR, you need to provide the number of elements (e.g. GEAR_10)]
)],
[with_chemistry="$withval"],
[with_chemistry="none"]
......@@ -1762,8 +1823,10 @@ case "$with_chemistry" in
none)
AC_DEFINE([CHEMISTRY_NONE], [1], [No chemistry function])
;;
GEAR)
GEAR_*)
AC_DEFINE([CHEMISTRY_GEAR], [1], [Chemistry taken from the GEAR model])
number_element=${with_chemistry:5}
AC_DEFINE_UNQUOTED([GEAR_CHEMISTRY_ELEMENT_COUNT], [$number_element], [Number of element to follow])
;;
EAGLE)
AC_DEFINE([CHEMISTRY_EAGLE], [1], [Chemistry taken from the EAGLE model])
......@@ -1773,6 +1836,16 @@ case "$with_chemistry" in
;;
esac
if test "$with_chemistry" != "none"; then
if test "$enable_hand_vec" == "yes"; then
if test "$enable_vec" == "yes"; then
if test "$with_hydro" == "gadget2"; then
AC_MSG_ERROR([Cannot run with hand vectorisation and chemistry yet. Please use --disable-hand-vec])
fi
fi
fi
fi
# Particle tracers
AC_ARG_WITH([tracers],
[AS_HELP_STRING([--with-tracers=<function>],
......@@ -1856,6 +1929,9 @@ case "$with_feedback" in
EAGLE)
AC_DEFINE([FEEDBACK_EAGLE], [1], [EAGLE stellar feedback and evolution model])
;;
GEAR)
AC_DEFINE([FEEDBACK_GEAR], [1], [GEAR stellar feedback and evolution model])
;;
none)
AC_DEFINE([FEEDBACK_NONE], [1], [No feedback])
;;
......@@ -1894,6 +1970,38 @@ case "$with_black_holes" in
;;
esac
# Task order
AC_ARG_WITH([task-order],
[AS_HELP_STRING([--with-task-order=<model>],
[Task order to use @<:@none, EAGLE, GEAR default: none@:>@]
)],
[with_task_order="$withval"],
[with_task_order="none"]
)
if test "$with_subgrid" != "none"; then
if test "$with_task_order" != "none"; then
AC_MSG_ERROR([Cannot provide with-subgrid and with-task-order together])
else
with_task_order="$with_subgrid_task_order"
fi
fi
case "$with_task_order" in
EAGLE)
AC_DEFINE([TASK_ORDER_EAGLE], [1], [EAGLE task order])
;;
none)
AC_DEFINE([TASK_ORDER_NONE], [1], [Default task order])
;;
GEAR)
AC_DEFINE([TASK_ORDER_GEAR], [1], [GEAR task order])
;;
*)
AC_MSG_ERROR([Unknown task ordering: $with_task_order])
;;
esac
# External potential
AC_ARG_WITH([ext-potential],
[AS_HELP_STRING([--with-ext-potential=<pot>],
......@@ -2050,6 +2158,12 @@ AM_CONDITIONAL([HAVEEAGLECOOLING], [test $with_cooling = "EAGLE"])
# Check if using EAGLE feedback
AM_CONDITIONAL([HAVEEAGLEFEEDBACK], [test $with_feedback = "EAGLE"])
# check if using grackle cooling
AM_CONDITIONAL([HAVEGRACKLECOOLING], [test ${with_cooling:0:7} == "grackle"])
# check if using gear feedback
AM_CONDITIONAL([HAVEGEARFEEDBACK], [test $with_feedback == "GEAR"])
# 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 logger/Makefile logger/tests/Makefile])
......@@ -2129,6 +2243,7 @@ AC_MSG_RESULT([
Star formation model : $with_star_formation
Star feedback model : $with_feedback
Black holes model : $with_black_holes
Task dependencies : $with_task_order
Individual timers : $enable_timers
Task debugging : $enable_task_debugging
......
......@@ -38,6 +38,15 @@ can be found by typing ``./swift -h``:
perform black hole seeding.
-x, --velociraptor Run with structure finding.
--limiter Run with time-step limiter.
--sync Run with time-step synchronization
of particles hit by feedback events.
Simulation meta-options:
--eagle Run with all the options needed for the
EAGLE model. This is equivalent to --hydro
--limiter --sync --self-gravity --stars
--star-formation --cooling --feedback
--black-holes --fof.
Control options:
......
......@@ -62,64 +62,3 @@ There is also a compile-time parameter, ``viscosity_beta`` that we set to
``hydro_props_default_viscosity_alpha_feedback_reset = 2.0`` and the
diffusion is set to ``hydro_props_default_diffusion_alpha_feedback_reset =
0.0``. These can be changed in ``src/hydro/AnarchyPU/hydro_parameters.h``.
ANARCHY-DU SPH
==============
This is the new scheme that will be used in EAGLE-XL. This scheme includes:
+ Durier & Dalla Vecchia (2012) time-step limiter
+ Density-Energy SPH
+ Thermal diffusion following Price (2012)
+ A simplified version of the 'Inviscid SPH' artificial viscosity
(Cullen & Dehnen 2010), with a Balsara switch
+ A diffusion limiter, used to prevent energy leakage out of EAGLE
supernovae (Borrow in prep).
More information will be made available in a forthcoming publication.
The simplified version of the 'Inviscid SPH' artificial viscosity calculates
the time differential of the velocity divergence explicitly, using the value
from the previous step. We also use the Balsara switch instead of the improved
neighbour-based limiter from Cullen & Dehnen 2010, to avoid matrix
calculations.
The diffusion limiter is implemented to ensure that the diffusion is turned
ff in very viscous flows and works as follows:
.. code-block:: C
float new_diffusion_alpha = old_diffusion_alpha;
const float viscous_diffusion_limit =
diffusion_alpha_max *
(1.f - maximum_alpha_visc_over_ngb / viscosity_alpha_max);
new_diffusion_alpha = min(new_diffusion_alpha, viscous_diffusion_limit);
The parameters available for this scheme, and their defaults, are:
.. code-block:: yaml
SPH:
viscosity_alpha: 0.1 # Initial value for the alpha viscosity
viscosity_length: 0.25 # Viscosity decay length (in terms of sound-crossing time)
# These are enforced each time-step
viscosity_alpha_max: 2.0 # Maximal allowed value for the viscosity alpha
viscosity_alpha_min: 0.0 # Minimal allowed value for the viscosity alpha
diffusion_alpha: 0.0 # Initial value for the diffusion alpha
diffusion_beta: 0.25 # Timescale to raise the diffusion coefficient over
# (decay is on the sound-crossing time)
# These are enforced each time-step
diffusion_alpha_max: 1.0
diffusion_alpha_min: 0.0
There is also a compile-time parameter, ``viscosity_beta`` that we set to
3.0. During feedback events, the viscosity is set to the compile-time
``hydro_props_default_viscosity_alpha_feedback_reset = 2.0`` and the
diffusion is set to ``hydro_props_default_diffusion_alpha_feedback_reset =
0.0``. These can be changed in ``src/hydro/AnarchyPU/hydro_parameters.h``.
......@@ -18,6 +18,7 @@ schemes available in SWIFT, as well as how to implement your own.
planetary
hopkins_sph
anarchy_sph
sphenix_sph
gizmo
adding_your_own
.. SPHENIX SPH
Josh Borrow 8th January 2020
SPHENIX
=======
This is the new scheme that will be used in EAGLE-XL. This scheme includes:
+ Durier & Dalla Vecchia (2012) time-step limiter
+ Density-Energy SPH
+ Thermal diffusion following Price (2012)
+ A simplified version of the 'Inviscid SPH' artificial viscosity
(Cullen & Dehnen 2010), with a Balsara switch
+ A diffusion limiter, used to prevent energy leakage out of EAGLE
supernovae (Borrow+ 2020).
The simplified version of the 'Inviscid SPH' artificial viscosity calculates
the time differential of the velocity divergence explicitly, using the value
from the previous step. We also use the Balsara switch instead of the improved
neighbour-based limiter from Cullen & Dehnen 2010, to avoid matrix
calculations.
To configure with this scheme, use
.. code-block:: bash
./configure --with-hydro=sphenix --with-kernel=quintic-spline --disable-hand-vec
The diffusion limiter is implemented to ensure that the diffusion is turned
off in very viscous flows and works as follows:
.. code-block:: C
float new_diffusion_alpha = old_diffusion_alpha;
const float viscous_diffusion_limit =
diffusion_alpha_max *
(1.f - maximum_alpha_visc_over_ngb / viscosity_alpha_max);
new_diffusion_alpha = min(new_diffusion_alpha, viscous_diffusion_limit);
The parameters available for this scheme, and their defaults, are:
.. code-block:: yaml
SPH:
viscosity_alpha: 0.1 # Initial value for the alpha viscosity
viscosity_length: 0.25 # Viscosity decay length (in terms of sound-crossing time)
# These are enforced each time-step
viscosity_alpha_max: 2.0 # Maximal allowed value for the viscosity alpha
viscosity_alpha_min: 0.0 # Minimal allowed value for the viscosity alpha
diffusion_alpha: 0.0 # Initial value for the diffusion alpha
diffusion_beta: 0.25 # Timescale to raise the diffusion coefficient over
# (decay is on the sound-crossing time)
# These are enforced each time-step
diffusion_alpha_max: 1.0
diffusion_alpha_min: 0.0
There is also a compile-time parameter, ``viscosity_beta`` that we set to
3.0. During feedback events, the viscosity is set to the compile-time
``hydro_props_default_viscosity_alpha_feedback_reset = 2.0`` and the
diffusion is set to ``hydro_props_default_diffusion_alpha_feedback_reset =
0.0``. These can be changed in ``src/hydro/SPHENIX/hydro_parameters.h``.
Pressure Floor
~~~~~~~~~~~~~~
The pressure floor is implemented for this scheme. The
pressure floor is used in the sound-speed and hence the
time-step will be lower in this case than if the pressure
floor was not taken into account. The only other impact
of the pressure floor is in the force loop, where the
sub-grid floor pressure is used instead of the pressure
calculated from the internal energy and density.
Logger Output
=============
The logger is a particle based output (e.g. snapshot) that takes into account the large difference of timescale.
If you have any question, a slack channel is available for it in SWIFT's slack.
To run it, you will need to use the configuration option ``--enable-logger``.
Currently the logger is implemented only for Gadget2 and the default gravity / stars, but can be easily extended to the other schemes by adding the logger structure to the particles (see ``src/hydro/Gadget2/hydro_part.h``).
The main parameters of the logger are ``Logger:delta_step`` and ``Logger:index_mem_frac`` that define the time accuracy of the logger and the number of index files.
The first parameter defines the number of active steps that a particle is doing before writing and the second defines the total storage size of the index files as function of the dump file.
Unfortunately, the API is not really developed yet. Therefore if you wish to dump another field, you will need to trick the logger by replacing a field in the ``logger_log_part`` function.
For reading, the python wrapper is available through the configuration option ``--with-python``. Once compiled, you will be able to use the file ``logger/examples/reader_example.py``.
The first argument is the basename of the index file and the second one is the time requested.
During the first reading, the library is manipulating the dump file and therefore it should not be killed and may take a bit more time than usual.
......@@ -38,7 +38,12 @@ Example of file with redshift::
If an output list is specified, the basic values for the first
snapshot (``time_first``, ``scale_factor_first``) and difference
(``delta_time``) are ignored.
When an output list is used SWIFT will not write a "0th" snapshot
straight after having read the ICs. Similarly, SWIFT will also *not*
write a snapshot at the end of a simulation unless a snapshot at the
final time is specified in the list.
.. _Output_selection_label:
Output Selection
......
......@@ -222,8 +222,12 @@ The accuracy of the gravity calculation is governed by the following two paramet
* The time-step size pre-factor :math:`\eta`: ``eta``,
The time-step of a given particle is given by :math:`\Delta t =
\sqrt{\frac{2\eta\epsilon}{|\overrightarrow{a}|}}`, where
:math:`\overrightarrow{a}` is the particle's acceleration. `Power et al. (2003) <http://adsabs.harvard.edu/abs/2003MNRAS.338...14P>`_ recommend using :math:`\eta=0.025`.
\sqrt{2\eta\epsilon_i/|\overrightarrow{a}_i|}`, where
:math:`\overrightarrow{a}_i` is the particle's acceleration and
:math:`\epsilon_i` its (spline) softening length. `Power et al. (2003)
<http://adsabs.harvard.edu/abs/2003MNRAS.338...14P>`_ recommend using
:math:`\eta=0.025`.
The last tree-related parameter is
* The tree rebuild frequency: ``rebuild_frequency``.
......@@ -233,7 +237,7 @@ The tree rebuild frequency is an optional parameter defaulting to
fraction of the particles have been integrated (kicked) forward in time.
Simulations using periodic boundary conditions use additional parameters for the
Particle-Mesh part of the calculation. The last three are optional:
Particle-Mesh part of the calculation. The last five are optional:
* The number cells along each axis of the mesh :math:`N`: ``mesh_side_length``,
* The mesh smoothing scale in units of the mesh cell-size :math:`a_{\rm
......@@ -244,9 +248,17 @@ Particle-Mesh part of the calculation. The last three are optional:
* The scale below which the short-range forces are assumed to be exactly Newtonian (in units of
the mesh cell-size multiplied by :math:`a_{\rm smooth}`) :math:`r_{\rm
cut,min}`: ``r_cut_min`` (default: ``0.1``),
* Whether or not to dither the particles randomly at each tree rebuild:
``dithering`` (default: ``1``),
* The magnitude of each component of the dithering vector to use in units of the
top-level cell sizes: ``dithering_ratio`` (default: ``1.0``).
For most runs, the default values can be used. Only the number of cells along
each axis needs to be specified. The remaining three values are best described
each axis needs to be specified. The mesh dithering is only used for simulations
using periodic boundary conditions and in the absence of an external potential.
At each tree rebuild time, all the particles are moved by a random vector (the
same for all particles) and the periodic BCs are then applied. This reduces the
correlation of erros across time. The remaining three values are best described
in the context of the full set of equations in the theory documents.
As a summary, here are the values used for the EAGLE :math:`100^3~{\rm Mpc}^3`
......@@ -257,17 +269,18 @@ simulation:
# Parameters for the self-gravity scheme for the EAGLE-100 box
Gravity:
eta: 0.025
theta: 0.7
theta: 0.6
mesh_side_length: 512
comoving_DM_softening: 0.0026994 # 0.7 proper kpc at z=2.8.
max_physical_DM_softening: 0.0007 # 0.7 proper kpc
comoving_baryon_softening: 0.0026994 # 0.7 proper kpc at z=2.8.
max_physical_baryon_softening: 0.0007 # 0.7 proper kpc
rebuild_frequency: 0.01 # Default optional value
a_smooth: 1.25 # Default optional value
r_cut_max: 4.5 # Default optional value
r_cut_min: 0.1 # Default optional value
a_smooth: 1.25 # Default optional value
r_cut_max: 4.5 # Default optional value
r_cut_min: 0.1 # Default optional value
dithering: 1 # Default optional value
dithering_ratio: 1.0 # Default optional value
.. _Parameters_SPH:
......@@ -360,6 +373,15 @@ prevent the smoothing length from going below this value in dense
environments. This will lead to smoothing over more particles than specified
by :math:`\eta`.
The optional parameter ``particle_splitting`` (Default: 0) activates the
splitting of overly massive particles into 2. By switching this on, the code
will loop over all the particles at every tree rebuild and split the particles
with a mass above a fixed threshold into two copies that are slightly shifted
(by a randomly orientated vector of norm :math:`0.2h`). Their masses and other
relevant particle-carried quantities are then halved. The mass threshold for
splitting is set by the parameter ``particle_splitting_mass_threshold`` which is
specified using the internal unit system.
The final set of parameters in this section determine the initial and minimum
temperatures of the particles.
......@@ -386,14 +408,17 @@ The full section to start a typical cosmological run would be:
.. code:: YAML
SPH:
resolution_eta: 1.2
CFL_condition: 0.1
h_tolerance: 1e-4
h_min_ratio: 0.1
initial_temperature: 273
minimal_temperature: 100
H_mass_fraction: 0.755
H_ionization_temperature: 1e4
resolution_eta: 1.2
CFL_condition: 0.1
h_tolerance: 1e-4
h_min_ratio: 0.1
h_max: 1. # U_L
initial_temperature: 273 # U_T
minimal_temperature: 100 # U_T
H_mass_fraction: 0.755
H_ionization_temperature: 1e4 # U_T
particle_splitting: 1
particle_splitting_mass_threshold: 5e-3 # U_M
.. _Parameters_Stars:
......@@ -618,6 +643,15 @@ the case of non-cosmological runs, the time of the first snapshot is expressed
in the internal units of time. Users also have to provide the difference in time
(or scale-factor) between consecutive outputs:
* Directory in which to write snapshots: ``subdir``.
(default: empty string).
If this is set then the full path to the snapshot files will be generated by
taking this value and appending a slash and then the snapshot file name
described above - e.g. ``subdir/base_name_1234.hdf5``. The directory is
created if necessary. Any VELOCIraptor output produced by the run is also written
to this directory.
* Time difference between consecutive outputs: ``delta_time``.