ASE integration

ASE is the standard Python toolbox for atomic-scale simulation — geometry optimisation, molecular dynamics, vibrational analysis, structure I/O. vibe-qc provides a VibeQC ASE Calculator that lets you plug the vibe-qc electronic structure into any ASE workflow.

from ase.build import molecule
from ase.optimize import BFGS
from vibeqc.ase import VibeQC

atoms = molecule("H2O")
atoms.calc = VibeQC(method="rhf", basis="6-31g*")

BFGS(atoms).run(fmax=0.01)
print(atoms.get_potential_energy())   # eV

Supported methods

The method parameter selects the electronic-structure driver:

method=

Driver

Open-shell

"rhf"

run_rhf

No

"uhf"

run_uhf

Yes

"rks"

run_rks

No (set functional=)

"uks"

run_uks

Yes

If the Atoms.magmoms attribute is non-zero, vibe-qc automatically selects the U* variant and sets the multiplicity accordingly.

Forces

All four methods above expose analytic nuclear gradients. ASE’s get_forces() returns them in eV/Å as usual.

f = atoms.get_forces()

Periodic calculations via ASE

ASE also handles periodic cells. Integration with run_rhf_periodic / run_rks_periodic is a planned extension — for now, translate the Atoms to a PeriodicSystem manually as shown in the tutorials.