Keyword reference

Note

This page is auto-generated from pimms/CONFIG.py (the same source that powers PIMMS --info). Do not edit it by hand - edit the descriptions in CONFIG.KEYWORDS_DESCRIPTION and rebuild the docs.

A PIMMS simulation is configured with a plain-text keyfile. Each line sets one keyword:

KEYWORD : value

Lines beginning with # are comments, and blank lines are ignored. Most keywords may appear at most once; the CHAIN and EXTRA_CHAIN keywords are the exception and may be repeated to define a multi-component system. The required keywords are marked required below; everything else falls back to the default shown.

You can query any keyword from the command line without opening this page:

PIMMS --info                 # list every keyword, grouped
PIMMS --info <KEYWORD>       # full details on one keyword
PIMMS --info ALL             # print every keyword description

The keywords are grouped by purpose below.

Core simulation setup (most are required)

DIMENSIONS (int (2 or 3 values, e.g. A B or A B C), required)

[REQUIRED] - Size of the simulation box (in lattice units). Providing 2 values runs a 2D simulation, 3 values a 3D simulation. The axes need NOT be equal: non-cubic/non-square boxes (e.g. 10 20 40) are fully supported with either HARDWALL or periodic boundaries. The only restriction is that cluster-rotation moves (MOVE_CLUSTER_ROTATE) cannot be combined with a non-cubic box under periodic boundaries, because a 90-degree rigid rotation is only an energy-preserving symmetry of a cube/square (or of any box under HARDWALL, where there is no periodic wrapping).

PARAMETER_FILE (string, required)

[REQUIRED] - Filepath (relative or absolute) to the parameter file defining the interaction energies and angle penalties. The simulation fails if it does not exist. The exact parameters used are echoed to parameters_used.prm at startup.

CHAIN (See description, required)

[REQUIRED] - One of the few multi-component keywords in PIMMS and the only keyword that can appear multiple times, the ‘CHAIN’ keyword defines a specific polymer chain and the number of that chain that will exist in the simulation. The format should be

CHAIN : N {CHAIN IDENTIY}

Where ‘N’ defines the number of the chain and ‘{CHAIN IDENTITY}’ gives polymer sequence in one-letter alphabet code. As an example

CHAIN : 20 QQQQQQQQQQ

Would give 20 poly-glutamine polymers. This keyword is required UNLESS a RESTART_FILE is provided, in which case the chains are taken from the restart file and CHAIN may be omitted. In later versions of PIMMS we will be updating this to allow the reading of keyfiles that use three-letter codes.

TEMPERATURE (float (positive), required)

[REQUIRED] - Simulation temperature; must be a positive number greater than 0. In general a temperature between 10 and 200 is appropriate for the energy scales typical of PIMMS parameter files. Higher temperatures sample more expanded/disordered states; lower temperatures favour collapse/assembly. Ignored if QUENCH_RUN is True (use QUENCH_START / QUENCH_END instead).

N_STEPS (int, required)

[REQUIRED] - Total number of outer-loop steps to run (including the EQUILIBRATION steps). Must be a positive integer. Note that one step is typically a great deal of Monte Carlo work: each crankshaft step performs CRANKSHAFT_SUBSTEPS single-bead sub-moves in total (spread at random over all beads), and the slither/pull/TSMMC moves are likewise ‘megamoves’, so the true number of accept/reject operations is far larger than N_STEPS (see TOTAL_MOVES.dat).

EQUILIBRATION (int, required)

[REQUIRED] - Number of initial steps treated as equilibration. During equilibration no analysis output is written, and trajectory frames are only saved if SAVE_EQ is True. Choose this large enough that ENERGY.dat has plateaued before production begins.

SEED (int, default: random seed)

Random seed. If not set, a random seed is generated, but if provided it ensures perfect simulation reproducibility (an identical keyfile + parameter file + seed reproduces the trajectory bit-for-bit).

HARDWALL (bool, default: False)

Boolean flag set to True or False that defines whether a hardwall boundary is used or not. By default, periodic boundary conditions (PBC) are used, but if hardwall is set to true the edges of the simulation box are reflective with an infinitely repulsive potential.

System & chain options

EXTRA_CHAIN (See description, default: none)

