def copy
      newAtoms = []
      newVecs = []
      @atoms.each{|a|
        newAtoms << a.copy
      }
      @lattice_vectors.each{|v|
        newVecs << v*1
      }
      uc = Geometry.new(newAtoms, newVecs)
      uc.clip_planes = self.clip_planes
      uc.miller_to_cart = self.miller_to_cart
      uc.cart_to_miller = self.cart_to_miller
      uc.recache_visible_atoms
      return uc
    end
def copy
      newAtoms = []
      newVecs = []
      @atoms.each{|a|
        newAtoms << a.copy
      }
      @lattice_vectors.each{|v|
        newVecs << v*1
      }
      uc = Geometry.new(newAtoms, newVecs)
      uc.clip_planes = self.clip_planes
      uc.miller_to_cart = self.miller_to_cart
      uc.cart_to_miller = self.cart_to_miller
      uc.recache_visible_atoms
      return uc
    end
Return a new Aims#Geometry that is a deep copy of this geometry.