Input File
Except for restart jobs, gmak initializes its internal objects by
reading data from an input text file. The lines in this file are
organized into blocks. Each block begins with a line $blockname,
where blockname is the name of the block, and ends with a line
$end. Most input parameters are set within blocks that identify
their context in the program. Those that are not set inside any
blocks are referred to as global input parameters.
Parameters are set using lines with syntax:
PARAMETER VALUE...
where PARAMETER is the name of the parameter, VALUE is a string
with no white spaces (referred to as a value token), and the ellipsis
... indicates that there may be a list of such tokens in the line.
Tokens can be separated from the parameter name and from other tokens by
any number of spaces.
The tokens can be categorized into the following types:
Numerical
File/directory path
Object reference (the name of an object previously initialized in the input file)
Mathematical expression
String (when none of the above apply)
Any line that starts with the # character is considered a comment.
Global input parameters
Global input parameters should appear before any blocks. They either initialize data or set behaviors that belong to no particular block context.
The table below lists the known global input parameters, as well as the expected type of value tokens.
Parameter
Value Type
Description
Remarks
workdir
path
The directory where the files created by the job are saved.
The directory is created if it does not exist.
Blocks
Blocks set a contextual scope for initializing data and behaviors.
Typically, each instance of a block translates as the initialization
of an object of which the type is tightly associated with the block
name. For example, a $protocol block sets up an instance of a
class that implements a protocol.
Blocks may depend on each other via object-reference tokens or due to the logic of interpretation of the input file. In the latter case, the dependency is classified as intrinsic, and the dependent block must appear after all instances of the one on which it depends. In the former case, the block that defines the object being referred to must precede the block that refers to it.
The table below lists the known blocks and, if existing, their intrinsic dependencies on other blocks.
Block name
Description
Remarks
The
$variationblock sets up the variations (see Parameter-search Grid).The
$gridshiftblock sets up the routine for the grid-shifting procedure.The
$systemblock sets up a routine for constructing the topology of a system.The
$coordinatesblock sets up a routine for constructing initial configurations.The
$optimizeblock sets up the composite properties that enter in the calculation of the score function, as well as their weights and uncertainty tolerances.The
$computeblock sets up a composite property and the associated component properties (see Component and Composite Properties).The
$gridblock sets up the sampled points.Depends on $variation, $gridshift.
The
$protocolblock sets up a protocol.