Keyword reference

Keywords live under the top-level keywords object. Recognized groups include:

scf, frag, ks_dft, export, regions, optimization, qmmm, gradient, guess, integrals, rtat, hessian, dynamics, boundary, machine_learning, force_field, log, debug.

Defaults in the parameter listings below reflect the EXESS command-line behavior (JSON parser defaults plus EXESS internal defaults). Rush-py defaults are listed at the end of this page.

In practice, you will spend most of your time in scf, frag, ks_dft, and the driver-specific groups (optimization, dynamics, qmmm).

Icon key:

Tip Expert Experimental Known issues

Core Electronic-Structure Keywords

scf

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "scf": {
      "max_iters": 40,
      "max_diis_history_length": 12,
      "convergence_threshold": 1e-8,
      "density_threshold": 1e-11,
      "fock_build_type": "RI"
    }
  },
  "schema_version": "0.2.0"
}
run.py
from rush.exess import SCFKeywords, energy

energy(
    topology_path="molecule_t.json",
    scf_keywords=SCFKeywords(
        max_iters=40,
        max_diis_history_length=12,
        convergence_threshold=1e-8,
        density_threshold=1e-11,
        fock_build_type="RI",
    ),
)
max_itersint (default: 50)Max number of SCF iterations.
max_diis_history_lengthint (default: 8)Max size of DIIS window.
batch_sizeint (default: 2560)Shell-pair batches per bin; use multiples of 128.

Do not go below 128. For details on the shell-pair batch bin container, see 10.1021/acs.jctc.0c00768, 10.1021/acs.jctc.1c00720, and 10.1080/00268976.2022.2112987.

convergence_metricstring (default: DIIS)Convergence metric (DIIS, Energy, Density).
convergence_thresholdfloat (default: 1e-6)SCF convergence threshold; tighten for higher-order fragmentation or tighter energy targets.

Suggested values:

  • 1e-6 for non-fragmented RHF + RI-MP2 with Density/DIIS.

  • 1e-8 for non-fragmented RHF + RI-MP2 with Energy.

  • 1e-6 for dimer-level RHF + RI-MP2.

  • 1e-8 for trimer/tetramer-level calculations with DIIS.

  • 1e-10 for large tetramer-level calculations with DIIS.

density_thresholdfloat (default: 1e-10)Density screening threshold; affects SCF cost and accuracy.

Lower values speed up SCF with potential accuracy loss. Explore 1e-8 to 1e-12 and validate accuracy; too-large values can lead to NaNs.

Increasing to 1e-11 or 1e-12 will slow SCF but can improve accuracy for higher-order fragmentation (e.g., tetramers) and produce crisper MP2 orbitals. Validate results against the default before adopting more aggressive thresholds.

gradient_screening_thresholdfloat (default: 1e-10)Additional screening for gradient-related integrals.
bf_cutoff_thresholdfloat (default: density_threshold)Basis-function cutoff threshold (defaults to density_threshold if omitted).
density_basis_set_projection_fallback_enabledbool (default: auto (fragmented))STO-3G projection fallback toggle.

If omitted, EXESS enables fallback for fragmented calculations and disables it for full-system calculations.

When triggered, EXESS reruns SCF in STO-3G and projects the density into the target basis.

allow_crap_scfbool (default: false)Expert flag to allow lower-quality SCF.

Expert control; adjust only with validation and verify accuracy before production use.

store_ri_b_on_hostbool (default: false)Store RI B matrix on host memory.

Use this if GPU memory is insufficient for RI; this is slower but can still outperform non-RI for some systems.

compress_ri_bbool (default: false)Compress RI B matrix.

Compression can reduce GPU memory use enough to run larger systems that would otherwise exceed available RAM.

homo_lumo_guess_rotation_anglefloat (default: auto (0 or 45))HOMO/LUMO guess rotation (degrees).

Rotation in degrees (0-180) for unrestricted symmetry breaking.

If omitted, EXESS uses 45 degrees for unrestricted singlets and 0 otherwise.

fock_build_typestring (default: HGP)Fock build algorithm (HGP, UM09, RI).

Algorithm definitions:

HGP

Head-Gordon-Pople algorithm, optimized for dense systems.

UM09

Ufimtsev-Martinez algorithm, optimized for screening-heavy systems.

RI

Resolution-of-identity approximation (requires auxiliary basis, higher memory use).

