Parameter file¶
The configuration file for Simbelmynë is an ASCII text file. The recommended extension is .sbmy
. A template is provided below, and it can also be generated using python.
Template¶
## ----------------------------------------------------------------------------------------------------------------------- ##
## ----------------------------- _ _ _ ------------------------------- ##
## ----------------------------- (_) | | | | ------------------------------- ##
## ----------------------------- ___ _ _ __ ___ | |__ ___| |_ __ ___ _ _ _ __ ___ ------------------------------- ##
## ----------------------------- / __| | '_ ` _ \| '_ \ / _ \ | '_ ` _ \| | | | '_ \ / _ \ ------------------------------- ##
## ----------------------------- \__ \ | | | | | | |_) | __/ | | | | | | |_| | | | | __/ ------------------------------- ##
## ----------------------------- |___/_|_| |_| |_|_.__/ \___|_|_| |_| |_|\__, |_| |_|\___| ------------------------------- ##
## ----------------------------- __/ | ------------------------------- ##
## ----------------------------- |___/ ------------------------------- ##
## ----------------------------------------------------------------------------------------------------------------------- ##
## ----------------------------------------------------------------------------------------------------------------------- ##
## Setup ----------------------------------------------------------------------------------------------------------------- ##
## ----------------------------------------------------------------------------------------------------------------------- ##
SnapFormat 3
NumFilesPerSnapshot 1
## ----------------------------------------------------------------------------------------------------------------------- ##
## Module LPT ------------------------------------------------------------------------------------------------------------ ##
## ----------------------------------------------------------------------------------------------------------------------- ##
ModuleLPT 1
InputRngStateLPT 0
# Set this to '0' to reset the random number generator
OutputRngStateLPT dummy.rng
# Basic setup: -------------------------
Particles 128
# Number of particles in each dimension of the initial grid
Mesh 128
# The grid on which densities are computed
BoxSize 200.0
corner0 -100.0
corner1 -100.0
corner2 -100.0
# Initial conditions: ------------------
ICsMode 0
# 0 : the codes generates white noise, then initial conditions
# 1 : external white noise specified, the code multiplies by the power spectrum
# 2 : external initial conditions specified
WriteICsRngState 0
OutputICsRngState dummy.rng
WriteWhiteNoise 0
OutputWhiteNoise initial_density_white.h5
# Only used if ICsMode=0
InputWhiteNoise initial_density_white.h5
# Only used if ICsMode=1
InputInitialConditions initial_density.h5
# Only used if ICsMode=2
WriteInitialConditions 0
OutputInitialConditions initial_density.h5
# At a scale factor of a=1e-3
# Power spectrum: ----------------------
InputPowerSpectrum input_power.h5
# Only used if ICsMode=0 or 1
# Final conditions: --------------------
RedshiftLPT 0.0
WriteLPTSnapshot 1
OutputLPTSnapshot lpt_particles.gadget3
WriteLPTDensity 1
OutputLPTDensity lpt_density.h5
## ----------------------------------------------------------------------------------------------------------------------- ##
## Module PM/COLA -------------------------------------------------------------------------------------------------------- ##
## ----------------------------------------------------------------------------------------------------------------------- ##
ModulePMCOLA 0
EvolutionMode 2
# 1 : PM
# 2 : COLA
ParticleMesh 128
# The grid used in the particle-mesh code
NumberOfTimeSteps 10
TimeStepDistribution 0
# 0 : linear in the scale factor
# 1 : logarithmic in the scale factor
# 2 : exponential in the scale factor
ModifiedDiscretization 1
# Use modified discretization of Kick and Drift operators in COLA
n_LPT -2.5
# Exponent for the Ansatz in the modified Kick and Drift operators in COLA, only used if ModifiedDiscretization=1
# Intermediate snapshots: --------------
WriteSnapshots 0
OutputSnapshotsBase particles_
OutputSnapshotsExt .gadget3
WriteDensities 0
OutputDensitiesBase density_
OutputDensitiesExt .h5
# Final snapshot: ----------------------
RedshiftFCs 0.0
WriteFinalSnapshot 0
OutputFinalSnapshot final_particles.gadget3
WriteFinalDensity 1
OutputFinalDensity final_density.h5
## ----------------------------------------------------------------------------------------------------------------------- ##
## Module RSD ------------------------------------------------------------------------------------------------------------ ##
## ----------------------------------------------------------------------------------------------------------------------- ##
ModuleRSD 0
DoNonLinearMapping 0
vobs0 0.0
vobs1 0.0
vobs2 0.0
# Velocity of the observer with respect to the CMB/galaxies frame
alpha1RSD 1.0
DoLPTSplit 0
alpha2RSD 1.0
# RSD model:
# if doLPTSplit=false:
# z_obs = z_cosmo + (1+z_cosmo) * alpha1RSD * z_pec
# else:
# z_obs = z_cosmo + (1+z_cosmo) * (alpha1RSD * z_pec_LPT + alpha2RSD * (z_pec-z_pec_LPT))
# alpha1RSD=alpha2RSD=1 in LCDM
# Reshift-space snapshot: --------------
WriteRSSnapshot 0
OutputRSSnapshot rs_particles.gadget3
WriteRSDensity 1
OutputRSDensity rs_density.h5
## ----------------------------------------------------------------------------------------------------------------------- ##
## Module Mock Catalogs -------------------------------------------------------------------------------------------------- ##
## ----------------------------------------------------------------------------------------------------------------------- ##
ModuleMocks 0
InputRngStateMocks 0
# Set this to '0' to reset the random number generator
OutputRngStateMocks dummy.rng
WriteMocksRngState 0
OutputMocksRngState dummy.rng
NoiseModel 1
# 0 : Gaussian linear model
# 1 : Poisson model
NumberOfNoiseRealizations 5
# Should be about NumberOfkBins^2 for a Poisson noise model
# Inputs: ------------------------------
InputDensityMocks lpt_density.h5
# Only used if ModuleLPT is switched off, uses final density produced by LPT/PM/COLA otherwise
InputSurveyGeometry input_survey_geometry.h5
InputSummaryStatskGrid input_ss_k_grid.h5
# Only mandatory if WriteSummaryStats=1
# Output mocks: ------------------------
WriteMocks 1
OutputMockBase output_mock_
OutputMockExt .h5
# Output summaries: --------------------
WriteSummaryStats 1
OutputSummaryStats output_ss.h5
## ----------------------------------------------------------------------------------------------------------------------- ##
## Cosmological model ---------------------------------------------------------------------------------------------------- ##
## ----------------------------------------------------------------------------------------------------------------------- ##
# Planck 2015 cosmological parameters (Planck 2015 XIII, p31, table 4, last column)
# The equation of state of dark energy is parametrized by w(a) = w0_fld + (1-a)/a0 * wa_fld
h 0.6774
Omega_r 0.0
Omega_q 0.6911
Omega_b 0.0486
Omega_m 0.3089
Omega_k 0.0
n_s 0.9667
sigma8 0.8159
w0_fld -1.0
wa_fld 0.0
Generation with python¶
The most convenient and recommended way to generate a Simbelmynë parameter file is using python.
The python class param_file
defined in pysbmy/pysbmy.py
represents a Simbelmynë parameter file. An instance can be created and written on the disk, using (for example):
from pysbmy import param_file
S=param_file(Particles=128, Mesh=128, BoxSize=250, corner0=-125, corner1=-125, corner2=-125, WriteInitialConditions=1)
S.write("config.sbmy")
Any parameter that is not defined when creating an instance of the class param_file
is set to its default value.
Description and default values¶
Setup¶
SnapFormat
(default3
): Snapshot format, using standards of the Gadget simulation code. See the user guide for GADGET for a description. Accepted values: 1 (Gadget file format 1), 2 (Gadget file format 2), 3 (Gadget HDF file format).NumFilesPerSnapshot
(default1
): Number of files per snapshot.
Module LPT¶
ModuleLPT
(default1
): Switch ON/OFF the module LPT. Accepted values: 0 or 1.InputRngStateLPT
(default0
): Path to the input random number generator state (before module LPT is executed). Set this to ‘0’ to reset the random number generatorOutputRngStateLPT
(defaultdummy.rng
): Path to the output random number generator state (after module LPT is executed).
Basic setup¶
Particles
(default128
): Number of particles in each dimension of the initial gridMesh
(default128
): Number of points in each dimension of the grid on which densities are computedBoxSize
(default200.0
): Box size in Mpc/h.corner0
(default-100.0
): x-position in Mpc/h of the corner of the box with respect to the observer (which is at (0,0,0)).corner1
(default-100.0
): y-position in Mpc/h of the corner of the box with respect to the observer (which is at (0,0,0)).corner2
(default-100.0
): z-position in Mpc/h of the corner of the box with respect to the observer (which is at (0,0,0)).
Initial conditions¶
ICsMode
(default0
): Switch for the initial conditions mode. Accepted values: 0, 1, 2. 0 : the codes generates white noise, then initial conditions. 1 : external white noise specified, the code multiplies by the power spectrum. 2 : external initial conditions specified.WriteICsRngState
(default0
): Switch ON/OFF to write the random number generator state before generation of the initial conditions. Accepted values: 0 or 1.OutputICsRngState
(defaultdummy.rng
): Path to the random number generator state before generation of the initial conditions, ifWriteICsRngState
is1
.WriteWhiteNoise
(default0
): Switch ON/OFF to write the white noise field.OutputWhiteNoise
(defaultinitial_density_white.h5
): Path to the output white noise field (only used ifICsMode
is0
andWriteWhiteNoise
is1
).InputWhiteNoise
(defaultinitial_density_white.h5
): Path to the input white noise field (only used ifICsMode
is1
).InputInitialConditions
(defaultinitial_density.h5
): Path to the input initial conditions (only used ifICsMode
is2
).WriteInitialConditions
(default0
): Switch ON/OFF to write the initial conditons, at a scale factor of \(a=10^{-3}\).OutputInitialConditions
(defaultinitial_density.h5
): Path to the output initial conditions (only used ifWriteInitialConditions
is1
andWriteInitialConditions
is1
).
Power spectrum¶
InputPowerSpectrum
(default:input_power.h5
): Path to the input power spectrum, in Simbelmynë standard HDF5 file format. Only used ifICsMode
is0
or1
.
Final conditions¶
RedshiftLPT
(default:0.0
): Redshift to which particles/densities are evolved after module LPT.WriteLPTSnapshot
(default:1
): Switch ON/OFF to write the snapshot after module LPT.OutputLPTSnapshot
(default:lpt_particles.gadget3
): Path to the snapshot after module LPT, ifWriteLPTSnapshot
is1
.WriteLPTDensity
(default:1
): Switch ON/OFF to write the density field after module LPT.OutputLPTDensity
(default:lpt_density.h5
): Path to the snapshot after module LPT, ifWriteLPTDensity
is1
.
Module PM/COLA¶
ModulePMCOLA
(default:0
): Switch ON/OFF the module PM/COLA. Accepted values: 0 or 1.EvolutionMode
(default:2
): Evolution mode. Accepted values: 1 or 2. 1 : PM. 2 : COLA.ParticleMesh
(default:128
): Number of points in each dimension of the grid used in the particle-mesh code.NumberOfTimeSteps
(default:10
): Number of timesteps.TimeStepDistribution
(default:0
): Timesteps distribution. Accepted values: 0, 1, 2. 0 : linear in the scale factor. 1 : logarithmic in the scale factor. 2 : exponential in the scale factor.ModifiedDiscretization
(default:1
): Switch ON/OFF to use the modified discretization of Kick and Drift operators in COLA. For details see Appendix A in Tassev, Zaldarriaga & Eisenstein 2013. Accepted values: 0 or 1.n_LPT
(default:-2.5
): Exponent for the Ansatz in the modified Kick and Drift operators in COLA, only used ifModifiedDiscretization
is1
.
Intermediate snapshots¶
WriteSnapshots
(default:0
): Switch ON/OFF to write intermediate snapshots. Accepted values: 0 or 1.OutputSnapshotsBase
(default:particles_
): Base of the output snapshots filename, ifWriteSnapshots
is1
.OutputSnapshotsExt
(default:.gadget3
): Extension of the output snapshots filename, ifWriteSnapshots
is1
.WriteDensities
(default:0
): Switch ON/OFF to write intermediate density fields. Accepted values: 0 or 1.OutputDensitiesBase
(default:density_
): Base of the output density fields filename, ifWriteDensities
is1
.OutputDensitiesExt
(default:.h5
): Extension of the output density fields snapshot filename, ifWriteDensities
is1
.
Final snapshot¶
RedshiftFCs
(default:0.0
): Redshift to which particles/densities are evolved after module PM/COLA.WriteFinalSnapshot
(default:0
): Switch ON/OFF to write the final snapshot. Accepted values: 0 or 1.OutputFinalSnapshot
(default:final_particles.gadget3
): Path to the output final snapshot, ifWriteFinalSnapshot
is1
.WriteFinalDensity
(default:1
): Switch ON/OFF to write the final density field. Accepted values: 0 or 1.OutputFinalDensity
(default:final_density.h5
): Path to the output final density field, ifWriteFinalDensity
is1
.
Module RSD¶
ModuleRSD
(default:0
): Switch ON/OFF the module RSD. Accepted values: 0 or 1.DoNonLinearMapping
(default:0
): Switch ON/OFF to do the non-linear redshift-space distortions mapping. Accepted values: 0 or 1.vobs0
(default:0.0
): x-velocity of the observer with respect to the CMB/galaxies frame, in km/s.vobs1
(default:0.0
): y-velocity of the observer with respect to the CMB/galaxies frame, in km/s.vobs2
(default:0.0
): z-velocity of the observer with respect to the CMB/galaxies frame, in km/s.alpha1RSD
(default:1.0
): Value of \(\alpha_1\) (should be 1 in LCDM).DoLPTSplit
(default:0
): Switch ON/OFF to do split with the LPT velocity. Accepted values: 0 or 1.alpha2RSD
(default:1.0
): Value of \(\alpha_2\) (should be 1 in LCDM). Equivalent toDoLPTSplit=0
if \(\alpha_2 = \alpha_1\).
The RSD model is the following:
- if
DoNonLinearMapping=0
anddoLPTSplit=0
: \(\textbf{s} = \textbf{r} + \alpha_1 \times (\textbf{v} \cdot \textbf{r}) \times \textbf{r} /(H |\textbf{r}|^2)\). - if
DoNonLinearMapping=0
anddoLPTSplit=1
: \(\textbf{s} = \textbf{r} + \alpha_1 \times (\textbf{v}_\mathrm{LPT} \cdot \textbf{r}) \times \textbf{r} /(H |\textbf{r}|^2) + \alpha_2 \times ((\textbf{v}-\textbf{v}_\mathrm{LPT}) \cdot \textbf{r}) \times \textbf{r} /(H |\textbf{r}|^2)\). - if
DoNonLinearMapping=1
anddoLPTSplit=0
: \(z_\mathrm{obs} = z_\mathrm{cosmo} + (1+z_\mathrm{cosmo}) \times \alpha_1 \times z_\mathrm{pec}\). - if
DoNonLinearMapping=1
anddoLPTSplit=1
: \(z_\mathrm{obs} = z_\mathrm{cosmo} + (1+z_\mathrm{cosmo}) \times (\alpha_1 \times z_\mathrm{pec,LPT} + \alpha_2 \times (z_\mathrm{pec}-z_\mathrm{pec,LPT}))\).
Reshift-space snapshot¶
WriteRSSnapshot
(default:0
): Switch ON/OFF to write the redshift-space snapshot. Accepted values: 0 or 1.OutputRSSnapshot
(default:rs_particles.gadget3
): Path to the output redshift-space snapshot, ifWriteRSSnapshot
is1
.WriteRSDensity
(default:1
): Switch ON/OFF to write the redshift-space density field. Accepted values: 0 or 1.OutputRSDensity
(default:rs_density.h5
): Path to the output redshift-space density field, ifWriteRSDensity
is1
.
Module Mock Catalogs¶
ModuleMocks
(default:0
): Switch ON/OFF the module Mock Catalogs. Accepted values: 0 or 1.InputRngStateMocks
(default:0
): Path to the input random number generator state (before module Mock Catalogs is executed). Set this to ‘0’ to reset the random number generatorOutputRngStateMocks
(default:dummy.rng
): Path to the output random number generator state (after module Mock Catalogs is executed).WriteMocksRngState
(default:0
): Switch ON/OFF to write the random number generator state before generation of mock catalogs. Accepted values: 0 or 1.OutputMocksRngState
(defaultdummy.rng
): Path to the random number generator state before generation of mock catalogs, ifWriteMocksRngState
is1
.NoiseModel
(default:1
): Noise model. Accepted values: 0, 1. 0 : Gaussian linear model. 1 : Poisson model.NumberOfNoiseRealizations
(default:5
): Number of noise realizations desired. Should be of order number of k-bins squared for a Poisson noise model.
Inputs¶
InputDensityMocks
(default:lpt_density.h5
): Path to the input density for mock catalogs. Only used if ModuleLPT is switched off, uses final density produced by LPT/PM/COLA otherwise.InputSurveyGeometry
(default:input_survey_geometry.h5
): Path to the input survey geometry.InputSummaryStatskGrid
(default:input_ss_k_grid.h5
): Path to the input k-grid for the output summary statistics. Only mandatory ifWriteSummaryStats
is1
.
Output mocks¶
WriteMocks
(default:1
): Switch ON/OFF to write the mock catalogs. Accepted values: 0 or 1.OutputMockBase
(default:output_mock_
): Base of the output mock catalogs filename, ifWriteMocks
is1
.OutputMockExt
(default:.h5
): Extension of the output mock catalogs filename, ifWriteMocks
is1
.
Output summaries¶
WriteSummaryStats
(default:1
): Switch ON/OFF to write summary statistics. Accepted values: 0 or 1.OutputSummaryStats
(default:output_ss.h5
): Path to the output summary statistics, ifWriteSummaryStats
is1
.
Cosmological model¶
The cosmological model. Default values are Planck 2015 cosmological parameters (see Planck 2015 results. XIII. Cosmological parameters, page 32, table 4, last column). The equation of state of dark energy is parametrized (as in CLASS) by \(w(a) = w_0 + (1-a)/a_0 \times w_a\).
h
(default:0.6774
): Hubble constantOmega_r
(default:0.0
): radiation densityOmega_q
(default:0.6911
): dark energy densityOmega_b
(default:0.0486
): baryon densityOmega_m
(default:0.3089
): matter densityOmega_k
(default:0.0
): curvature densityn_s
(default:0.9667
): spectral indexsigma8
(default:0.8159
): \(\sigma_8\)w0_fld
(default:-1.0
): dark energy equation of statewa_fld
(default:0.0
): dark energy equation of state
Known issue¶
Sometimes when the ASCII template is used and/or the parameter file is modified “by hand” using certain text editors (among which vim), Simbelmynë will produce an error when parsing:
[XX:XX:XX|STATUS ]|Reading parameter file in 'config.sbmy'...
[XX:XX:XX|ERROR ]==|Error in utils.c:p_fgets:197: Incorrect reading in read_param.c:read_parameterfile:603.
[XX:XX:XX|ERROR ]==|Error in utils.c:p_fgets:199: Attempting to read: .
[XX:XX:XX|ERROR ]==|Error in utils.c:p_fgets:200: I/O error (fgets)
This seems to be linked to end-of-line characters and will be later fixed. For the moment, the most convenient way to bypass this problem is to use the python generator.