ICs power spectrum
In some cases we may want to compute the power spectrum of the initial density field of a simulation. The particle positions from the initial conditions can be used to estimate that. However, this will only be an approximation.
We have modified the N-GenIC code by Volker Springel to output the modes amplitudes, phases, and wavenumbers of the initial density field; you can find this N-GenIC version here.
When generating initial conditions with that code (switch the DOUTPUT_DF
flag in the Makefile), several files will be written starting with Amplitudes_
, Coordinates_
, and Phases_
. Pylians provides the routine Pk_NGenIC_IC_field
that can be used to compute the power spectrum of the initial field from those files. The arguments of that function are these:
f_coordinates
. The prefix of the files containing the modes coordinates. Note that only the prefix is needed, not the whole file name (or file names when multiple files).f_amplitudes
. The prefix of the files containing the modes amplitudes. Note that only the prefix is needed, not the whole file name (or file names when multiple files).BoxSize
. Size of the simulation box in Mpc/h.
An example of how to use the routine is this
import numpy as np
import Pk_library as PKL
# parameters
f_coordinates = 'Coordinates_ptype_1' #modes coordinates of the dark matter (ptype 1)
f_amplitudes = 'Amplitudes_ptype_1' #modes amplitudes of the dark matter (ptype 1)
BoxSize = 512.0 #Mpc/h
# compute Pk of the initial field
# k will be in h/Mpc, while P(k) will have (Mpc/h)^3 units
k, Pk, Nmodes = PKL.Pk_NGenIC_IC_field(f_coordinates, f_amplitudes, BoxSize)