Example #1
0
File: xyz.py Project: hornos/pypak
class IO( File ):
  def __init__( self, path = None, opts = "", sysopts = { "verbose" : False, "debug" : False } ):
    File.__init__( self, path, opts, sysopts )
    self.geom = Geometry( 'xyz' )
    self.species = {}
  # end def

  def read( self, opts = None ):
    raise NotImplementedError( "read" )
  # end def

  ### begin write
  def write( self, opts = None ):
    line = ["",""]
    self.rewind()
    self.clean()
    # dump header
    self.putline( self.geom.natoms() )
    self.putline( self.geom.name )
    try:
      pt = opts['pt']
    except:
      pt = PT.Cart
    # end try

    # dump coordinates
    for atom in self.geom.atoms:
      s = atom.symbol
      mov = atom.moveable
      line[0] = "  %2s" % s

      # convert
      pos = atom.position
      if self.geom.pt != pt:
        if pt == PT.Cart:
          # D -> C
          opos = atom.position
          pos = self.geom.position_cart( atom.position )
        else:
          # C -> D
          pos = self.geom.position_direct( atom.position )
        # end if
      # end if

      for i in range( 0, 3 ):
        line[0] += "  %20.16f" % pos[i]
      # end for
      self.putline( line[0] )
    # end for
    #
    self.write_buffer()