Guidance: HGP is tuned for dense systems where screening is less important (e.g., compact biomolecules). UM09 is tuned for screening-heavy systems (e.g., long chains) and can scale better on large systems. RI stores integrals, can be faster on small systems, but memory usage rises substantially.

fock_build_type includes improved screening for large systems (>3000 basis functions); see https://arxiv.org/abs/2407.21445 for details.

exchange_screening_thresholdfloat (default: 1e-5)Exchange screening threshold (expert control).

Expert control; adjust only with validation.

group_shared_exponentsbool (default: false)Group shared basis exponents (UM09 only).

Expert control used with UM09 and shared-exponent basis sets (e.g., cc-pVDZ).

frag

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "frag": {
      "cutoff_type": "Centroid",
      "distance_metric": "Average",
      "level": "Tetramer",
      "cutoffs": {
        "dimer": 1000,
        "trimer": 20,
        "tetramer": 15
      },
      "included_fragments": [0, 1, 2, 3, 4]
    }
  },
  "schema_version": "0.2.0"
}
run.py
from rush.exess import FragKeywords, energy

energy(
    topology_path="molecule_t.json",
    frag_keywords=FragKeywords(
        cutoff_type="Centroid",
        distance_metric="Average",
        level="Tetramer",
        dimer_cutoff=1000,
        trimer_cutoff=20,
        tetramer_cutoff=15,
        included_fragments=[0, 1, 2, 3, 4],
    ),
)
levelstring (default: required)Fragment expansion order (Monomer .. Octamer).

Truncation counts scale combinatorially: dimers \(n(n-1)/2\), trimers \(n(n-1)(n-2)/6\), tetramers \(n(n-1)(n-2)(n-3)/24\).

cutoffsobject (default: unset)Distance cutoffs in Angstroms.

Keys can include dimer, trimer, tetramer, pentamer, hexamer, heptamer, octamer.

Distances are in Angstroms and should follow dimer > trimer > tetramer when using higher orders.

If omitted, the calculation proceeds without distance filtering (all \(n\)-mers up to level); be cautious with fragment counts to avoid excessive compute.

cutoff_typestring (default: ClosestPair)Distance definition (Centroid or ClosestPair).

Centroid compares fragment centroids.

ClosestPair uses the minimal inter-fragment atom distance (more accurate and generally preferred).

distance_metricstring (default: Max)Reduce pair distances (Max, Average, Min).

Controls how higher-order distances are computed from pair distances.

reference_fragmentint (default: unset)Reference fragment for interaction energies.

Enables lattice/interaction energies by summing \(n\)-mer corrections that include the reference fragment. Negative values indicate binding; positive values indicate repulsion under the usual convention.

included_fragmentsarray[int] (default: unset)Subset of fragments to include.

Restricts the fragment set and treats them as an independent system.

enable_speedbool (default: false)Experimental queue optimization.

Experimental queue optimization intended for AIMD workflows; avoid unless you can validate against a baseline.

ks_dft

KSDFT is used when model.method is RestrictedKSDFT. The KSDFT methodologies are described in the following paper:

Stocks, R.; Barca, G. M. J. Efficient Algorithms for GPU Accelerated Evaluation of the DFT Exchange-Correlation Functional. J. Chem. Theory Comput. 2025. https://doi.org/10.1021/acs.jctc.5c01229.

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedKSDFT",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "ks_dft": {
      "functional": "GGA_XC_PBE",
      "grid": {
        "default_grid": "SUPERFINE",
        "radial_quad": "TreutlerAldrichs",
        "pruning_scheme": "TREUTLER"
      }
    }
  },
  "schema_version": "0.2.0"
}
run.py
from rush.exess import DefaultGridResolution, KSKeywords, XCGridParameters, energy

energy(
    topology_path="molecule_t.json",
    method="RestrictedKSDFT",
    ks_keywords=KSKeywords(
        functional="GGA_XC_PBE",
        grid=XCGridParameters(
            resolution=DefaultGridResolution("SUPERFINE"),
            radial_quad="TreutlerAldrichs",
            pruning_scheme="TREUTLER",
        ),
    ),
)
functionalstring (default: required)LibXC functional name.

EXESS accepts LibXC functional names and ExchCXX linear combinations. Input is uppercased internally, so names are case-insensitive.

Built-in aliases include SVWN5, B2PLYP, REVDSD-PBEP86-D4, and REVDSD-PBEP86-D4(NOFC).

