Skip to content

Instantly share code, notes, and snippets.

@smutch
Last active July 21, 2020 01:20
Show Gist options
  • Save smutch/49577e2991d071208d70f1951b4de708 to your computer and use it in GitHub Desktop.
Save smutch/49577e2991d071208d70f1951b4de708 to your computer and use it in GitHub Desktop.
Running Meraxes on Raijin with a new input sim

Meraxes on Raijin

Tested with the following modules:

- Package -----------------------------+- Versions -+- Last mod. ------
gcc/4.9.0                                            2014/07/03  4:40:12
openmpi/4.0.0                                        2019/01/30  4:13:57
cmake/3.14.4                                         2019/05/16 23:37:18
gsl/2.5                                              2018/06/21  0:53:02
fftw3/3.3.8                                          2018/12/14  3:21:18
hdf5/1.10.2p                                         2018/04/30  0:01:31

Build the code

cd src
mkdir build
cd build
CMAKE_PREFIX_PATH=/apps/openmpi/4.0.1 cmake ..
make

N.B. For some reason the mpicc wrapper does not give include dir info so setting CMAKE_PREFIX_PATH is required.

If all goes to plan, the meraxes executable can be found in ./bin/, and a pre-filled input.par file can be found in the current directory.

Setting up a new input simulation

To do the domain decompostion (based on tree-forests), Meraxes requires some extra input files to be generated. The code further assumes a standard layout for the input trees. An example is:

Genesis-L35_N2650
├── a_list.txt
├── grids
└── trees
    ├── meraxes_augmented_stats.h5
    └── VELOCIraptor.tree.t4.0-100.walkabletree.forestID.hdf5

These can be symlinks where appropriate. The grids directory need not exist if you do not want to run with patchy reionisation on. The VELOCIraptor[...] file must be a version which includes forest IDs but can have any filename. The code to generate the a_list.txt and meraxes_augmented_stats.h5 files can be found here. It should install straightforwardly with pip (🤞).

Once this input N-body directory has been set up, a new input file needs to be created... Go to the meraxes/input directory and find the simulation closest to the new one and copy this, naming the new file appropriately. Then edit any fields to match the new simulation. Particularly note the following parameters:

  • FileNameGalaxies
  • SimName
  • SimulationDir
  • CatalogFilePrefix
  • BoxSize
  • ... and all of the cosmology parameters at the bottom of the file

Running the model

The easiest method is to go to the src directory and then run the following:

RUNDIR={path to your run} make setuprun

This will create the run directory if it doesn't already exist, and then copy across the necessary files for the run.

The next step is to go to the run directory and then modify the input.par file appropriately. In particular, make sure it is pointing to the correct DefaultsFile (i.e. the one you just created above). You can then override any parameters from the defaults file here. i.e. you can set the star formation efficiency to a new value with SfEfficiency : 0.04. There should be one parameter set per line, just as in the defaults file.

The snaplist.txt file contains a list of all of the snapshots which you want to be outputted. The format is a single line with each entry separated by a space. A quick way to update this file is to use the seq command. e.g. if you want all snapshots from 20 to 100:

seq -s ' ' 20 100 > snaplist.txt

That's it! Now the model should run using mpirun/mpiexec...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment