Overview
This module provides two Prefect tasks for NEB calculations:
Both tasks use a
TASK_SOURCE + INPUTS cache policy.
run — NEB from images
Function signature
Parameters
list[ase.Atoms]
required
Ordered list of
Atoms objects representing the NEB images (including the two endpoint images). Each image is copied internally; the originals are not mutated.ase.calculators.calculator.BaseCalculator
required
Calculator attached to every image via
allow_shared_calculator=True.Optimizer | str
default:"MDMin"
NEB optimizer class or string name.
"BFGSLineSearch" is not supported for NEB. Accepted strings:
"MDMin", "FIRE", "FIRE2", "LBFGS", "LBFGSLineSearch",
"BFGS", "QuasiNewton", "GPMin", "CellAwareBFGS", "ODE12r".dict | None
default:"None"
Extra keyword arguments forwarded to the optimizer constructor.
dict | None
default:"None"
Convergence criteria passed to
optimizer.run(). When None, the ASE optimizer default is used (no step limit). Typical key: fmax (eV/Å).string
default:"idpp"
Initial path interpolation method applied before optimization:
boolean
default:"true"
Enable the climbing-image variant of NEB (CI-NEB). When
True, the highest-energy image climbs toward the true saddle point, giving a more accurate barrier estimate.string | Path | None
default:"None"
Path for writing NEB optimization trajectory. Passed directly to the optimizer constructor.
run_from_endpoints — NEB from endpoints
Function signature
Parameters
ase.Atoms
required
Initial state (reactant) structure.
ase.Atoms
required
Final state (product) structure.
number
required
Total number of images in the NEB path, including the two endpoint images.
ase.calculators.calculator.BaseCalculator
required
Calculator used for endpoint relaxations and the NEB optimization.
Optimizer | str
default:"BFGS"
Optimizer used for both endpoint relaxations and the NEB run. See
run for accepted string values.dict | None
default:"None"
Extra keyword arguments forwarded to the optimizer constructor.
dict | None
default:"None"
Convergence criteria passed to
optimizer.run().boolean
default:"true"
When
True, both start and end are individually relaxed with OPT before the NEB path is constructed. Recommended to ensure the endpoints sit at true local minima.string
default:"idpp"
Interpolation method for generating intermediate images. See
run for options.boolean
default:"true"
Enable climbing-image NEB.
string | Path | None
default:"None"
Path for writing NEB optimization trajectory.
boolean
default:"false"
When
True, results from the endpoint OPT sub-tasks and the inner NEB run are cached and persisted. When False, sub-tasks always recompute.Differences between run and run_from_endpoints
Return value
Both functions return the same structure:tuple[float, float]
Energy barriers returned by
NEBTools.get_barrier(): (forward_barrier_eV, reverse_barrier_eV).list[ase.Atoms]
The fully optimized NEB images in path order.
object
Spline fit object from
ase.utils.forcecurve.fit_images, useful for plotting the energy profile.If the initial relaxation of endpoints fails,
run_from_endpoints returns a Prefect State object instead of a dict.Examples
- NEB from images
- NEB from endpoints