For a full list of functionals, see the LibXC documentation: https://libxc.gitlab.io/functionals

methodstring (default: GauXC)XC evaluation method.
GauXC (default)

GauXC-backed XC evaluation.

Dense

Dense matrix evaluation.

BatchDense

Batched dense evaluation (recommended for most production runs).

Direct

Direct evaluation without storing intermediates.

SemiDirect

Hybrid of direct and batch-dense methods.

use_C_optbool (default: true)Use C-matrix optimization (Dense/BatchDense).

use_C_opt enables C-matrix based XC evaluation, reducing matrix dimensions from n_basis to n_occ for Dense/BatchDense methods. It is only valid for Dense and BatchDense.

gridobject (default: default grid (ULTRAFINE))Numerical grid settings.

Grid quality parameters

Defaults shown where applicable.

radial_quad (default: MuraKnowles)

MuraKnowles, MurrayHandyLaming, TreutlerAldrichs.

pruning_scheme (default: ROBUST)

ROBUST, UNPRUNED, TREUTLER.

consider_weight_zero (default: auto)

Defaults to \(10^{-5}\) times sp_threshold if set, otherwise dp_threshold, otherwise the SCF density_threshold.

Grid size options

Choose one:

default_grid (default: ULTRAFINE)

Preset grid: FINE, ULTRAFINE, SUPERFINE, TREUTLER_GM3, TREUTLER_GM5.

radial_size, angular_size

Custom grid sizes (use together). When set, default_grid is ignored.

Batching options

Choose one:

Closest-atom batching

Default when no batch settings are provided (non-GauXC methods).

octree

Uses max_size (default 512), max_depth (default unlimited), max_distance (default unlimited), combine_small_children (default true).

space_filling

Uses the octree parameters plus target_batch_size (default 1024). combine_small_children defaults to false for space-filling.

batch_size

GauXC batch size (default 512).

If multiple batching keys are provided, EXESS prioritizes octree, then batch_size, then space_filling. For GauXC, EXESS forces GauXC batching and ignores other schemes.

Grid guidance

  • Default grid settings (ULTRAFINE with ROBUST pruning) provide a good accuracy/cost balance for most users.

  • SUPERFINE grids can improve accuracy but significantly increase compute time.

  • Octree batching with BatchDense is useful for large systems where linear scaling is critical.

sp_thresholdfloat (default: SCF density_threshold)Single-precision threshold.

Defaults to dp_threshold when set, otherwise the SCF density_threshold.

dp_thresholdfloat (default: SCF density_threshold)Double-precision threshold.
batches_per_batchint (default: 20)Batches per batch for BatchDense.

Only used when method = "BatchDense".

Minimal KSDFT:

"ks_dft": {
  "functional": "GGA_XC_PBE"
}

Custom grid defaults:

"ks_dft": {
  "functional": "HYB_GGA_XC_B3LYP",
  "method": "Dense",
  "grid": {
    "default_grid": "ULTRAFINE",
    "radial_quad": "MuraKnowles",
    "pruning_scheme": "ROBUST"
  }
}

Octree batching:

"ks_dft": {
  "functional": "HYB_GGA_XC_B3LYP",
  "method": "BatchDense",
  "grid": {
    "octree": {
      "max_size": 512
    }
  }
}

export

Export controls what is written to HDF5 output files:

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "export": {
      "export_density": true,
      "export_fock": true,
      "descriptor_grid": {
        "regular": {
          "min": [-4.0, -4.0, -4.0],
          "max": [4.0, 4.0, 4.0],
          "spacing": [0.2, 0.2, 0.2]
        }
      }
    }
  },
  "schema_version": "0.2.0"
}
run.py
from rush.exess import ExportKeywords, RegularDescriptorGrid, energy

energy(
    topology_path="molecule_t.json",
    export_keywords=ExportKeywords(
        export_density=True,
        export_fock=True,
        descriptor_grid=RegularDescriptorGrid(
            min=[-4.0, -4.0, -4.0],
            max=[4.0, 4.0, 4.0],
            spacing=[0.2, 0.2, 0.2],
        ),
    ),
)
export_densitybool (default: false)Export density.
export_relaxed_mp2_density_correctionbool (default: false)Export relaxed MP2 density correction.
export_fockbool (default: false)Export Fock matrix.
export_overlapbool (default: false)Export overlap matrix.
export_h_corebool (default: false)Export H core matrix.
export_expanded_densitybool (default: false)Export expanded density.

