Skip to content

Input Parameters๐Ÿ”—

This page documents the RunInputs TOML schema accepted on the master branch. It is derived from neb_dynamics/inputs.py on this branch, so it reflects the actual keys and defaults the CLI accepts today.

Top-Level Layout๐Ÿ”—

A typical inputs file looks like this:

engine_name = "chemcloud"
program = "xtb"
chemcloud_queue = "celery"
path_min_method = "NEB"

[path_min_inputs]
max_steps = 500
v = false

[chain_inputs]
k = 0.1
delta_k = 0.09
do_parallel = true
use_geodesic_interpolation = true
friction_optimal_gi = true
node_freezing = true
node_rms_thre = 5.0
node_ene_thre = 5.0
frozen_atom_indices = ""

[gi_inputs]
nimages = 10
friction = 0.001
nudge = 0.1
align = true

[gi_inputs.extra_kwds]

[program_kwds]
cmdline_args = []

[program_kwds.keywords]
threads = 1

[program_kwds.extras]

[program_kwds.files]

[program_kwds.model]
method = "GFN2xTB"
basis = "GFN2xTB"

[program_kwds.model.extras]

[optimizer_kwds]
name = "cg"
timestep = 0.5

Top-Level Keys๐Ÿ”—

Key Type Default Notes
engine_name str "chemcloud" Supported: "qcop", "chemcloud", "ase"
program str "xtb" Common values: "xtb", "crest", "terachem"; ase currently only supports "omol25"
chemcloud_queue str \| null null Queue passed to QCOPEngine when using engine_name = "chemcloud"
path_min_method str "NEB" Supported: "NEB", "FNEB", "MLPGI"
path_min_inputs table branch-dependent defaults See below
chain_inputs table ChainInputs() defaults See below
gi_inputs table GIInputs() defaults See below
program_kwds table inferred from engine_name/program Parsed into qcio.ProgramArgs for qcop / chemcloud
optimizer_kwds table { name = "cg", timestep = 0.5 } See optimizer names below

path_min_inputs for NEB๐Ÿ”—

These keys are accepted when path_min_method = "NEB".

Key Type Default
climb bool false
en_thre float 1e-4
rms_grad_thre float 0.02
max_rms_grad_thre float 0.05
skip_identical_graphs bool true
ts_grad_thre float 0.05
ts_spring_thre float 0.02
barrier_thre float 0.1
early_stop_force_thre float 0.0
negative_steps_thre int 5
positive_steps_thre int 10
use_geodesic_tangent bool false
do_elem_step_checks bool false
max_steps float 500
v bool false

Example:

[path_min_inputs]
climb = false
en_thre = 0.0001
rms_grad_thre = 0.02
max_rms_grad_thre = 0.05
skip_identical_graphs = true
ts_grad_thre = 0.05
ts_spring_thre = 0.02
barrier_thre = 0.1
early_stop_force_thre = 0.03
negative_steps_thre = 5
positive_steps_thre = 10
use_geodesic_tangent = false
do_elem_step_checks = false
max_steps = 500
v = false

path_min_inputs for FNEB๐Ÿ”—

When path_min_method = "FNEB", the branch provides these defaults:

Key Default
max_min_iter 100
max_grow_iter 20
verbosity 1
skip_identical_graphs true
do_elem_step_checks true
grad_tol 0.05
barrier_thre 5
tangent "geodesic"
tangent_alpha 1.0
use_xtb_grow true
distance_metric "GEODESIC"
min_images 10
todd_way true
dist_err 0.1

Any provided values override these defaults.

path_min_inputs for MLPGI๐Ÿ”—

MLPGI uses an empty default table on this branch. Keys are effectively backend-specific passthrough.

chain_inputs๐Ÿ”—

Key Type Default Notes
k float 0.1 NEB spring constant
delta_k float 0.09 Energy-weighted spring parameter
do_parallel bool true Parallel gradient/energy computation
use_geodesic_interpolation bool true Use geodesic interpolation for initial path generation
friction_optimal_gi bool true Optimize GI friction parameter
node_freezing bool true Freeze converged nodes
node_rms_thre float 5.0 Node RMS threshold
node_ene_thre float 5.0 Node energy threshold
frozen_atom_indices str "" Space-separated atom indices

Example:

[chain_inputs]
k = 0.1
delta_k = 0.09
do_parallel = true
use_geodesic_interpolation = true
friction_optimal_gi = true
node_freezing = true
node_rms_thre = 5.0
node_ene_thre = 5.0
frozen_atom_indices = ""

gi_inputs๐Ÿ”—

Key Type Default
nimages int 10
friction float 0.001
nudge float 0.1
align bool true
extra_kwds table {}

Example:

[gi_inputs]
nimages = 10
friction = 0.001
nudge = 0.1
align = true

[gi_inputs.extra_kwds]

program_kwds๐Ÿ”—

For engine_name = "qcop" or "chemcloud", this section is parsed into a qcio.ProgramArgs object.

Structure๐Ÿ”—

[program_kwds]
cmdline_args = []

[program_kwds.keywords]
threads = 1

[program_kwds.extras]

[program_kwds.files]

[program_kwds.model]
method = "GFN2xTB"
basis = "GFN2xTB"

[program_kwds.model.extras]

Defaults๐Ÿ”—

If program_kwds is omitted, defaults depend on program:

  • program = "xtb"
  • if crest is available: method/basis gfn2, threads = 1, and program is internally changed to "crest"
  • otherwise: method/basis GFN2xTB
  • program containing "terachem"
  • method ub3lyp
  • basis 3-21g

optimizer_kwds๐Ÿ”—

optimizer_kwds.name selects the optimizer implementation.

Supported names:

  • cg
  • conjugate_gradient
  • vpo
  • velocity_projected
  • lbfgs
  • adam
  • amg
  • adaptive_momentum
  • fire

Defaults:

[optimizer_kwds]
name = "cg"
timestep = 0.5

Minimal Examples๐Ÿ”—

ChemCloud xTB run๐Ÿ”—

engine_name = "chemcloud"
program = "xtb"
chemcloud_queue = "celery"
path_min_method = "NEB"

[path_min_inputs]
max_steps = 250
v = true

[chain_inputs]
use_geodesic_interpolation = true

[gi_inputs]
nimages = 10

[optimizer_kwds]
name = "cg"
timestep = 0.5

Local QCOP TeraChem run๐Ÿ”—

engine_name = "qcop"
program = "terachem"
path_min_method = "NEB"

[path_min_inputs]
max_steps = 100
v = true

[program_kwds]
cmdline_args = []

[program_kwds.keywords]
gpus = 1
sphericalbasis = false

[program_kwds.model]
method = "b3lyp"
basis = "6-31g**"

[optimizer_kwds]
name = "cg"
timestep = 0.5

Loading and Saving๐Ÿ”—

from neb_dynamics.inputs import RunInputs

ri = RunInputs.open("inputs.toml")
ri.save("copied_inputs.toml")

CLI Notes๐Ÿ”—

The CLI reads this file with:

mepd run --start start.xyz --end end.xyz --inputs inputs.toml

A few options are CLI flags, not TOML keys. For example:

  • --recursive
  • --use-tsopt
  • --create-irc
  • --minimize-ends

Those belong on the command line, not inside inputs.toml.