ccu package

Utilities for computational catalysis.

Subpackages

Submodules

ccu.relaxation module

DFT-code agnostic standard relaxation workflow utilities.

Example

import logging
from ase.build import bulk
from ase.calculators import Vasp
from ccu.adsorption.adsorbates import get_adsorbate
from ccu.relaxation import run_relaxation

logging.basicConfig(level=logging.DEBUG)

atoms = bulk("Au") * 3
atoms.center(vacuum=10, axis=2)
surface_atom = max(atoms, key=lambda a: a.position[2])
cooh = get_adsorbate("COOH")
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(...)
run_relaxation(atoms, run_chargemol=True)
ccu.relaxation.run_relaxation(atoms: Atoms, *, run_bader: bool = False, run_chargemol: bool = False) None[source]

Run a relaxation calculation and log the output.

Parameters:
  • atoms – An Atoms object with an attached calculator with which to run the relaxation calculation.

  • run_bader – Whether or not to run Bader analysis afterwards.

  • run_chargemol – Whether or not to run chargemol afterwards.