Download Cactus/Einstein Toolkit source code : it will be put in the Cactus/ folder.
curl -kLO https://raw.githubusercontent.com/gridaphobe/CRL/ET_2014_11/GetComponents
chmod a+x GetComponents
./GetComponents --parallel https://bitbucket.org/einsteintoolkit/manifest/raw/ET_2014_11/einsteintoolkit.th
See also the official page if needed.
To compile, we need a configuration file and a thornlist.
Here is a working config file c3.cfg I usually used. Modifications may be needed for a new machine/compiler. More configuration example can be found in
Cactus/simfactory/mdb/optionlists/*.cfg
The thornlist determines what to compile. However, it is not necessary to compile everything in the einsteintoolkit.th, so I prepare the BSSN_Hydro.th for a minimal combination.
Otherwise, you might need some try-and-error to determine the minimal set of thorns.
Now compile the cactus in the cactus folder, and the execute file will be placed at Cactus/exe/cactus_<NAME> :
cd Cactus
make <NAME>-delete ## Delete the old project.
make <NAME>-config THORNLIST=BSSN_Hydro.th options=c3.cfg ## Then config. You need say "yes" if asked.
make <NAME> ## Compile and link.
Cactus automatically build external libraries such as LAPACK, hwloc, GSL, HDF5, FFTW3, etc.
However, you can use your own version for performance or saving the compilation time.
Run the Cactus simply by
cactus_<NAME> [parameter file] ## Parameter file example: Cactus/arrangements/EinsteinEvolve/GRHydro/test/balsara1_1d.par
More input parameter file can be found in the thorn source folders, say, Cactus/arrangements/EinsteinEvolve/GRHydro/test
The meaning of each parameter is explained in the thorn doc or Cactus/arrangements/<thorn>/param.ccl