[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