One of the few multi-component keywords in PIMMS that should only be used if a RESTART_FILE is defined. This keyword allows you to add additional chains into the system that were not originally present in the RESTART_FILE. The format follows the same as the CHAIN keyword (so <number of chains> <chain sequence>) and multiple EXTRA_CHAIN lines can be included for different types of chains. This means you can setup an initial set of simulations, and then run a simulation from the end-state of the original simulation with new chains added. Moreover, this can be repeated an arbitrary number of times. New chains are randomly inserted to not overlap with existing chains.

CASE_INSENSITIVE_CHAINS (bool, default: True)

Boolean flag which, if set to False, means that chain sequence is case sensitive. By default, this is True, which means that upon reading a keyfile, chains are converted to upper case. However, sometimes you may wish for more unique beads (e.g. ‘A’ and ‘a’ as distinct types), in which case setting this to False is useful. Every bead type used in a chain must also be defined in the parameter file.

LATTICE_TO_ANGSTROMS (float, default: 3.65)

Conversion factor (default 3.65) for converting lattice units to Angstroms when writing the START.pdb topology and traj.xtc trajectory. This is purely cosmetic - it sets the bead spacing seen in a viewer/analysis (mdtraj reports nm, i.e. lattice_units * LATTICE_TO_ANGSTROMS * 0.1) and has NO effect on the simulation itself or its energetics.

AUTOCENTER (bool, default: False)

Boolean flag which, if set to True and you’re simulating a single chain, means that the chain is automatically centered in the middle of the box. Default = False.

NON_INTERACTING (bool, default: False)

Boolean flag set to True or False that defines if a non-interacting simulation should be performed or not. If set to true, all parameterfile-defined interactions are set to zero. This is convenient in that the non-interacting behavior (i.e. excluded volume limit) is a convenient reference state.

ANGLES_OFF (bool, default: False)

Boolean flag set to True or False that defines if angle potentials are to be used or not. If set to False (or not set), angles from the parameter file will be used. If set to True, angles are ignored and parameter files do not need to define angles.

FREEZE_FILE (string, default: False)

Filepath (relative or absolute) to a freeze file; the simulation fails if it does not exist. The freeze file is a plain-text file listing chainIDs to hold fixed for the whole run, one or more lines of the form ‘C <id> <id> …’. Frozen chains never move but still contribute to the energy (other chains feel them). Use WRITE_CHAIN_TO_CHAINID to discover chainIDs. Frozen chains are honoured by both the serial and the parallel (PARALLELIZE) move kernels, so freezing and parallelization can be used together.

Monte Carlo moves (the MOVE_* probabilities must sum to 1.0)

MOVE_CRANKSHAFT (float, default: 0.0)

Probability of a crankshaft move being attempted. Note all provided MOVE_* keywords must add up to 1.0

MOVE_CHAIN_TRANSLATE (float, default: 0.0)

Probability of a molecular translation move being attempted. Note all provided MOVE_* keywords must add up to 1.0

MOVE_CHAIN_ROTATE (float, default: 0.0)

Probability of a molecular rotation move being attempted. Note all provided MOVE_* keywords must add up to 1.0

MOVE_CHAIN_PIVOT (float, default: 0.0)

Probability of a molecular pivot move being attempted. Pivot moves randomly select a point on the chain and then pivot one half of the chain. Note all provided MOVE_* keywords must add up to 1.0

MOVE_HEAD_PIVOT (float, default: 0.0)

Probability of a head pivot move being attempted. Head pivot moves randomly select one of the two ends of a chain and pivot that terminus, but this is almost never worth doing so we recommend setting it to 0. Note all provided MOVE_* keywords must add up to 1.0

MOVE_SLITHER (float, default: 0.0)

Probability of a slither (reptation) megamove being attempted. When selected, every non-frozen chain is slithered SLITHER_SUBSTEPS times - a chain advances forwards or backwards through the lattice like a snake, which efficiently relaxes chain conformations. Works in 2D and 3D. Note all provided MOVE_* keywords must add up to 1.0

MOVE_PULL (float, default: 0.0)

Probability of a pull (cooperative reptation) megamove being attempted. When selected, every non-frozen chain of length >= 3 is pulled PULL_SUBSTEPS times - an interior bead is displaced and the following beads are cooperatively ‘pulled’ along to restore connectivity, letting chains rearrange in DENSE systems where rigid moves would clash (the chain termini are not moved by this move, so pair it with crankshaft/slither). Note all provided MOVE_* keywords must add up to 1.0

MOVE_CLUSTER_TRANSLATE (float, default: 0.0)

