All Parameters¶
This page lists all parameters you can use in SCGO. For preset functions and their defaults, see Parameter Presets.
Parameter resolution¶
All high-level run_* functions share the same contract:
Safe defaults — pass
params=None,go_params=None, orts_params=Noneto use full preset defaults.Partial overrides — pass a dict with only the keys you want to change; runners merge with defaults before execution.
Presets encouraged — start from a Parameter Presets builder, inspect/edit, then pass to
run_*.
Merge rules
Dict |
Merge behaviour |
|---|---|
|
Deep-merge onto |
|
Deep-merge onto |
Forbidden in dicts |
Top-level |
Run kwargs |
|
Logging (verbosity >= 1): SCGO logs the defaults source and a flat list of user overrides, then the resolved GO optimizer settings or TS NEB configuration. See Utilities.
Verbosity levels (run_* verbosity= argument):
Level |
Behaviour |
|---|---|
0 |
Warnings and errors only; no progress bars |
1 |
Normal operation: parameter merge logs, timing summaries, campaign progress, and GA phase summaries (initialization, per-generation crossover/mutation/relaxation) |
2 |
Per-individual GA and initialization detail (offspring outcomes, placement failures, ineligible structures after relaxation); third-party loggers still suppressed in HPC mode |
3 |
TRACE-level diagnostics (deepest SCGO logging) |
Configure the root logger with configure_logging(). Set
SCGO_LOCAL_DEV=1 for milder third-party log suppression during local
development (see Installation).
Workflow
from scgo import run_go_ts
from scgo.param_presets import get_default_params, get_ts_search_params
go_params = get_default_params()
go_params["optimizer_params"]["ga"]["niter"] = 8
ts_params = get_ts_search_params(system_type="gas_cluster")
ts_params["max_pairs"] = 12
summary = run_go_ts(
"Pt5",
go_params=go_params,
ts_params=ts_params,
system_type="gas_cluster",
seed=7,
)
GO Parameters¶
Passed as params or go_params to run_go, run_go_campaign, run_go_ts, etc.
Algorithm selection
Runners call select_scgo_minima_algorithm() automatically:
gas_clusteronly, ≤2 mobile atoms →simple(simple_go.db)3 atoms, no adsorbate → Basin Hopping (
bh_go.db)3 atoms, adsorbate system types → Genetic Algorithm (
ga_go.db)≥4 atoms → Genetic Algorithm (
ga_go.db)
Top-Level:
|
|
Calculator: |
|---|---|---|
|
|
Calculator options (e.g. |
|
|
Random seed (function argument overrides) |
|
|
|
|
|
Glob pattern for reference DBs (for diversity mode) |
|
|
Connectivity threshold (covalent radii multiplier) for initialization validation and post-operator GA checks; see Cluster initialization |
|
|
Allow cluster to split (surface only) |
|
|
Allow adsorbates without cluster contact |
|
|
Keep adsorbate fragments connected |
|
|
Keep adsorbate fragments rigid |
|
|
Required for surface runs (prefer the run-function |
|
|
Adsorbate placement knobs (in |
|
(optional) |
Parallel workers for post-GO Hessian/force validation |
|
|
Run vibrational analysis |
|
|
Mark final structures in database |
|
|
Force threshold for validation (eV/\(\AA\)) |
|
|
Check Hessian during validation |
|
|
Imaginary frequency cutoff (cm-1) |
Simple (``optimizer_params[“simple”]``) — used for 1–2 atom gas clusters only:
|
|
Local optimizer name |
|---|---|---|
|
|
Force convergence (eV/\(\AA\)) |
|
|
Relaxation steps |
|
|
Local relaxation budget |
GA (``optimizer_params[“ga”]``):
|
|
Number of structures in population |
|---|---|---|
|
|
Number of generations |
|
|
Probability of mutating each structure |
|
|
Fraction of population replaced each generation |
|
|
Force convergence (eV/\(\AA\)) |
|
|
Vacuum around clusters (\(\AA\)) |
|
|
Auto-adjust mutation rate |
|
|
Stop if no improvement for N generations |
|
|
Parallel jobs for population init (-2 = all but 1) |
|
|
Parallel jobs for offspring |
|
|
Write |
|
|
Include per-generation timing |
|
|
Generations without improvement before adaptive mutation boost |
|
|
Stronger stagnation threshold |
|
|
Generations to watch after a mutation boost |
|
|
Mutation-rate multiplier on stagnation |
|
|
Cap on adaptive mutation probability |
|
|
TorchSim batch size (when using a relaxer) |
|
|
Optional TorchSim relaxer instance |
BH (``optimizer_params[“bh”]``):
|
500K |
Temperature for accepting moves |
|---|---|---|
|
|
Maximum step size (\(\AA\)) |
|
|
Fraction of atoms to move |
|
|
Remove duplicates |
|
|
Energy tolerance for duplicates (eV) |
|
|
Atom move strategy |
|
(default) |
Structure comparator tolerance |
|
(default) |
Pair correlation cutoff for deduplication |
|
|
Optional |
|
|
Write |
|
|
Include per-iteration timing breakdown |
TS Parameters¶
Passed as ts_params to run_ts_search, run_ts_campaign, run_go_ts, etc. Sparse dicts are merged with get_ts_search_params() defaults at run time.
Core:
|
|
Calculator for TS search |
|---|---|---|
|
|
Calculator options |
|
|
Maximum minima pairs to check (None = all) |
|
|
Max energy gap to attempt TS (eV) |
|
|
Use TorchSim for NEB |
|
|
Remove duplicate minima before pairing |
|
|
Connectivity threshold |
|
(default) |
Minima similarity tolerance for pairing |
|
|
Pair-correlation cap for similarity |
|
|
Energy tolerance when deduplicating minima |
|
|
Write |
NEB:
|
|
Number of images |
|---|---|---|
|
|
Maximum optimization steps |
|
|
Force convergence (eV/\(\AA\)); shared across all system types |
|
|
Spring constant (eV/\(\AA\)2) |
|
|
Use climbing image |
|
|
Batch multiple NEB bands in one TorchSim force eval (all system types) |
|
|
Cap concurrent bands in the parallel NEB runner; surface defaults to
|
|
|
Å geometric gate on comparator |
|
|
Align endpoints before interpolation |
|
|
Use minimum image convention |
|
|
Gaussian perturbation on band (Å) |
|
|
Interpolation method |
|
(default) |
NEB tangent method |
|
|
TorchSim force tolerance (mapped internally). Keep equal to |
|
|
TorchSim step budget (mapped internally) |
Adsorbate NEB extras (beyond the table defaults above):
Fragment-wise adsorbate matching and core-anchored alignment
Pair selection prefers activated hops (moderate mismatch / core RMS), oversamples candidates (
10× max_pairs), and re-ranks by IDPP profile so the NEB budget favors robust interior maxima when any existPre-NEB rejection of clashing / high-residual IDPP paths, absurd barriers (
> 8eV), endpoint energy drift after alignment (> 0.5eV), and one-sided interior maxima (prominence< 0.40eV). Endpoint-max IDPP is used only when the oversampled pool has no robust-interior candidatesClimbing NEB: two-stage only when IDPP has a robust interior maximum (barrier
≥ 1.0eV); endpoint-max and soft interior IDPP climb from step 0Finalize also rejects barriers
> 8eV
Surface NEB (differences from gas):
neb_interpolation_mic=True(forced)neb_surface_cell_remap=Trueneb_surface_lattice_rotation=Truefor baresurface_cluster;Falseforsurface_cluster_adsorbate(registry-safe)neb_surface_max_lattice_shift=1parallel_neb_max_bands=1(parallel NEB path stays on; bands are chunked one-at-a-time for OOM safety on large slab cells)
Surface Config¶
|
Required |
ASE Atoms object |
|---|---|---|
|
|
Minimum height above slab (\(\AA\)). Alias: |
|
|
Maximum height above slab (\(\AA\)). Alias: |
|
|
Normal axis (0=x, 1=y, 2=z) |
|
|
Keep entire slab frozen |
|
|
Top layers to relax |
|
|
Bottom layers to freeze |
|
|
Use MIC in structure comparator on surfaces |
|
(optional) |
Extra vacuum for cluster init on slab |
|
|
Surface cluster init mode: |
|
(optional) |
Max cluster placement attempts on slab |
|
(optional) |
Connectivity factor for slab validation |
Note
Use only one of the layer options, not both. See Surface workflows.
Surface heights: adsorption_height_* (canonical) or height_* alias.
Adsorbate heights: height_* (canonical) or adsorption_height_* alias.
Conflicting values raise SCGOValidationError.
Adsorbate Config¶
|
|
Minimum placement height (\(\AA\)). Alias: |
|---|---|---|
|
|
Maximum placement height (\(\AA\)). Alias: |
|
|
Maximum placement tries |
|
|
Clash threshold |
See Also¶
Quick Start - How to use these parameters
Parameter Presets - Preset functions and their defaults
API Reference - API function documentation