Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1""" 

2This module contains tools for preconditioned geometry optimisation. 

3 

4Code maintained by James Kermode <james.kermode@gmail.com> 

5Parts written by John Woolley, Letif Mones and Christoph Ortner. 

6 

7The preconditioned LBFGS optimizer implemented here is described in 

8the following publication: 

9 

10 D. Packwood, J. R. Kermode, L. Mones, N. Bernstein, J. Woolley, 

11 N. Gould, C. Ortner, and G. Csanyi, A universal preconditioner for 

12 simulating condensed phase materials, J. Chem. Phys. 144, 164109 (2016). 

13 DOI: https://doi.org/10.1063/1.4947024 

14 

15A preconditioned version of FIRE is also included, this is less well tested. 

16 

17Optional dependencies 

18--------------------- 

19 

20 - scipy, `pip install scipy` for efficient sparse linear algebra, 

21 important for large systems (>1000 atoms). 

22 - PyAMG, `pip install pyamg`, for iterative adaptive multi grid 

23 inversion of the preconditioner, again important for large systems. 

24""" 

25 

26from ase.optimize.precon.precon import (Precon, Exp, C1, Pfrommer, 

27 FF, Exp_FF, make_precon, 

28 PreconImages, SplineFit) 

29from ase.optimize.precon.lbfgs import PreconLBFGS 

30from ase.optimize.precon.fire import PreconFIRE 

31 

32from ase.optimize.ode import ODE12r 

33 

34 

35class PreconODE12r(ODE12r): 

36 """ 

37 Subclass of ase.optimize.ode.ODE12r with 'Exp' preconditioning on by default 

38 """ 

39 

40 def __init__(self, *args, **kwargs): 

41 if 'precon' not in kwargs: 

42 kwargs['precon'] = 'Exp' 

43 ODE12r.__init__(self, *args, **kwargs) 

44 

45 

46__all__ = ['make_precon', 'PreconImages', 'SplineFit', 

47 'Precon', 'Exp', 'C1', 'Pfrommer', 'FF', 'Exp_FF', 

48 'PreconLBFGS', 'PreconFIRE', 'PreconODE12r']