Probability of a cluster translation move being attempted. Cluster translation moves are relatively expensive, so in general wise to keep this at a low number (0.01 to 0.05). Note all provided MOVE_* keywords must add up to 1.0

MOVE_CLUSTER_ROTATE (float, default: 0.0)

Probability of a cluster rotation move being attempted. Cluster rotation moves are relatively expensive, so in general wise to keep this at a low number (0.01 to 0.05). Note all provided MOVE_* keywords must add up to 1.0

MOVE_CTSMMC (float, default: 0.0)

Probability of a single-chain TSMMC (Temperature-Switch Monte Carlo) move being attempted. A randomly selected chain is taken on a temperature EXCURSION - heated along a schedule from TEMPERATURE up to TSMMC_JUMP_TEMP and cooled back - to help it escape local energy minima, with a tempered-transitions acceptance that preserves detailed balance. Controlled by the TSMMC_* keywords. Note all provided MOVE_* keywords must add up to 1.0

MOVE_MULTICHAIN_TSMMC (float, default: 0.0)

Probability of a multi-chain TSMMC move being attempted. As MOVE_CTSMMC, but a randomly selected SUBSET of chains undergoes the temperature excursion together. Controlled by the TSMMC_* keywords. Note all provided MOVE_* keywords must add up to 1.0

MOVE_SYSTEM_TSMMC (float, default: 0.0)

Probability of a system-wide TSMMC move being attempted. The ENTIRE system undergoes a temperature excursion (heated along a schedule to TSMMC_JUMP_TEMP and cooled back) to help the whole configuration escape local minima. Controlled by the TSMMC_* keywords. Note all provided MOVE_* keywords must add up to 1.0

MOVE_JUMP_AND_RELAX (float, default: 0.0)

Probability of a single-chain jump-and-relax move being attempted. A selected chain is relaxed (a crankshaft sub-trajectory), a rigid translation (‘jump’) is proposed and accepted or rejected on its own Metropolis criterion, then the chain is relaxed again. Each of the three sub-steps preserves the Boltzmann distribution, so the composite move maintains detailed balance. Useful for relocating individual chains and letting them settle; for relocation through dense/condensed phases prefer MOVE_VMMC or MOVE_PULL. Note all provided MOVE_* keywords must add up to 1.0

MOVE_VMMC (float, default: 0.0)

Probability of a Virtual-Move Monte Carlo (VMMC) collective move being attempted (Whitelam & Geissler, J. Chem. Phys. 127, 154101, 2007). A seed chain is given a trial rigid translation; neighbouring chains are recruited into a moving cluster according to interaction-energy gradients (a neighbour is recruited when moving the seed alone would break their mutual attraction), and the whole cluster translates together. This avoids the kinetic traps that single-chain moves hit in strongly-attractive / condensed phases, while maintaining detailed balance. EXPERIMENTAL. Note all provided MOVE_* keywords must add up to 1.0

Move tuning

CRANKSHAFT_SUBSTEPS (int, default: 500)

Number of subtrajectory steps to take for a crankshaft move. Generally we recommend 20-50K but this could be much larger if needed.

CRANKSHAFT_MODE (str (UNIFORM), default: UNIFORM)

Defines how the number of crankshaft sub-moves scales with chain length. NOTE: this is currently OBSOLETE - setting it in a keyfile raises an error; internally the behaviour is UNIFORM (a fixed CRANKSHAFT_SUBSTEPS sub-moves per crankshaft megamove, independent of chain length).

SLITHER_SUBSTEPS (int, default: 10)

Number of slither (reptation) moves applied to EACH chain, in random order, per slither megamove. A slither advances a chain forwards or backwards like a snake. For homopolymers the energy is evaluated in O(1) (only the moved end matters); for heteropolymers every residue is re-evaluated; single-bead chains become a local translation.

PULL_SUBSTEPS (int, default: 10)

Number of pull moves applied to EACH chain, in random order, per pull megamove. A pull move displaces an interior bead and cooperatively ‘pulls’ the rest of the segment along to restore connectivity, letting chains rearrange in dense systems where rigid moves would clash. Requires chains of length >= 3.

VMMC_MAX_DISPLACEMENT (int, default: 3)

Maximum magnitude (per dimension, in lattice units) of the rigid translation proposed by a VMMC move. Small values give local collective moves (recommended); large values rarely succeed in dense phases. Default 3. Requires EXPERIMENTAL_FEATURES : True (VMMC is experimental).

