コード例 #1
0
ファイル: Symmetrizer.py プロジェクト: tomaslaz/KLMC_Analysis
 def getSymmetry(self, clusterO):
   """
   Evaluates the symmetry (point group) of a cluster.
   
   """
   
   success = True
   error = ""
   symmetry = ""
   
   if not self._globJVMOn:
     success = False
     error = "JVM is has not been initialized"
     
     return success, error, symmetry
   
   # Saves a cluster in to an xyz file.
   cwd = os.getcwd()
   tempClusterFile = "%s/%s.xyz" % (cwd, Utilities.get_random_name(10))
   
   success, error = IO.writeXYZ(clusterO, tempClusterFile, scfDone=False)
   
   if not success:
     return success, error, symmetry
   
   # Runs the symmetrizer to get the point group
   try:
     self._globJVMSymm.main(["-v", _verbose, "-t", _tolerance, tempClusterFile])
     
   except:
     #TODO: catch the Symmetrizer error
     success = False
     error = "error while running Symmetrizer"
      
     return success, error, symmetry
   
   IO.removeFile(tempClusterFile)
   
   #TODO: In future this should be done via streams
   success, error, symmetry = _getSymmetryFromFile(self._globJVMOutPath, self._globJVMErrPath)
   
   self._clearJVMOutputFiles()
   
   return  success, error, symmetry