[Pw_forum] how to calculate and plot HOMO or LUMO isosurface
Giuseppe Mattioli
giuseppe.mattioli at ism.cnr.it
Wed Jul 25 09:16:43 CEST 2012
Dear Felipe
You seem not to be a chemist...:-)
The ground state of an O2 molecule is a triplet one, with 7 up valence electrons and 5 down.
Dear Zhan
This morning (morning in Italy, at least) you are lucky. I've done (almost) the same thing
yesterday...
Once the above is settled, first you should perform a relax calculation with K_POINTS (gamma). You do
not need a nscf calculation if you use a bit of smearing. Something like
&control
calculation = 'relax'
prefix='$FILE',
pseudo_dir = '$PSEUDO_DIR/',
outdir='$TMP_DIR/',
/
&system
ibrav=1, celldm(1)=30.000000,
nat=2, ntyp=1,
ecutwfc =35.0,
ecutrho =280.0,
occupations='smearing', degauss=0.01,
nspin=2,
starting_magnetization(1)=0.3,
/
&electrons
mixing_mode='plain'
mixing_beta=0.3
conv_thr=1.0d-7
electron_maxstep=200
/
&ions
ion_dynamics='bfgs'
/
ATOMIC_SPECIES
O 15.999 O_pbe.van.UPF
ATOMIC_POSITIONS {angstrom}
O 5.000576334 5.029093041 5.029093041
O 5.009423666 5.870906959 5.870906959
K_POINTS {gamma}
will provide a sufficient number of unoccupied orbitals for your purpose.
Then, remember that when you use nspin=2 and K_POINTS {gamma} you are formally using two k points
(gamma up and gamma down) which are labelled as kpoint=1 and kpoint=2, respectively. In your pw.x
output you should acknowledge (but you should already know it by molecular orbital theory of
homonuclear diatomic molecules...) that both the HOMO in the up channel (-9.1985 -9.1983) and the
LUMO in the down channel (-4.9925 -4.9924) are doubly degenerate. Thus, you must plot the single-
electron orbitals and sum them.
------ SPIN UP ------------
k = 0.0000 0.0000 0.0000 ( 47171 PWs) bands (ev):
-34.3196 -21.0375 -17.4698 -17.4697 -14.7359 -9.1985 -9.1983 -0.6483
-0.1403 -0.0924
------ SPIN DOWN ----------
k = 0.0000 0.0000 0.0000 ( 47171 PWs) bands (ev):
-33.1724 -19.2543 -13.7742 -12.6937 -12.6937 -4.9925 -4.9924 -0.5833
-0.0519 -0.0089
the Fermi energy is -8.4505 ev
This is quite easy, supposing that you read carefully the pp.x input guide... But, as I said, you
won a free ride today...
&inputpp
prefix = '$FILEA'
outdir = '$TMP_DIR/'
filplot = '$FILEA-HOMOa.dat'
plot_num= 7
kpoint=1
kband=6
/
$PARA_PREFIX $ESPRESSO/pp.x $PARA_POSTFIX < $INPFILE >> $OUTFILE
&inputpp
prefix = '$FILEA'
outdir = '$TMP_DIR/'
filplot = '$FILEA-HOMOb.dat'
plot_num= 7
kpoint=1
kband=7
/
$PARA_PREFIX $ESPRESSO/pp.x $PARA_POSTFIX < $INPFILE >> $OUTFILE
&inputpp
/
&plot
nfile = 2
filepp(1) = '$FILEA-HOMOa.dat'
weight(1) = 1.0
filepp(2) = '$FILEA-HOMOb.dat'
weight(2) = 1.0
iflag = 3
output_format = 5
fileout = '$FILEA-HOMO.plot'
e1(1) =1.0, e1(2)=1.0, e1(3) = 0.0,
e2(1) =0.0, e2(2)=0.0, e2(3) = 1.0,
nx=56, ny=40
/
$PARA_PREFIX $ESPRESSO/pp.x $PARA_POSTFIX < $INPFILE >> $OUTFILE
This will produce a nice .xsf file containing your HOMO orbital, which you can plot with xcrysden.
You may also obtain a cube file, but I cannot remember the output format.
As for the LUMO, use kpoint=2, and the correct kband numbers and do the same thing.
I hope this really help... (in Italy I would have said: you owe me a cup of coffee...)
Giuseppe
On Wednesday 25 July 2012 08:43:30 Filipe Camargo Dalmatti Alves Lima wrote:
> Dear Zhan,
>
> The number of electrons on your system determines the occupied bands and
> consequently the HOMO level.
>
> So, What you need to do?
>
> First, check the number of electron that you are using. (If you are using
> the O default pseudopotencials it should be 6 valence electrons)
> Then, you'll have 12 electrons and 6 bands (each bands is occupied by 2
> electrons).
>
> Now check your output file, which is generated using the pw.x code.
> The band number 6 represents your HOMO level and the band number 7 is the
> LUMO one.
>
> So, now you know your bands. Then you can obtain the wavefunction.
>
> You will need to run the pp.x twice: one for HOMO and another for LUMO.
> kband=6 (to plot HOMO)
> and
> kdand=7 (to plot LUMO)
>
> I hope it will solve your problem,
>
> Best regards,
>
> > Dear PWSCF users,
> >
> > I am trying to calculate HOMO and LUMO levels and plot these isosurfaces
> > for O2 molecule.
> > I first relaxed the O2 and then did nscf calculation. then I used pp.x to
> > calculate the HOMO and LUMO levels. but I can not find the HOMO or LUMO
> > level in output files.
> > the code for pp.x is pasted as following:
> >
> > &inputpp
> >
> > prefix= 'O2'
> > outdir= '/scratch/zhan0273/PWSCF/O2/tmp'
> >
> > filplot = 'O2'
> > plot_num= 7
> > spin_component=0
> > ! kpoint=40
> > kband=8
> > /
> > &plot
> > nfile = 1
> > filepp(1) = 'O2'
> > weight(1) = 1.0
> > iflag = 3
> > output_format = 5
> > fileout = 'O2.orb.xsf'
> > /
> >
> > So please give advice. Thank you all in advance!
> >
> > Best regards,
> >
> > ------------------------------
> > Franklin Zhan
> > Ph.D student
> > School of Mechanical and Aerospace Engineering,
> > Nanyang Technological University, Singapore.
> >
> >
> >
> >
> > _______________________________________________
> > Pw_forum mailing list
> > Pw_forum at pwscf.org
> > http://www.democritos.it/mailman/listinfo/pw_forum
--
********************************************************
- Article premier - Les hommes naissent et demeurent
libres et ègaux en droits. Les distinctions sociales
ne peuvent être fondèes que sur l'utilitè commune
- Article 2 - Le but de toute association politique
est la conservation des droits naturels et
imprescriptibles de l'homme. Ces droits sont la libertè,
la propriètè, la sùretè et la rèsistance à l'oppression.
********************************************************
Giuseppe Mattioli
CNR - ISTITUTO DI STRUTTURA DELLA MATERIA
v. Salaria Km 29,300 - C.P. 10
I 00015 - Monterotondo Stazione (RM)
Tel + 39 06 90672836 - Fax +39 06 90672316
E-mail: <giuseppe.mattioli at ism.cnr.it>
More information about the users
mailing list