VMMC_MAX_CLUSTER (int, default: 1000)

Upper bound on the VMMC cluster size used for the 1/n_c move-frequency correction; the recruited cluster is aborted (move rejected) if it would exceed the drawn cutoff. Clamped to the number of chains at runtime. Default 1000. Requires EXPERIMENTAL_FEATURES : True (VMMC is experimental).

TSMMC (temperature-switch) excursion settings

TSMMC_JUMP_TEMP (float, default: 50)

The peak (‘jump’) temperature reached during a TSMMC temperature excursion. MUST be greater than the simulation TEMPERATURE: a TSMMC move heats the selected chain(s)/system from TEMPERATURE up to TSMMC_JUMP_TEMP and back. Used only by the TSMMC moves (MOVE_CTSMMC / MOVE_MULTICHAIN_TSMMC / MOVE_SYSTEM_TSMMC). Default 50.

TSMMC_STEP_MULTIPLIER (int, default: 50)

Number of MC sub-steps performed at EACH temperature point of a TSMMC excursion (for chain moves this is multiplied by the chain length). Larger values equilibrate the system more thoroughly at each temperature, at the cost of slower excursions. Used only by the TSMMC moves. Default 50.

TSMMC_NUMBER_OF_POINTS (int, default: 20)

Number of distinct temperature points in the TSMMC excursion schedule between TEMPERATURE and TSMMC_JUMP_TEMP. More points give a smoother (more gradual) heating/cooling ramp. Used only by the TSMMC moves. Default 20.

TSMMC_INTERPOLATION_MODE (str (LINEAR), default: LINEAR)

How the temperature is interpolated between TEMPERATURE and TSMMC_JUMP_TEMP across the excursion schedule. Currently the only supported value is LINEAR (equal temperature increments). Used only by the TSMMC moves. Default LINEAR.

TSMMC_FIXED_OFFSET (float or False, default: False)

If set to a number, the TSMMC jump temperature is defined RELATIVE to the simulation temperature as TEMPERATURE + TSMMC_FIXED_OFFSET rather than using the absolute TSMMC_JUMP_TEMP. If False (default) the absolute TSMMC_JUMP_TEMP is used. Used only by the TSMMC moves.

Quench / simulated annealing

QUENCH_RUN (bool, default: False)

Boolean flag which, if set to True, means that the simulation is a quench run. This means that the simulation starts at one temperature and then systematically changes to a different temperature. Generally this will be higher to cooler, but could be cooler to higher. Note that the starting temperature is set by QUENCH_START and ending temperature by QUENCH_END, so the TEMPERATURE keyword is ignored. Also, all the QUENCH keywords (QUENCH_START, QUENCH_END, QUENCH_FREQ, QUENCH_STEPSIZE and QUENCH_AS_EQUILIBRATION) must all be set. Default = False.

QUENCH_FREQ (int, default: unset)

Frequency with which a change in temperature is performed.

QUENCH_STEPSIZE (float, default: unset)

The amount by which the temperature is changed at each QUENCH_FREQ. Note this should be a positive value.

QUENCH_START (float, default: unset)

Starting temperature for the quench run.

QUENCH_END (float, default: unset)

Ending temperature for the quench run.

QUENCH_AS_EQUILIBRATION (bool, default: unset)

Boolean flag which, if set to True, means that the equilibration period is used for a quench run, and after the equilibration period the simulation temperature is fixed at the QUENCH_END temperature.

Output & I/O

PRINT_FREQ (int, default: 1000)

Frequency (in steps) with which status information (step number, energy, throughput, estimated time remaining) is printed to STDOUT.

XTC_FREQ (int, default: 1000)

Frequency (in steps, default 1000) with which a trajectory frame is written to traj.xtc (with START.pdb as the topology). Equilibration frames are only written if SAVE_EQ is True; if SAVE_AT_END is True the trajectory is buffered in memory and written once at the end.

EN_FREQ (int, default: 1000)

Frequency (in steps) with which the instantaneous potential energy is appended to ENERGY.dat (tab-separated: step, energy).

REDUCED_PRINTING (bool, default: False)

Boolean flag which, if set to True, means that the printing output is reduced

SAVE_EQ (bool, default: True)

Boolean (true or false) that determines whether PIMMS saves trajectory frames for the equilibration steps of a simulation. If set to False, PIMMS begins to save your trajectory frames after the equilibration steps have completed.

SAVE_AT_END (bool, default: False)

