Submit MDTools analysis scripts for systems containing LiTFSI and linear poly(ethylene oxides) of arbitrary length (including dimethyl ether) to the Slurm Workload Manager of an HPC cluster.

This script is designed to be used on the Palma2 HPC cluster of the University of Münster or on the Bagheera HPC cluster of the research group of Professor Heuer.


Required Arguments


The name of the system to analyze, e.g. 'LiTFSI_PEO_20-1' for an LiTFSI/PEO electrolyte with an ether-oxygen-to-lithium ratio of 20:1. You can give any string here. See notes below.


The used simulation settings, e.g. 'pr_npt298_pr_nh' for a production run in an NPT ensemble at 298 K utilizing a Parrinello-Rahman barostat and an Nose-Hoover thermostat. You can give any string here. See notes below.


Select the analysis script(s) to submit. Either give the name(s) of the script(s) (without file extension) or give one of the following number options. If you give multiple script names, provide them space-separated as one enquoted string. To list all possible script names type ls path/to/hpc_submit_scripts/analysis/lintf2_ether/mdt/. Note that scripts that take an .edr file or an .trr file as input are excluded from the number options unless they are explicitly mentioned to be included.


All scripts. Note that all lig_change_at_pos_change* scripts are excluded.


All scripts analyzing the bulk system (i.e. exclude scripts that analyze only a part, e.g. a slab, of the system, but still include anisotropic analyses, e.g. spatially discretized analyses). Note that all lig_change_at_pos_change* scripts are excluded.


All scripts analyzing a slab in xy plane.


All discrete-z_Li* scripts.


All hexagonal discretizations.


All density distributions along hexagonal axes.


All contact histograms.


All “normal” bulk contact histograms.


All slab-z contact histograms.


All contact histograms at position change.


All scripts analyzing coordination changes at position changes (lig_change_at_pos_change*).


All topological maps.


All MSDs.


All “normal” bulk MSDs.


All spatially discretized MSDs.


All MSDs at coordination change.


All lifetime autocorrelations.


All renewal event analyses.


All scripts extracting renewal events.


All scripts working on renewal event trajectories.


All bulk scripts working on renewal event trajectories.


All spatially discretized scripts working on renewal event trajectories.


All scripts that take an .edr file or an .trr file as input.


All attribute histograms (attribute_hist*).


All 2D density maps in xy plane (densmap-z_*.sh)

Options for Trajectory Reading


First frame to read from the trajectory. Frame numbering starts at zero. Default: 0.


Last frame to read from the trajectory. This is exclusive, i.e. the last frame read is actually END - 1. A value of -1 means to read the very last frame. Default: -1.


Read every n-th frame from the trajectory. Default: 1.


Number of blocks for scripts that support block averaging. Default: 1.


Number of frames between restarting points for analyses using the sliding widow method (like calculation of mean square displacements or autocorrelation functions). Default: 500”

Options for Distance Resolved Quantities (like RDFs)


Bin width (in Angstrom) for distance resolved quantities. Default: 0.05.

Options for Contact Analyses


Cutoff (in Angstrom) up to which two atoms are regarded as being in contact. Default: 3.0.

Options for Single Atom Analyses


Index of the atom to analyze. Default: 0.

Options for Analyses of Sequences of Discrete States


Maximum number of frames a selection compound is allowed to leave a certain state whilst still being considered to be inside that state, provided that it is indeed again inside this state after the intermittent period. Default: 0.


Lag time (in trajectory frames) after which to compare the states of a selection compound. Default: 50.


Minimum block size (in trajectory frames). Blocks of consecutive frames in which a given selection compound stays in the same state must comprise at least this many frames in order to be counted as valid block. Default: 100.


Maximum gap size (in trajectory frames). The gap between two following valid blocks must not be greater than this many frames in order to count a transition between the two valid blocks as valid transition. Default: 25.

Options for Tools That Analyze Slabs in xy Plane


Lower boundary (in Angstrom) of the slab in xy plane. Default: 0.


Upper boundary (in Angstrom) of the slab in xy plane. Default: Maximum length of the simulation box in z direction (inferred from $settings_out_$system.gro).


Slab width (in Angstrom) to use when --discretize or --center-slab is given. Default: 1.0.


Divide the simulation box from --zmin to --zmax in slabs of width --slabwidth and submit all scripts analyzing slabs in xy plane that were selected with --scripts for each created slab. Must not be used together with --center-slab.


Create a slab in xy plane of width --slabwidth exactly in the center of the simulation box (in z direction, inferred from $settings_out_$system.gro) and submit all scripts analyzing slabs in xy plane that were selected with --scripts for that slab. Must not be used together with --discretize. If given, --zmin and --zmax are ignored.

Python-Specific Options


If running on a cluster which uses the Lmod module system, specify here which file to source (relative to the lmod subdirectory of this project) to load Python. Default: 'palma/2019a/'.


Name of the Python executable. You can give here e.g. the path to the python executable of the virtual Python environment in which MDTools is installed. Default: 'python3'.


Path to the cloned MDTools repository. Note that you really need to clone MDTools (git clone and install MDTools from the cloned repository. For the last step refer to MDTools’ documentation. The reason for this is that the Slurm job scripts (that are launched by this Python submit script) use the path to MDTools’ scripts/ directory to call the MDTools scripts. Default: '${HOME}/git/github/mdtools'.

Sbatch Options

You can provide arbitrary other options to this script. All these other options are parsed directly to the sbatch Slurm command without further introspection or validation. This means, you can parse any option to sbatch but you are responsible for providing correct options.

Config File

This script reads options from the following sections of a Configuration File:

  • [submit]

  • [submit.analysis]

  • [submit.analysis.lintf2_ether]

  • [submit.analysis.lintf2_ether.mdt]

  • [sbatch]

  • [sbatch.analysis]

  • [sbatch.analysis.lintf2_ether]

  • [sbatch.analysis.lintf2_ether.mdt]


The --system and --settings options allow (or enforces) you to choose systematic names for the input and output files of your simulations. Besides a better overview, this enables an easy automation of preparation and analysis tasks.

If input files required for the scripts selected with --scripts cannot be found, the submission script will terminate with an error message before submitting the job(s) to the Slurm Workload Manager.