ccu.workflows.mh

DFT-code agnostic standard minima hopping workflow utilities.

Example

Run a minima hopping simulation with CO on a Au surface

import logging

from ase.build import bulk
from ase.calculators.vasp.vasp import Vasp
from ase.optimize.minimahopping import MinimaHopping
from ccu.adsorption.adsorbates import get_adsorbate
from ccu.workflows.mh import run_minima_hopping

logging.basicConfig(level=logging.DEBUG)

atoms = bulk("Au") * 6
atoms.center(vacuum=10, axis=2)
surface_atom = max(atoms, key=lambda a: a.position[2])
cooh = get_adsorbate("CO")
com = cooh.get_center_of_mass()
site = surface_atom.position + [0, 0, 3]
direction = site - com

for atom in cooh:
    atom.position += direction

atoms += cooh

atoms.calc = Vasp(...)
hopper = MinimaHopping(atoms, ...)
run_minima_hopping(hopper, totalsteps=..., maxtemp=...)
ccu.workflows.mh.run_minima_hopping(hopper: MinimaHopping, totalsteps: int | None = None, maxtemp: float | None = None, output: str | None = None) None[source]

Run a minima hopping simulation.

Parameters:
  • hopper – An initialized MinimaHopping object.

  • totalsteps – The maximum number of minima hopping steps (the outer part of the MH algorithm). Defaults to None.

  • maxtemp – The maximum temperature to which the system will be increased in order to find new basins. Defaults to None.

  • output – The name of the output atoms file. Defaults to SETTINGS.OUTPUT_ATOMS_FILE.