Boolean flag which, if set to True, holds the Trajectory object in memory and only saves to .xtc at the very end. Faster but potentially more memory intensive.

TRAJECTORY_PBC_UNWRAP (bool, default: False)

Boolean flag (default False). Under periodic boundaries a chain that crosses a box face is stored split across the two faces, which looks broken in a viewer. If set to True, PIMMS makes every chain WHOLE before writing each trajectory frame (and the START.pdb topology): each chain is shifted into a single periodic image, effectively extending the lattice beyond the box in x/y/z as needed, so no chain is torn across a boundary. This is purely a visualisation convenience - it does not affect the simulation or its energetics, and coordinates may fall outside the box (the unit cell is unchanged). Has no effect with HARDWALL (chains never cross a boundary). Default = False.

WRITE_CHAIN_TO_CHAINID (bool, default: False)

Boolean flag which, if set to True, writes chain_to_chainid.txt mapping each chainID to its length and sequence. Useful for working out which chainIDs to list in a FREEZE_FILE. Default = False.

ENERGY_CHECK (int, default: 20000)

Frequency (in steps) with which a full from-scratch energy recompute is compared against the incrementally tracked energy; a mismatch raises an exception (and dumps the state to CONFIG_AT_ENERGY_FAIL.pdb/.xtc). This is an O(N) safety/debugging check - cheap to run occasionally, expensive every step for large systems.

Analysis

ANALYSIS_FREQ (int, default: 1000)

Master control parameter that sets the default frequency for any analysis whose own ANA_* frequency keyword is not explicitly provided. Set the per-analysis ANA_* keywords to override it.

ANA_POL (int, default: 1000)

Frequency with which single-chain polymeric analysis is performed. Writes per-chain radius of gyration to RG.dat and asphericity to ASPH.dat (one column per chain, one row per recorded step).

ANA_INTSCAL (int, default: 1000)

Frequency with which internal-scaling analysis is performed. Accumulates the mean internal scaling R(s) as a function of sequence separation s over the run and, at the end, writes INTSCAL.dat and INTSCAL_SQUARED.dat, the fitted SCALING_INFORMATION.dat (scaling exponent nu and prefactor R0) and a mean DISTANCE_MAP.dat. For multi-component systems these are also written per chain type as CHAIN_<TYPE>_*.

ANA_DISTMAP (int, default: 1000)

Frequency with which the mean inter-residue distance map is accumulated. The seqlen x seqlen mean distance matrix is written to DISTANCE_MAP.dat at the end of the run (per chain type as CHAIN_<TYPE>_DISTANCE_MAP.dat).

ANA_ACCEPTANCE (int, default: 1000)

Frequency with which move statistics are written: MOVE_FREQS.dat (attempted moves per move code), ACCEPTANCE.dat (accepted moves per move code) and TOTAL_MOVES.dat (cumulative accept/reject operations). Columns are indexed by move code 1-14; divide ACCEPTANCE by MOVE_FREQS to get the per-move acceptance ratio.

ANA_INTER_RESIDUE (int, default: 1000)

Frequency with which inter-residue distance analysis is performed and appended to RES_TO_RES_DIST.dat. This only makes sense if ANA_RESIDUE_PAIRS has a pair of residues defined; the distance is computed for EVERY chain, so all chains must be long enough to contain the pair.

ANA_CLUSTER (int, default: 1000)

Frequency with which cluster analysis is performed. Identifies short-range clusters (contacting chains) and long-range clusters (connected via any interaction) and writes their size distributions (CLUSTERS.dat / NUM_CLUSTERS.dat and the LR_* variants) plus per-cluster radius of gyration, asphericity, surface area, volume and density (CLUSTER_RG/ASPH/AREA/VOL/DEN.dat and LR_* variants). This is the heaviest analysis - keep its frequency low for large systems. See ANA_CLUSTER_THRESHOLD.

ANA_CLUSTER_THRESHOLD (int, default: 1)

Minimum number of chains a connected component must contain to be counted as a ‘cluster’ in cluster analysis. Default 1 (count everything, including single chains); set higher to ignore small clusters.

ANA_RESIDUE_PAIRS (int (2 values), default: none)

