Lotus Input File

The lotus binary takes a single argument: the path to a lotus input file.

The input file format is a basic subset of YAML which has the following restrictions:

  • Root node must be a mapping
  • Keys must scalars or lists (no nested mappings).

The reason for these restrictions is that lotus is required to be C++98 compliant to run on our cluster which hasn’t been updated since 2005. Therefore, I had to manually write a parser using libyaml rather than use the much friendlier yaml-cpp which requires C++11.

A more complex parser could of course be written with further effort, but so far this has been sufficient.

The following is an example YAML script from the test suite (which won’t run without a subset of our simulation data which we can’t share until we publish our results).

test/data/test_config.yaml
dumpfile: ../test/data/20A_atom1_13-20
datafile: ../test/data/lammps_noZperiod_3A.dat
outLoc: ../test/results
stepsPerFrame: 3
solidTypes:
  - 1
  - 2
  - 3
liquidTypes:
  - 4
  - 5
waterBondType: 2
geometry: spherical
verbose: true
plot_rmax: 80
plot_zmax: 60
plot_aspect: 1
plot_width: 600
saveImages: true

All public member variables of Options are valid YAML keys for this input file, some of which are required while others are optional.

See also

All options and their acceptable and default values are described in depth in the Options documentation.

Todo

mention LAMMPS dumpfile/datafile requirements somewhere.