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
crestis available: method/basisgfn2,threads = 1, andprogramis internally changed to"crest" - otherwise: method/basis
GFN2xTB programcontaining"terachem"- method
ub3lyp - basis
3-21g
optimizer_kwds๐
optimizer_kwds.name selects the optimizer implementation.
Supported names:
cgconjugate_gradientvpovelocity_projectedlbfgsadamamgadaptive_momentumfire
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.