Provides the whole density matrix for the entire fragment system, rather than per-fragment matrices.

export_expanded_gradientbool (default: false)Export expanded gradient.

Provides the whole gradient matrix for the entire fragment system, rather than per-fragment matrices.

Requires a gradient-capable driver (Gradient, Dynamics, QMMM, Optimization).

export_molecular_orbital_coeffsbool (default: false)Export MO coefficients.
export_gradientbool (default: false)Export gradients.

Requires a gradient-capable driver (Gradient, Dynamics, QMMM, Optimization).

export_external_charge_gradientbool (default: false)Export external charge gradients.
export_mulliken_chargesbool (default: false)Export Mulliken charges.
export_chelpg_chargesbool (default: false)Export CHELPG charges.
export_bond_ordersbool (default: false)Export bond orders.
export_h_capsbool (default: false)Export H caps.
export_density_descriptorsbool (default: false)Export density descriptors.
export_esp_descriptorsbool (default: false)Export ESP descriptors.
export_expanded_esp_descriptorsbool (default: false)Export expanded ESP descriptors.
export_basis_labelsbool (default: false)Export basis labels.
export_hessianbool (default: false)Export hessian.

Requires a Hessian calculation.

export_mass_weighted_hessianbool (default: false)Export mass-weighted hessian.

Requires a Hessian calculation.

export_hessian_frequenciesbool (default: false)Export hessian frequencies.

Requires a Hessian calculation.

flatten_symmetricbool (default: true)Flatten symmetric matrices.
light_jsonbool (default: false)Light JSON output.
concatenate_hdf5_filesbool (default: false)Concatenate HDF5 outputs.

Post-process exports into a single HDF5 output file. This is primarily relevant for fragmented runs (particularly when configured for multinode). The concatenation may be expensive.

training_dbbool (default: false)Export training DB metadata.
descriptor_gridobject (default: unset)Grid for descriptor exports.

descriptor_grid can be one of the following structures:

standard

FINE, ULTRAFINE, SUPERFINE, TREUTLER_GM3, TREUTLER_GM5.

params

points_per_shell, order (One or Two), scale.

regular

min, max, spacing arrays (Cartesian grid).

custom

flat list of points [x1, y1, z1, x2, y2, z2, ...].

Q4ML: Optimization & Simulation

regions

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "QMMM",
  "model": {
    "method": "RestrictedHF",
    "basis": "STO-3G"
  },
  "keywords": {
    "qmmm": {
      "n_timesteps": 10,
      "dt_ps": 0.002,
      "temperature_kelvin": 290.0
    },
    "regions": {
      "qm_fragments": [0, 1],
      "mm_fragments": [2, 3]
    }
  },
  "schema_version": "0.2.0"
}
run.py
from rush.exess import qmmm

qmmm(
    topology_path="molecule_t.json",
    residues_path="system.residues",
    n_timesteps=10,
    dt_ps=0.002,
    temperature_kelvin=290.0,
    qm_fragments=[0, 1],
    mm_fragments=[2, 3],
)

Rules and defaults:

  • Provide at least two of the three lists; the remaining region is inferred as the fragments not mentioned elsewhere.

  • If all three lists are provided, they must be disjoint and cover all fragments.

  • Supplying only one list is invalid.

  • If regions is omitted in JSON, mm_fragments and ml_fragments default to empty and qm_fragments is inferred as all fragments (pure QM).

  • If any non-QM region exists, residues must be provided; with no residues, the entire system must be QM.

  • Non-QM regions are only supported for QMMM and Optimization; other drivers (including Energy) require pure QM regions.

  • Non-QM regions are not supported for batched topology inputs.

qm_fragmentsarray[int] (default: inferred)Fragments treated as QM.
mm_fragmentsarray[int] (default: inferred)Fragments treated as MM.
ml_fragmentsarray[int] (default: inferred)Fragments treated as ML.

optimization

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Optimization",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "optimization": {
      "max_iters": 200,
      "algorithm": "LBFGS",
      "coordinate_system": "Cartesian",
      "lbfgs_keywords": {}
    },
    "regions": {
      "qm_fragments": [0],
      "ml_fragments": [1, 2, 3]
    },
    "machine_learning": {
      "ml_type": "AIMNet"
    }
  },
  "schema_version": "0.2.0"
}
run.py
from rush.exess import LBFGSKeywords, OptimizationKeywords, optimization

