[gpaw-users] inverse_cholesky error: in VDW xc calculation
Wei-Bing Zhang
weibingzhangavh at gmail.com
Thu Dec 2 11:32:03 CET 2010
Hi, all
I try to optimize the lattice parameter with vdwxc using GPAW. When
the gpts is set to (16,16,16), it works. But when i increase this to
(20,20,20) or (24,24,24), it fails to converge and gives
inverse_cholesky error. Sure, the calculations with these gpts
parameter work well for PBE functional. Does anyone know what happens
here?? Any suggestion is highly appreciated! Thanks a lot.
Best,
Wei-Bing Zhang
import numpy as np
from numpy import linspace
from ase.parallel import paropen
from ase.structure import bulk
from gpaw import FermiDirac, MixerSum
from gpaw.utilities.bulk2 import GPAWRunner
from gpaw import *
from ase.structure import bulk
from gpaw.xc.vdw import FFTVDWFunctional
Ni=bulk('Ni','fcc',a=3.52)
Ni.set_initial_magnetic_moments([1.0])
fk=paropen("energy_k.dat",'w')
#for x in [0.9,0.94,0.98,1.02,1.06,1.10]:
vdw1 = FFTVDWFunctional('vdW-DF', verbose=1)
vdw2 = FFTVDWFunctional('vdW-DF2', verbose=1)
cell=Ni.get_cell()
for x in linspace(0.95,1.05,5):
Ni.set_cell(x*cell)
tag='%.2f'%x
calc = GPAW(spinpol=True,
xc=vdw1,
gpts=(24, 24, 24),
poissonsolver=PoissonSolver(eps=1e-12),
mixer=MixerSum(beta=0.05, nmaxold=5, weight=50.0),
occupations=FermiDirac(0.1),
kpts=(12,12,12),txt=tag+'.txt')
Ni.set_calculator(calc)
energy=Ni.get_potential_energy()
calc.write(tag+'.gpw',mode='all')
print >> fk,x,energy
error mesage:
energy=Ni.get_potential_energy()
File "/export/zhang/program/ase/ase/atoms.py", line 503, in
get_potential_energy
return self.calc.get_potential_energy(self)
File "/export/zhang/program/gpaw/lib/python/gpaw/aseinterface.py",
line 33, in get_potential_energy
self.calculate(atoms, converge=True)
File "/export/zhang/program/gpaw/lib/python/gpaw/paw.py", line 258,
in calculate
self.occupations):
File "/export/zhang/program/gpaw/lib/python/gpaw/scf.py", line 46, in run
wfs.eigensolver.iterate(hamiltonian, wfs)
File "/export/zhang/program/gpaw/lib/python/gpaw/eigensolvers/eigensolver.py",
line 66, in iterate
wfs.orthonormalize()
File "/export/zhang/program/gpaw/lib/python/gpaw/wavefunctions/fdpw.py",
line 188, in orthonormalize
self.overlap.orthonormalize(self, kpt)
File "/export/zhang/program/gpaw/lib/python/gpaw/overlap.py", line
94, in orthonormalize
self.ksl.inverse_cholesky(S_nn)
File "/export/zhang/program/gpaw/lib/python/gpaw/blacs.py", line
637, in inverse_cholesky
self._inverse_cholesky(S_NN)
File "/export/zhang/program/gpaw/lib/python/gpaw/blacs.py", line
644, in _inverse_cholesky
inverse_cholesky(S_NN)
File "/export/zhang/program/gpaw/lib/python/gpaw/utilities/lapack.py",
line 98, in inverse_cholesky
raise RuntimeError('inverse_cholesky error: %d' % info)
RuntimeError: inverse_cholesky error: 1
GPAW CLEANUP (node 3): <type 'exceptions.RuntimeError'> occurred.
Calling MPI_Abort!
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD
with errorcode 42.
More information about the gpaw-users
mailing list