The dimer method of Henkelman and Jónsson with improvements by Heyden et al and Kästner and Sherwood for estimating the lowest eigenmode using only first derivatives. 1 2 3
The solid state dimer module extends this method to solid state phase transitions. 4
The SSDimer_atoms is an atoms-like class, which defines suitable set_positions(), get_positions(), get_forces() for the solid-state dimer (SSDimer) method to include cell degrees of freedom in saddle search. It becomes the regular dimer by setting “ss=False”. External stress tensor can be applied by setting “express” to find saddles on enthalpy surfaces.
phi_tol = 5, rotationMax = 4, ss = False, express=np.zeros((3,3)), rotationOpt = ‘cg’, weight = 1):
Example:
from tsase.dimer import ssdimer d = ssdimer.SSDimer_atoms(R0 = p, rotationMax = 10, phi_tol=3, ss = True) ### Use quickmin optimizer in ssdimer d.search(minForce = 0.0001, movie = "dimer2.movie", interval = 20 ) ### Or use other first order optimizer in ase. ### Second order optimizers cannot be used when "ss = True". #dyn = MDMin(d) #dyn.run(fmax=0.0001)
References
Henkelman and H. Jónsson, “A dimer method for finding saddle points on high dimensional potential surfaces using only first derivatives,” J. Chem. Phys. 111, 7010-7022 (1999). DOI
Heyden, A.T. Bell, and F.J. Keil, “Efficient methods for finding transition states in chemical reactions: Comparison of improved dimer method and partitioned rational function optimization method,” J. Chem. Phys. 123, 224101 (2005). DOI
Kästner and P. Sherwood, “Superlinearly converging dimer method for transition state search,” J. Chem. Phys. 128, 014106 (2008) DOI
Xiao, D. Sheppard, J. Rogal, and G. Henkelman, “Solid-state dimer method for calculating solid-solid phase transitions”, J. Chem. Phys. 140, 174104 (2014). DOI