optimization(
    topology_path="molecule_t.json",
    max_iters=200,
    optimization_keywords=OptimizationKeywords(
        algorithm="LBFGS",
        coordinate_system="Cartesian",
        lbfgs_keywords=LBFGSKeywords(),
    ),
    qm_fragments=[0],
    ml_fragments=[1, 2, 3],
)

Fragmentation (frag) can be used when a QM region exists; EXESS fragments only the QM region and leaves MM/ML regions intact. Residue requirements and region validation details are covered in the regions section.

max_itersint (default: required)Max optimization iterations.
convergence_criteriaobject (default: see details)Convergence metric and thresholds.

Fields:

  • metricstring (default: Baker)

  • gradient_thresholdfloat (default: 3e-4; units: Eh/a0)

  • delta_energy_thresholdfloat (default: 1e-6; units: Eh)

  • step_component_thresholdfloat (default: 3e-4; units: a0)

metric options:

Baker

max gradient component must be within threshold and either delta energy or step component must be within their thresholds.

GradientOnly

only the gradient threshold is enforced.

optimizer_reset_intervalint (default: unset)The coordinate system will be regenerated and the Hessian reset every \(N\) iterations.

If omitted, EXESS never regenerates the coordinate system or resets the Hessian.

coordinate_systemstring (default: DelocalisedInternal)Coordinate system (Cartesian, NaturalInternal, DelocalisedInternal).

DelocalisedInternal is the default and strongly recommended.

Machine learning optimizations require Cartesian.

constraintsarray[array[int]] (default: [])Constrain bond lengths, angles, or dihedrals.

Specify lists of atom indices to constrain.

hessian_guessstring (default: auto)Initial Hessian model (Identity, ScaledIdentity, Schlegel, Lindh).

Defaults to Identity for Cartesian coordinates, otherwise ScaledIdentity.

Upstream docs caution that non-default models are not recommended for general use.

algorithmstring (default: EigenvectorFollowing)Optimization algorithm (EigenvectorFollowing, TrustRegionAugmentedHessian, LBFGS).

EigenvectorFollowing is recommended for most users.

TrustRegionAugmentedHessian is available but not recommended for most workflows.

For machine learning optimizations, LBFGS is strongly recommended.

lbfgs_keywordsobject (default: unset)LBFGS parameters.

Required when algorithm is LBFGS (an empty object {} is acceptable).

Fields (defaults apply when LBFGS is used; set {} to use defaults):

  • linesearchstring (default: BacktrackingStrongWolfe)

  • n_correctionsint (default: 6)

  • epsilonfloat (default: 1e-5)

  • max_linesearchint (default: 40)

  • gtolfloat (default: 0.9)

trust_regionobject (default: see details)Trust-region parameters (for TrustRegionAugmentedHessian).

Fields (defaults apply when TrustRegionAugmentedHessian is used; set {} to use defaults):

  • initial_radiusfloat (default: 0.4)

  • max_radiusfloat (default: 1e5)

  • min_radiusfloat (default: 1e-5)

  • increase_factorfloat (default: 1.2)

  • decrease_factorfloat (default: 0.7)

  • constrict_factorfloat (default: 0.1)

  • increase_thresholdfloat (default: 0.75)

  • decrease_thresholdfloat (default: 0.25)

  • rejection_thresholdfloat (default: 0.0)

The defaults have been optimized; changing them is not recommended unless you have a validated use case.

frozen_distance_slippage_tolerance_angstromsfloat (default: 1e-8)Slippage tolerance (distance).

Controls expected slippage in frozen delocalized coordinates. These tolerances account for small drift when delocalized coordinates are held fixed.

frozen_angle_slippage_tolerance_degreesfloat (default: 1e-8)Slippage tolerance (angle).

Controls expected slippage in frozen delocalized coordinates. These tolerances account for small drift when delocalized coordinates are held fixed.

debug_xyzbool (default: false)Debug XYZ output.
output_trcstring (default: unset)Output TRC path.
fixed_atomsarray[int] (default: unset)Fixed atoms.
free_atomsarray[int] (default: unset)Free atoms.
fixed_fragmentsarray[int] (default: unset)Fixed fragments.
free_fragmentsarray[int] (default: unset)Free fragments.
fix_heavybool (default: false)Fix heavy atoms.

