Skip to content

comocheng/sella

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sella

Sella is a utility for finding first order saddle points

An example script

#!/usr/bin/env python3

from ase.build import fcc111, add_adsorbate
from ase.calculators.emt import EMT

from sella import MinModeAtoms, optimize

# 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')

# Define any constraints. Here we fix all atoms in the bottom half
# of the slab.
fix = [atom.index for atom in slab if atom.position[2] < slab.cell[2, 2] / 2.]

# Set up your calculator
calc = EMT()

# Create a Sella MinMode object
myminmode = MinModeAtoms(slab,  # Your Atoms object
                         calc,  # Your calculator
                         constraints=dict(fix=fix),  # Your constraints
                         trajectory='test_emt.traj',  # Optional trajectory
                         )

x1 = optimize(myminmode,    # Your MinMode object
              maxiter=500,  # Maximum number of force evaluations
              ftol=1e-3,    # Norm of the force vector, convergence threshold
              r_trust=0.1,  # Initial trust radius (Angstrom)
              order=1,      # Order of saddle point to find (set to 0 for minimization)
              dxL=1e-4,     # Finite difference displacement magnitude (Angstrom)
              maxres=0.1,   # Maximum residual for eigensolver convergence (should be <= 1)
              )

Additional documentation forthcoming. All interfaces likely to change.

If you are using Sella or you wish to use Sella, let me know!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%