[ase-users] Spin polarized calculation of H2 Molecule gives different potential energy

Sashank Kasiraju sashank.kasiraju at gmail.com
Fri Apr 12 21:41:03 CEST 2013


Dear ASE/VASP users,

This is my first query, so if I miss something or if I am unclear please
bear with me. I am a relatively new vasp user.

I was trying to do this simple calculation for finding the potential energy
of H2 Molecule. I got 2 different results with and without spin-polarized
calculation. I am using "*vasp.5.3.3 18Dez12 (build Jan 17 2013 09:57:53)*"

   1. When ispin=1 (non-spin polarized) , the bond length of the relaxed
   configuration was around the 0.747 A which is close to the experimental
   value with a potential energy of about (-7.04 ev)
   2. When ispin=2 (spin-polarized), the bond length of relaxed structure
   was 3.801 A, i.e. the hydrogen atoms in the molecule moved apart and exist
   as 2 separate H atoms with the potential energy of about (-2.47 ev)

You can find the python script below. Both the cases have the same python
script (except for the presence/absence of ispin tag i.e. case 1: no ispin
tag, case 2: ispin=2). I used the ibrion=2 tag for ionic relaxation. I will
be happy to provide any other information/outputs if required. Can you
please let me know why this is happening? Or if I am going about it totally
wrong?

Thanks in advance!

*Script: *

from ase.visualize import view
from ase.calculators.vasp import Vasp
from ase.io import write
from ase.structure import molecule
from ase.io import read
import os.path, os

os.environ['VASP_EXEC']='vasp_std'  # define the vasp executable here

file=open('Hydrogen_Energy.txt','a')
name = 'H2_Energy'+ '.traj'
atoms= molecule('H2')
atoms.center(vacuum=10)
calc=Vasp(xc='PBE',
          gga='RP',
          ibrion=2,
  lscalapack=False,
          nsw=500,
          nelm=200,
          ediffg=-0.01,
          prec='Accurate',
          encut=540,
          ediff=1E-6,
          kpts=(1,1,1),
          ismear=0,
  ispin=2,
      sigma=0.01,
  lwave=False,
          lcharg=False,
          ialgo=48,
          lreal='False',
          idipol=4,
          ldipol=True,
          dipol=(0.5,0.5,0.5),
  gamma=True,
          npar=2)
atoms.set_calculator(calc)
e = atoms.get_potential_energy()
write(name, atoms)
file.write(str(e)+'\n'+'In (ev)')
file.close()

Warm Regards,
Sashank.

-- 
Regards,
Sashank Kasiraju,
PhD Student,
Dept. of Chemical Engineering,
University of Houston.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.fysik.dtu.dk/pipermail/ase-users/attachments/20130412/68db625b/attachment.html>


More information about the ase-users mailing list