qmmm

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "QMMM",
  "model": {
    "method": "RestrictedHF",
    "basis": "STO-3G"
  },
  "keywords": {
    "qmmm": {
      "n_timesteps": 1000,
      "dt_ps": 0.002,
      "temperature_kelvin": 290.0,
      "trajectory": {
        "format": "XYZ",
        "interval": 10
      },
      "restraints": {
        "k": 1500.0,
        "fix_heavy": true
      }
    }
  },
  "schema_version": "0.2.0"
}
run.py
from rush.exess import Restraints, Trajectory, qmmm

qmmm(
    topology_path="molecule_t.json",
    residues_path="molecule_r.json",
    n_timesteps=1000,
    dt_ps=0.002,
    temperature_kelvin=290.0,
    trajectory=Trajectory(interval=10),
    restraints=Restraints(k=1500.0, fix_heavy=True),
)

Fragmentation (frag) can be used when a QM region exists; EXESS fragments only the QM region and leaves MM/ML regions intact. Residue requirements and region validation details are covered in the regions section.

n_timestepsint (default: required)Number of QMMM timesteps.
dt_psfloat (default: required)Timestep size in ps.
temperature_kelvinfloat (default: required)Temperature in Kelvin.
pressure_atmfloat (default: unset)Optional pressure for NPT runs.

If set, EXESS runs NPT; if unset, NVT is used.

biasesarray[object] (default: unset)Bias potentials for QMMM dynamics.

Each entry must provide exactly one of:

harmonic_cv

Fields: k, offset, cv.

moving_harmonic

Fields: cv, k, rate_per_ps, optional initial_offset, optional final_offset, and resolution (default 0.01).

avoid_bonds

Fields: index, optional indices (default []), optional fragments (default []), optional exceptions (default []), steepness (default 10.0), height (default 10000.0).

cv objects must provide one of:

bond (fields: index1, index2), angle (fields: index1, index2, index3), dihedral (fields: index1, index2, index3, index4), or linear_combination (field: scaled_cvs, each entry has scale and cv).

pbc_angarray[float] (default: unset)Periodic box lengths in angstroms.

Three-element vector [a, b, c] in angstroms.

minimisationobject (default: unset)Classical minimisation settings.

Fields:

  • err_tol_kj_per_mol_nmfloat (default: 10)

  • max_iterationsint (default: 0)

minimisation can only be used in a purely classical run (no QM/ML regions).

trajectoryobject (default: unset)Trajectory output settings.

Fields:

  • formatstring (default: JSON)

  • intervalint (default: 1)

  • startint (default: 0)

  • endint (default: max u32)

  • include_watersbool (default: false)

  • forcesstring (default: unset)

trajectory.format can be JSON or XYZ (default JSON).

trajectory.include_waters can be set to omit waters for smaller trajectories.

trajectory.forces can be all, standard, or biases.

energy_csvstring (default: unset)Path for energy CSV.

When set, EXESS uses a Verlet integrator and does not apply the thermostat (the temperature is not used for integration).

cv_values_csvstring (default: unset)Path for CV values CSV.

Requires at least one CV-based bias (harmonic_cv or moving_harmonic).

restraintsobject (default: unset)Restraints for atoms/fragments.

Fields:

  • kfloat (default: 2000.0)

  • fixed_atomsarray[int] (default: unset)

  • free_atomsarray[int] (default: unset)

  • fixed_fragmentsarray[int] (default: unset)

  • free_fragmentsarray[int] (default: unset)

  • fix_heavybool (default: false)

Only one of fixed_atoms, free_atoms, fixed_fragments, or free_fragments may be specified. Set free_atoms = [] to fix all atoms.

restraints.k scales the restraint force; larger values mean stronger restraints.

ffsarray[string] (default: unset)Additional QMMM force field files.

gradient

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Gradient",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "gradient": {
      "method": "Numerical",
      "finite_difference_step_size": 0.004
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

finite_difference_step_sizefloat (default: 5e-3)Step size for numerical gradients.
methodstring (default: Analytical)Analytical or Numerical.

Advanced & Diagnostic Keywords

