[gpaw-users] setting eigensolver

Pawel Zawadzki zawpaw at fysik.dtu.dk
Sat Jul 31 18:35:07 CEST 2010


Dear GPAW Users,

How do we change once set eigensolver?
calc.set(eigensolver='cg') is probably not the way to do so (see example 
below).
How do we make sure which one is used?
Thanks in advance.
Best regards,
Pawel

######################################################################################################
from gpaw import GPAW
from ase.data.molecules import molecule
calc = GPAW(convergence={'energy': 0.001, # eV
  'density': 1.0e-3,
  'eigenstates': 1.0e-4,
  'bands': 2},)
mol = molecule('H2', calculator=calc)
mol.center(vacuum=5)
calc.atoms=mol
E  = calc.get_potential_energy()
#OUTPUT:
#Eigensolver:       rmm-diis
#                   (3 nearest neighbors central finite-difference stencil)

calc.wfs.eigensolver
#Out[8]: <gpaw.eigensolvers.rmm_diis.RMM_DIIS instance at 0xb7a2820c>

#That's ok but:
######################################################################################################
#first option
calc.set(eigensolver='cg')
calc.scf.reset()
E=calc.get_potential_energy()
#OUTPUT:
#Eigensolver:       cg
#                   (3 nearest neighbors central finite-difference stencil)
calc.wfs.eigensolver
#Out[12]: <gpaw.eigensolvers.rmm_diis.RMM_DIIS instance at 0xb7a2820c>
######################################################################################################
#second option
from gpaw.eigensolvers import get_eigensolver
eigensolver = get_eigensolver('cg', calc.input_parameters.mode, 
calc.input_parameters.convergence)
eigensolver.nbands_converge =calc.input_parameters.convergence['bands']
calc.wfs.set_eigensolver(eigensolver)
calc.scf.reset()
E=calc.get_potential_energy()
#OUTPUT:
#Eigensolver:       rmm-diis
#                   (3 nearest neighbors central finite-difference stencil)
calc.wfs.eigensolver
#Out[15]: <gpaw.eigensolvers.cg.CG instance at 0xb76ddc0c>



More information about the gpaw-users mailing list