Two integers used to define a pair of residues, the distance between which is then calculated every ANA_INTER_RESIDUE steps. Indexing occurs from 0 (i.e., the first residue is 0. Note that at present, inter-residue distances are calculated for EVERY chain, which will trigger an error if there are chains that cannot accommodate a given pair.

ANALYSIS_MODULE (str (path) or False, default: False)

Path to a user-supplied Python analysis module that PIMMS loads and runs during the simulation (the custom-analysis hook; see ANA_CUSTOM). If False (default), no custom analysis module is loaded.

ANA_CUSTOM (int, default: 0)

Frequency (in steps) at which the user-defined custom analysis function (from ANALYSIS_MODULE) is run. 0 (default) disables custom analysis.

Restart

RESTART_FREQ (int, default: Every 10th-percentile)

Frequency with which the simulation state is saved to restart.pimms. May be an integer step frequency, or the default sentinel ‘Every 10th-percentile’ which writes at 10%, 20%, … 100% of N_STEPS. See the Restart files documentation.

RESTART_FILE (string, default: False)

Filepath (relative or absolute) to a restart.pimms file to start the simulation from; the simulation fails if it does not exist. When set, it supplies the initial configuration and the CHAIN keyword is not required (the chains come from the restart file). See the Restart files documentation for the dimension/hardwall compatibility rules.

RESTART_OVERRIDE_DIMENSIONS (bool, default: False)

If True, IGNORE the keyfile DIMENSIONS and adopt the restart file’s box exactly as it was saved (a convenience for continuing in the original box without repeating its size in the keyfile). It does NOT grow the box, and is incompatible with RESIZED_EQUILIBRATION. If False (default), the keyfile DIMENSIONS is used and reconciled with the restart: for a HARDWALL restart the keyfile box must be >= the restart box in every axis, and a larger box is grown with the configuration re-centred inside it (growing into a bigger box therefore needs NO override); for a periodic (PBC) restart the keyfile DIMENSIONS must match the restart box exactly. The box can never be made smaller than the restart box. Default = False.

RESTART_OVERRIDE_HARDWALL (bool, default: False)

Boolean flag which, if set to True, means that the hardwall setting of the simulation is overridden by the hardwall setting in the restart file. Default = False.

Equilibration options

RESIZED_EQUILIBRATION (int (2 or 3 values, e.g. A B or A B C), default: False)

Defines a smaller box to use during equilibration; at the end of equilibration the box is grown to the full DIMENSIONS (with chains re-centred). Useful for condensing/assembling a system at high effective concentration before expanding to the production box. MUST be <= DIMENSIONS in every dimension. The equilibration phase is always run under hardwall boundaries (forced internally, so a system is never resized while chains straddle a periodic face); your production HARDWALL setting takes over once the box has grown. Incompatible with RESTART_OVERRIDE_DIMENSIONS / PBC restart files. See also EQUILIBRATION_OFFSET.

EQUILIBRATION_OFFSET (int (2 or 3 values, e.g. A B or A B C), default: False)

Defines the offset of the equilibration box relative to the full simulation box. For each dimension, EQUILIBRATION_OFFSET + RESIZED_EQUILIBRATION MUST be <= DIMENSIONS.

Parallelization

PARALLELIZE (bool, default: False)

Boolean flag (True/False) which, if set to True, runs the crankshaft (MOVE_CRANKSHAFT), slither (MOVE_SLITHER) and pull (MOVE_PULL) moves on multi-threaded checkerboard kernels instead of the serial kernels (all other moves stay serial). Works in both 2D and 3D. Beneficial for large, spatially dispersed systems; gives little benefit for small boxes (which decompose into a single block) or collapsed/dense single-droplet systems. For the whole-chain moves (slither and pull) a chain only parallelizes if all its beads fit inside one block’s interior (chains spanning a block boundary are frozen that sweep). The block decomposition is independent of the thread count, so results are identical for any number of threads; the parallel sampler targets the same equilibrium distribution but follows a different Markov chain than the serial run. Frozen chains (via FREEZE_FILE) are fully supported: their beads are excluded from moves but kept in place as fixed, energy-contributing obstacles, so PARALLELIZE applies even with a freeze file. Default = False.

PARALLEL_THREADS (int, default: 0)

Number of OpenMP threads used when PARALLELIZE is True. 0 (the default) means use all available CPU cores. Ignored when PARALLELIZE is False.

Experimental features

EXPERIMENTAL_FEATURES (bool, default: False)

Boolean flag set to True or False that defines if experimental/non-supported keywords and features are allowed. STRONGLY recommend leaving this as False, and NONE of the features/behaviors allowed here are guaranteed to work.