[Octopus-users] converging eigenvectors, Arpack error

listemily at eml.cc listemily at eml.cc
Fri Feb 23 21:57:37 WET 2007


Hi Octopus Users,

I'm having trouble getting my ground state calculations to converge
consistently and I'm hoping somebody has some advice for me.  I'm using
the 2.1.0 version.

I have two jellium spheres, 18 electrons each, different densities (so
different radii). 
I've been playing with the relative densities, and their separation
distance.  Also trying to get spheres with 36 electrons each.  I've also
been changing the mixing types and mixing parameters.

I was using the default eigensolver, conjugate gradients, with the
default EigenSolverMaxIter, 25 iterations.  But I noticed that in most
of the SCF cycles I only had 2 or 3 converged eigenvectors.  So I
increased the number of maximum iterations to 200, and also tried the
preconditioned Lanczos eigensolver, both of which give me most of the
eigenvectors converged for the Hamiltonian.  But the eigenvalue
degeneracies don't respect
the symmetry of the problem.  I think I should see two single levels
from the ground (l=0) states of each sphere, then three levels, two of
which are degenerate (l=1 bonding), and another three levels with two
degenerate (l=1 antibonding), et cetera.  But these "converged"
eigenvalues don't show this.  So maybe its no surprise that then the
self-consistency calculation does not converge.

I did have a couple of situations (particular densities, spacings, etc)
for which the calculation did converge, and in these runs it seems I
have approximately the right degeneracies for every SCF cycle, starting
with the LCAO initial conditions.  

Somebody told me that Arpack is the most reliable eigensolver, since
others sometimes lose one of the degenerate levels, so I thought I would
try it.  I recompiled octopus with arpack, and got no complaints
anywhere along the line.  It works fine if I use a different
eigensolver, but when I tried to use Arpack as the eigensolver I got the
error message: 
_____________________________
Input: [EigenSolver = arpack]
Assertion "ubound(psi, DIM=1) == gr%m%np_part" failed in line    62 in
file "h_inc.F90"
_____________________________

So my questions are:
1) Has anybody successfully used arpack in 2.1.0 octopus?  Or seen this
error and knows what I should do to fix it?

2) Does anybody have ideas why my eigenvalues have the wrong degeneracy
or other reasons this system is so difficult to converge?

3) Is there any way to tell octopus that it should impose some symmetry,
so for example it calculates in fewer dimensions or something?

4) Does it usually matter much if we use non-converged eigenvectors in
the next SCF step, or is this common and doesn't interfere with the SCF
convergence?

Thanks to anyone who can offer advice.

:) Emily


More information about the Octopus-users mailing list