Questions about printing out unoccupied molecular orbitals (LUMO, LUMO+x)
zh
vale... at gmail.com
Tue Mar 2 14:07:56 UTC 2010
Dear all,
When I printed the unoccupied molecular orbitals of C6H6 into the cube
files and analyzed them, I met the followings problem:
The shapes of unoccupied molecular orbitals obtained with cp2k (GAPW
calculation) are quite different from those obtained with other codes
(LCAO method and Plane-wave pseudopotential method).
The keywords specified in the input file for generating the cube files
of unoccupied molecular orbitals:
....
MAX_ITER_LUMO 5999
EPS_LUMO 3.E-7
ADDED_MOS 10
...
&PRINT
&MO_CUBES
NHOMO 3
NLUMO 10
WRITE_CUBE .TRUE.
&END MO_CUBES
&END PRINT
....
I also examined the log file and found the following information:
---
Eigenvalues of the occupied subspace spin 1
and 10 added MO eigenvalues
---------------------------------------------
-9.87289173 -9.87276638 -9.87276248 -9.87242760
-9.87242383 -9.87226307 -0.76294011 -0.66142985
-0.66141836 -0.52895626 -0.52895605 -0.45746985
-0.39629304 -0.38443742 -0.36038167 -0.36037151
-0.31546968 -0.28755156 -0.28754954 -0.21567922
-0.21566949 -0.02617647 -0.02617516 0.03512159
0.07206783 0.07215809 0.10479005 0.10527223
0.11638929 0.13027147 0.24632554
Fermi Energy [eV] : -5.868665
Lowest Eigenvalues of the unoccupied subspace spin 1
-----------------------------------------------------
Reached convergence in 4483 iterations
0.24706383 0.25840280 0.25869375 0.28401710
0.32929682 0.37178993 0.37837600 0.37872848
0.39283865 0.40999697
HOMO - LUMO gap [eV] : 12.591614
****
The problem in the log file is that the 10 lowest eigenvalues of the
unoccupied subspace are quite larger than the 10 added MO eigenvalues.
I also read the source code related to these parts (i.e.,
qs_scf_post_gpw.F) and found that the unoccupied orbitals are
recalculated through the subroutines "make_lumo()", "
"ot_eigensolver()", and "calculate_subspace_eigenvalues()".
My questions are the followings:
i) Since the unoccupied molecular orbitals are already obtained by
other subroutine "get_mo_set()" before calling "make_lumo()", why are
the unoccupied molecular orbitals needed to be recalculated?
Actually, the convergence of the recalculation of unoccupied molecular
orbitals in "ot_eigensolver()" is quite slow and the eigenvalues of
unoccupied molecular orbitals become unreasonable.
ii) How to get the reasonable unoccupied molecular orbitals,
especially for the LUMO, LUMO+1, LUMO+2, and LUMO+3?
Thanks for the help.
More information about the CP2K-user
mailing list