[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