[Octopus-users] converging eigenvectors, Arpack error
alberto.castro at tddft.org
Sun Feb 25 22:22:48 WET 2007
If there are degeneracies in the HOMO, then you should fix the occupations
in the input file. Otherwise the code (and any other DFT code) may not be
able to set them correctly. For example, for the C atom one would use
SpinComponents = polarized
ExtraStates = 2
1 | 2/3 | 2/3 | 2/3
1 | 0 | 0 | 0
If you do not know the correct degeneracies before doing the calculation,
then the standard strategy is to use fractional occupation numbers, and
decide the occupations with some distribution function -- in octopus, we
have put the Femi-Dirac function, which intuitively is like allowing for
some "electronic temperature". The variable is ElectronicTemperature. One
then has to make sure that there are extra states, by making use of the
Regarding arpack, you are right, the code was crashing. Since nobody was
using arpack, the bug appeared some time ago and nobody saw it. It will be
solved in the next releases.
Ah, it is not too important if the eigenvectors are not converged in the
SCF steps, it is only important that they are converged at the end.
On Fri, 23 Feb 2007 listemily at eml.cc wrote:
> 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
> Thanks to anyone who can offer advice.
> :) Emily
> Octopus-users mailing list
> Octopus-users at tddft.org
Dr. Alberto Castro
Institut fur Theoretisch Physik, Freie Universitat Berlin.
Arnimallee, 14, Berlin 14195 (Deutschland)
Tel: +49 030 83853028
Fax: +49 030 83855258
email: alberto at physik.fu-berlin.de
More information about the Octopus-users