Quick Links
Cactus
Carpet

 

Howto Whisky

Whisky is a collection of modules (called thorns) for the Cactus framework. So, you will need some Cactus components as well. The easiest way to do this is to use a checkout script, usually called after its name: 'GetCactus'. This script accepts one parameter: a thornlist. This is a list of thorns connected with information about how and where to retrieve them from. A short example is:

!REPOSITORY_LOCATION cvs.cactuscode.org
!REPOSITORY_NAME /cactusdevcvs
!REPOSITORY_TYPE pserver
!REPOSITORY_USER knarf

CactusBase/MoL
CactusBase/Boundary
CactusBase/CartGrid3D
CactusBase/CoordBase
CactusBase/IOASCII
CactusBase/IOBasic
CactusBase/IOUtil
CactusBase/Time

You can download this thornlist which includes a good collection of freely available thorns working together with Whisky.

Save both files into the place you want to have Cactus downloaded, make 'GetCactus' executable and call it with the thornlist as parameter. In this form, it will ask a couple of questions which you can all answer by pressing Enter (using the default), except the one about which version of Cactus to use. Here you have to use the development version. The stable Cactus version is way too old to work with Whisky. You can give additional parameters to avoid those questions. To summarize, the commands you have to execute so far, would be similar to:

wget http://www.cactuscode.org/download/GetCactus
chmod +x GetCactus
wget http://www.whiskycode.org/downloads/Whisky_stable.th
./GetCactus -install=Cactus -anonymous=yes -verbose=no -repository=development ./Whisky_stable.th

Note that this assumes that you have the necessary tools to obtain those thorns installed. For the example above this includes cvs and svn.

This should create a directory 'Cactus' with a few subdirectories inside. One of them is 'arrangements' which holds the collections (arrangements) of thorns (modules) which use Cactus. One of them is Whisky.

Cactus
 |
 +-arrangements
    |
    +-Whisky
       |
       +-Whisky
       +-Whisky_Init_Data
       +-Whisky_IVP
       +-Whisky_TOVSolverC

The next step after downloading the source code is to configure Cactus according to your hardware and software environment. This step can be very simple but can also take quite a while, depending on circumstances. Fortunately, Cactus knows about the most common environments (e.g. compilers) and you also have to do that step probably only once.

A configuration does not automatically include every thorn present in the source tree to be able to also compile slim configurations even when you have a big collection of thorns around, or sometimes thorns conflict with each other. Therefore you have to give the thornlist as argument to the configure stage.

You can have different configurations with the same source code, so you have to give a name to each configuration. If everything would work out of the box, executing

cd Cactus
make whisky-config THORNLIST=../Whisky_stable.th

should be enough to create a configuration with the name 'whisky'. Most of the time however, you would like to use different options than the default ones, you have to give additional information or maybe the default does not work. Then it is best to use a 'config' file to store those options. You can give this file as argument to the configure stage:

make whisky-config THORNLIST=../Whisky_stable.th options=<FILENAME>

or you can store the configurations in a file ~/.cactus/config. Then you can omit the command line argument and Cactus will read the configuration from that file every time (You can still overwrite this by using the command line argument).

There is a lot which can be specified in the option file and this is not the appropriate place to explain all this. Some of the most commonly set options are given in the example below.

CC              = icc
CXX             = icpc
F77             = ifort
F90             = ifort
FPPFLAGS        = -traditional
LIBDIRS         = /cluster/intel/fce/10.1.008/lib

#MPI            = MPICH
#MPICH_DIR      = /cluster/mvapich-0.9.8/intel

MPI             = CUSTOM
MPI_LIBS        = mpi
MPI_INC_DIRS    = /opt/scali/include64
MPI_LIB_DIRS    = /opt/scali/lib64

HDF5            = yes
HDF5_DIR        = /cluster/hdf5/1.8.0_apiv16

GSL_DIR         = /cluster/gsl/1.10

LAPACK          = yes
LAPACK_DIR      = /usr/lib64

WARN            = yes
DEBUG           = yes

If you have questions with the configure stage (which is not that unlikely), please feel free to ask at the Cactus users or Whisky users mailing list.

Once the configure step went ok, you still have to build the executable:

make whisky

Depending on the number of thorns in the thornlist and the speed of the computer this can take quite some time. If it finishes successfully, you should now have an executable file 'cactus_whisky' in the 'Cactus/exe' directory.

Executing this file will start a simulation, but it needs a parameter file to know what to simulate as command line parameter. This would include information like if and how to setup the initial conditions (like the location and type of stars) and how to evolve these data. The content entirely depends on the thorns you use and the problem you want to address. The following is an example which evolves a TOV star using Whisky for a short time, doing some 1D output.

To summarize, here is the complete set of commands which can be used to obtain, install and compile Whisky with some other thorns, but in practice you might have to put work into the configure stage.

wget http://www.cactuscode.org/download/GetCactus
chmod +x GetCactus
wget http://www.whiskycode.org/downloads/Whisky_stable.th
./GetCactus -install=Cactus -anonymous=yes -verbose=no -repository=development ./Whisky_stable.th
cd Cactus
make whisky-config THORNLIST=../Whisky_stable.th
make whisky
./exe/cactus_whisky arrangements/Whisky/Whisky/test/whisky_test_tov_ppm.par
This page is maintained by Bruno Giacomazzo and Frank Löffler.

Impressum.