-
Notifications
You must be signed in to change notification settings - Fork 20
Home
Sella is a utility primarily intended for refining approximate saddle point geometries. It relies on ASE to communicate with electronic structure theory packages such as NWChem or Quantum Espresso.
Before learning how to use Sella, you should familiarize yourself with ASE. We suggest you follow the ASE tutorial.
pip install sella
This requires Python 3.6+ and Numpy. ASE, SciPy, JAX, jaxlib, and a newer version of Numpy will be installed automatically if necessary.
Sella does not provide a shell utility or a graphical interface. It must be invoked using Python scripts. Here is an example script:
#!/usr/bin/env python3
from ase.build import fcc111, add_adsorbate
from ase.calculators.emt import EMT
from sella import Sella, Constraints
# Set up your system as an ASE atoms object
slab = fcc111('Cu', (5, 5, 6), vacuum=7.5)
add_adsorbate(slab, 'Cu', 2.0, 'bridge')
# Optionally, create and populate a Constraints object.
cons = Constraints(slab)
for atom in slab:
if atom.position[2] < slab.cell[2, 2] / 2.:
cons.fix_translation(atom.index)
# Set up your calculator
slab.calc = EMT()
# Set up a Sella Dynamics object
dyn = Sella(
slab,
constraints=cons,
trajectory='test_emt.traj',
)
dyn.run(1e-3, 1000)
Sella provides an interface that is compatible with the ASE Optimizer class interface.
For an overview of the hyperparameters available in Sella, see the hyperparameters page.
To learn how to perform constrained saddle point refinement, see the constraints page.