def constrained?
      if self.constrain
        if self.constrain == true
          true
        elsif self.constrain.is_a? String
          true
        elsif self.constrain.is_a? Array and not self.constrain.empty?
          true
        else
          false
        end
      else
        false
      end
    end
def constrained?
      if self.constrain
        if self.constrain == true
          true
        elsif self.constrain.is_a? String
          true
        elsif self.constrain.is_a? Array and not self.constrain.empty?
          true
        else
          false
        end
      else
        false
      end
    end
Create an atom of the specified species at the given coordinates
 @param [Float] x The x coordinate of the atom in angstrom
 @param [Float] y The y coordinate of the atom in angstrom
 @param [Float] z The z coordinate of the atom in angstrom
 @param [String, nil] s The atomic species ex. "C", "Si", "S", etc. (can be nil)
 @param [Boolean, String, Array<String>] c The relaxation constraints. valid values are TRUE, FALSE, ".true.", ".false.", "x", "y", "z" or %w(x y z)
 @return [Atom] a new Atom
 A boolean value,
 True if the atom has relaxation constraints