guess

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "guess": {
      "external_initial_density_path": "guess.h5",
      "bsp": true,
      "bsp_basis": "STO-3G"
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

external_initial_density_pathstring (default: unset)HDF5 density guess path.

Must reference an HDF5 file with a density dataset at root for RHF, or alpha/density and beta/density for UHF.

Guesses are expected to be stored as flattened lower-triangular density matrices. External guesses are not supported for fragmented calculations, and EXESS warns that guesses from other codes may be incompatible due to basis ordering and normalization.

bspbool (default: false)Basis set projection bootstrap.

Computes a lower-resolution SCF and projects to the target basis. Requires bsp_basis.

bsp_basisstring (default: unset)Lower-resolution basis set for BSP.
bsp_scf_keywordsobject (default: unset)SCF keywords for BSP.

If omitted, EXESS reuses the base SCF keywords.

hcorebool (default: false)Use hcore initial guess.
smdbool (default: auto (fragmented non-RI))Superposition of monomer densities.

If omitted, EXESS enables it for fragmented calculations that are not using RI, and disables it otherwise.

ssfdbool (default: false)Subfragment density guess.

Experimental subfragment guess. ssfd_target_size controls subfragment size (default 30).

ssfd_target_sizeint (default: 30)Target atoms per subfragment.
ssfd_only_converge_in_bsp_basisbool (default: true)Only converge subfragments in BSP basis.

Keeps subfragments unconverged in the primary basis and only projects from the bootstrap basis.

ssfd_scf_keywordsobject (default: unset)SCF keywords for subfragment runs.

If omitted, EXESS reuses the base SCF keywords.

integrals

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "integrals": {
      "scheduler": "RoundRobin",
      "n_streams": 8
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

schedulerstring (default: Callback)Integral scheduler (Callback or RoundRobin).

If integrals is omitted entirely, EXESS uses Callback with 4 streams.

n_streamsint (default: 4 (CUDA) / 1 (HIP))GPU stream count.

rtat

RTAT is a runtime auto-tuner for matrix operations.

RTAT is the open-source rtatblas library. When enabled, EXESS uses it to auto-tune GPU BLAS configurations for matrix operations.

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "rtat": {
      "synchronous": true,
      "json_file_dump_prefix": "rtat"
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

enabledbool (default: true)Enable runtime autotuning.
synchronousbool (default: false)Use synchronous operations.
json_file_dump_prefixstring (default: unset)Prefix for RTAT JSON dumps.

hessian

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Hessian",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "hessian": {
      "finite_difference_step_size": 0.004
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

finite_difference_step_sizefloat (default: 5e-3)Step size for numerical Hessians.
methodstring (default: Numerical)Analytical or Numerical.

dynamics

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Dynamics",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "dynamics": {
      "n_timesteps": 10,
      "use_async_timesteps": false,
      "dt": 0.002
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

n_timestepsint (default: required)Number of timesteps.
dtfloat (default: required)Timestep size in ps.

A typical value is 1 fs (0.001 ps); you must set dt explicitly.

reuse_orbitalsbool (default: false)Reuse orbitals between timesteps.
use_async_timestepsbool (default: true)Run asynchronous timesteps.

Expert option; validate stability before production runs.

boundary

Boundary conditions for periodic or truncated simulations:

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Dynamics",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "boundary": {
      "x": { "kind": "Periodic", "range": { "lower": -2, "upper": 3 } },
      "y": { "kind": "Periodic", "range": { "lower": -2, "upper": 3 } },
      "z": { "kind": "Periodic", "range": { "lower": -2, "upper": 3 } }
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

xobject (default: unset)Boundary configuration for the X axis.

Each axis entry has:

kind

Periodic, Rigid, or Delete.

range

lower/upper extents for periodic boundaries.

yobject (default: unset)Boundary configuration for the Y axis.

Same structure as x.

zobject (default: unset)Boundary configuration for the Z axis.

Same structure as x.

machine_learning

ml_typestring (default: AIMNet)ML model type.

AIMNet is currently the only supported value.

force_field

force_field supplies a classical force field for water/MM components in fragmented AIMD (Dynamics) and other classical MBE steps. QMMM uses qmmm.ffs for additional force fields instead.

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Dynamics",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ",
    "aux_basis": "cc-pVDZ-RIFIT"
  },
  "keywords": {
    "scf": {
      "fock_build_type": "RI"
    },
    "dynamics": {
      "n_timesteps": 10,
      "dt": 0.001
    },
    "frag": {
      "level": "Dimer",
      "cutoffs": {
        "dimer": 7
      }
    },
    "boundary": {
      "x": { "kind": "Periodic", "range": { "lower": -3, "upper": 4 } },
      "y": { "kind": "Periodic", "range": { "lower": -3, "upper": 6 } },
      "z": { "kind": "Periodic", "range": { "lower": -3, "upper": 6 } }
    },
    "force_field": {
      "ff_filename": "forcefield.xml"
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

ff_filenamestring (default: required)Force field filename path.

Used for classical water/MM contributions in fragmented AIMD/MBE; QMMM uses qmmm.ffs instead.

log

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "log": {
      "console": { "level": "Verbose" },
      "logfiles": [
        {
          "level": "Info",
          "prefix_fmt": "[%H:%M:%S {level}] ",
          "directory": "/tmp/exess"
        }
      ]
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

consoleobject (default: see details)Console log settings.

Fields:

  • levelstring (default: LargeInfo). Debug builds use Debug.

  • prefix_fmtstring (default: "").

Log levels: Debug, Verbose, LargeInfo, Info, Performance, Warning, Error (descending verbosity).

logfilesarray[object] (default: [])File log settings.

Fields:

  • levelstring (default: Verbose)

  • prefix_fmtstring (default: [%Y-%m-%d %H:%M:%S.{us} r{rank} {level}] )

  • directorystring (default: unset)

debug

config.json
{
  "topologies": [{ "xyz": "molecule.xyz" }],
  "driver": "Energy",
  "model": {
    "method": "RestrictedHF",
    "basis": "cc-pVDZ"
  },
  "keywords": {
    "debug": {
      "dry_run": true
    }
  },
  "schema_version": "0.2.0"
}

Not supported.

dry_runbool (default: false)Validate fragment queue without computing.

Runs queue construction only (no computation) to validate fragment counts and detect input issues.

print_subfragment_xyzbool (default: false)Print subfragment XYZ for SSFD.

Prints subfragment geometries for SSFD debugging.

max_fragmentsint (default: -1)Limit number of fragments computed.

The default -1 means “use all fragments.”

ignore_fragmentsbool (default: false)Ignore fragmentation (developer validation).

Forces a full-system calculation for validation.

skip_calcsbool (default: false)Skip computations in fragmentation routines.

Skips calculations during fragmentation to debug queue construction performance.

Rush-py defaults

Rush-py sets some defaults in Python before submitting a run. If a *_keywords argument is omitted, rush-py may pass None (no overrides) or construct a default object.

Default keyword behavior for the common entry points:

  • exess.exess / exess.energy / exess.interaction_energy:

    • scf_keywords: unset (EXESS defaults apply).

    • frag_keywords: FragKeywords() (level Dimer, dimer_cutoff=100.0, trimer_cutoff=None, tetramer_cutoff=None, cutoff_type=None, distance_metric=None).

    • export_keywords: ExportKeywords() (all fields unset; no exports requested).

  • exess.chelpg:

    • scf_keywords: SCFKeywords(max_diis_history_length=12, convergence_threshold=1e-8).

    • frag_keywords: FragKeywords(level="Monomer").

    • export: CHELPG charges and bond orders enabled.

  • exess.qmmm:

    • scf_keywords: unset (EXESS defaults apply).

    • frag_keywords: FragKeywords() (same defaults as above).

    • trajectory: Trajectory() (all fields unset; EXESS defaults apply).

  • exess.optimization:

    • optimization_keywords: OptimizationKeywords() (all fields unset; EXESS defaults apply), with required max_iters passed separately.

Rush-py entrypoint defaults (non-keyword parameters):

  • exess.exess / exess.energy / exess.interaction_energy:

    • method="RestrictedHF", basis="cc-pVDZ", aux_basis=None.

  • exess.chelpg:

    • method="RestrictedHF", basis="cc-pVDZ", aux_basis=None.

    • Overrides standard_orientation="None" and force_cartesian_basis_sets=false.

  • exess.qmmm:

    • method="RestrictedHF", basis="STO-3G", aux_basis=None.

    • dt_ps=0.002, temperature_kelvin=290.0, pressure_atm=None.

  • exess.optimization:

    • method="RestrictedHF", basis="cc-pVDZ", aux_basis=None.

FragKeywords defaults by level in rush-py:

Monomer

dimer_cutoff=100.0, trimer_cutoff=None, tetramer_cutoff=None, cutoff_type=None, distance_metric=None.

Dimer

dimer_cutoff=100.0, trimer_cutoff=None, tetramer_cutoff=None.

Trimer

dimer_cutoff=100.0, trimer_cutoff=25.0, tetramer_cutoff=None.

Tetramer

dimer_cutoff=100.0, trimer_cutoff=25.0, tetramer_cutoff=10.0.