Directory structure and environmental variables

After the compilation is completed and Kassiopeia has been installed to the installation directory, it is useful to set up some environment variables that allow you ton run Kassiopeia and other commands from any location. A script is provided that provides a similar functionality to the thisroot.sh script explained above. To set up Kassiopeia with the script, copy the following lines to your ~/.bashrc (or similar), then logout and login again:

#Set up the Kassiopeia environmental variables
source ~/kassiopeia/install/bin/kasperenv.sh

The script will define a few environment variables that can be used outside of Kassiopeia:

  • KASPERSYS - the location of Kassiopeia binaries, libraries and configuration files.

  • KEMFIELD_CACHE - the location of the KEMField cache directory

  • KASPER_SOURCE - the location of the Kassiopeia source directory

  • KASPER_INSTALL - the location of the Kassiopeia installation directory

The KASPERSYS and KEMFIELD_CACHE can, in principle, be changed to different locations before running simulations. This is intended to allow more flexible configurations on multi-user systems, or when multiple independent instances of the Kassiopeia software are installed. For the typical user, the variables can be left as they are.

The complete set of Kassiopiea executables and configuration files will be found in the specified installation directory. The installation directory is broken down into several components, these are:

  • bin

  • cache

  • config

  • data

  • doc

  • include

  • lib

  • log

  • output

  • scratch

The Kassiopeia executable can be found under the bin directory. Also in this directory is the script kasperenv.sh that was mentioned above.

The bin directory also contains other executables useful for interacting with the sub-components of Kassiopeia such as the KEMField or KGeoBag libraries. This included tools for generating particles without running a full simulation, for calculating electromagnetic fields, or for visualizing the simulation geometry.

The lib directory contains all of the compiled libraries, as well as cmake and pkgconfig modules to enable linking against Kassiopeia by external programs. The include directory contains all of the header files of the compiled programs and libraries.

The other directories: cache, config, data, doc, log, output, and scratch are all further sub-divided into parts which relate to each sub-module of the code: Kassiopeia, Kommon, KGeoBag, or KEMField. The cache and scratch directories are responsible for storing temporary files needed during run time for later reuse. The data directory contains raw data distributed with Kassiopeia needed for certain calculations (e.g. molecular hydrogen scattering cross sections). The log directory provides space to collect logging output from simulations, while the output directory is where simulation output is saved, unless otherwise specified.