Initial conditions =================== There are a couple main ways in which initial conditions can be set in Nyx: using an ASCII particle file, using binary particle file(s), using a uniform particle setup, using a random particle setup, using a binary mesh file setup, or using an analytic setup. As said in the Units section of the documentation, the units are: Mpc, M\ :math:`_\odot`, and km/s, and particle velocities should be peculiar proper velocities. Start from an ASCII file ------------------------ To enable this option, set:: nyx.particle_init_type = AsciiFile nyx.ascii_particle_file = *particle_file* Here *particle_file* is the user-specified name of the file. The first line in this file is (long) assumed to contain the number of particles. Each line after that contains x y z mass vx vy vz Start from a binary file ------------------------ To enable this option, set:: nyx.particle_init_type = BinaryFile nyx.binary_particle_file = *particle_file* With binary file, the header should have 3 numbers: (long) NP, which is the total number of particles in the file followed by the (int) DM=3 (number of dimensions), and (int) NX=4 (number of "extra" fields). Following this small header, 7 float numbers should be listed for each particle as before: x y z mass vx vy vz. The main difference between the ASCII and binary format thus amounts to a different header. Here is an example C++ code which writes a Nyx-readable binary file:: fwrite(&npart, sizeof(long), 1, outFile); fwrite(&DM, sizeof(int), 1, outFile); fwrite(&NX, sizeof(int), 1, outFile); for(i=0; i