The EPOC++ input deck

The EPOC++ input deck#

Most of the control of EPOC++ is through a text file known as the input deck. The name of the file can be specified on the command-line. Alternatively, the name of an output directory can be passed to the code at runtime, in which case EPOC++ will check for a file named input.deck inside this directory. The input deck contains all the basic information which is needed to set up the code, including the size and subdivision of the domain, the boundary conditions, the species of particles to simulate and the output settings for the code. For most users this will be capable of specifying all the initial conditions and output options they need.

The input deck is a structured file which is split into separate blocks, with each block containing several “parameter” = “value” pairs. The pairs can be present in any order, and not all possible pairs must be present in any given input deck. If a required pair is missing the code will exit with an error message. The blocks themselves can also appear in any order. The input deck is case sensitive, so true is always “T”, false is always “F” and the names of the parameters are always lower case. Parameter values are evaluated using a maths parser which is described in [EPOC++ maths parser][Maths_parser]. If the deck contains a “\” character then the rest of the line is ignored and the next line becomes a continuation of the current one. Also, the comment character is “#”; if the “#” character is used anywhere on a line then the remainder of that line is ignored. There are two input deck directive commands, which are:

  • begin:block - Begin the block named block.

  • end:block - Ends the block named block.

Each block must be surrounded by valid begin: and end: directives or the input deck will fail. There are currently four valid blocks:

  • control - Contains information about the general code setup.

  • boundaries - Contains information about the boundary conditions for this run.

  • species - Contains information about the species of particles which are used in the code. Also details of how these are initialised.

  • laser - Contains information about laser boundary sources.

  • fields - Contains information about the EM fields specified at the start of the simulation.

  • output - Contains information about when and how to dump output files.

  • constant - Contains information about user defined constants and expressions. These are designed to simplify the initial condition setup.