I'm using POSCAR as input,when i calculate the energy,all the angles were
modified?after doing this the energy is far different from VASP result,why
correct the angles?
this is my input files:
Ti Zr                                   
   1.00000000000000     
     7.1138700427624730    0.0000000000000000   -0.0000000000000000
     0.0000000000000000    7.1138700427624730   -0.0000000000000000
    -0.0000000000000000   -0.0000000000000000    7.1138700427624730
   Ti   Zr
     1    15
Direct
  0.5000000000000000  0.5000000000000000  0.0000000000000000
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.2572095688752021  0.2572095688752021  0.2427904311247979
  0.5000000000000000 -0.0000000000000000 -0.0000000000000000
  0.0000000000000000  0.5000000000000000  0.0000000000000000
 -0.0000000000000000 -0.0000000000000000  0.5000000000000000
  0.7427904311247978  0.2572095688752021  0.2427904311247979
  0.2572095688752021  0.7427904311247978  0.2427904311247979
  0.2572095688752021  0.2572095688752021  0.7572095688752022
  0.7427904311247978  0.7427904311247978  0.7572095688752022
  0.2572095688752021  0.7427904311247978  0.7572095688752022
  0.7427904311247978  0.2572095688752021  0.7572095688752022
  0.7427904311247978  0.7427904311247978  0.2427904311247979
  0.5000000000000000  0.5000000000000000  0.5000000000000000
 -0.0000000000000000  0.5000000000000000  0.5000000000000000
  0.5000000000000000  0.0000000000000000  0.5000000000000000

this is my code in python:
import openbabel as ob
try:
  filename ="/home/mozzie/PycharmProjects/Ti.txt"
except:
  print "Usage: python energy.py filename"
  sys.exit(1)

# Read the file.
mol = ob.OBMol()
conv = ob.OBConversion()
format = conv.FormatFromExt(filename)
conv.SetInFormat('POSCAR')
conv.ReadFile(mol, filename)
ff = ob.OBForceField.FindForceField("UFF")
if ff == 0:
  print "Could not find forcefield"
ff.SetLogLevel(ob.OBFF_LOGLVL_HIGH)
# python specific, python doesn't have std::ostream so the SetLogFile()
# function is replaced by SetLogToStdOut and SetLogToStdErr in the SWIG
# interface file
ff.SetLogToStdErr()
c=ob.OBFFConstraints()
# Setup the molecule. This assigns atoms types, charges and parameters 
if ff.Setup(mol) == 0:
  print "Could not setup forcefield"

# Calculate the energy

s=ff.Energy()
p=ff.GetCoordinates(mol)
ed=time.time()
print s
print p

this is part of logs
SETTING UP ANGLE CALCULATIONS...
    CORRECTED COORDINATION FOR ANGLE 3-1-5 (IDX)... WAS 6 NOW 5
    CORRECTED COORDINATION FOR ANGLE 5-1-7 (IDX)... WAS 6 NOW 5
    CORRECTED COORDINATION FOR ANGLE 5-1-8 (IDX)... WAS 6 NOW 5
    CORRECTED COORDINATION FOR ANGLE 5-1-13 (IDX)... WAS 6 NOW 5
    CORRECTED COORDINATION FOR ANGLE 3-1-7 (IDX)... WAS 6 NOW 5
    CORRECTED COORDINATION FOR ANGLE 3-1-8 (IDX)... WAS 6 NOW 5
    CORRECTED COORDINATION FOR ANGLE 3-1-13 (IDX)... WAS 6 NOW 5
    CORRECTED COORDINATION FOR ANGLE 7-1-8 (IDX)... WAS 6 NOW 5



--
View this message in context: 
http://forums.openbabel.org/why-forcefielduff-correct-angles-when-calculate-energy-tp4659016.html
Sent from the General discussion mailing list archive at Nabble.com.

------------------------------------------------------------------------------
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to