Esempio n. 1
0
    def __init__(self,
                 symbol="X",
                 position=(0, 0, 0),
                 tag=None,
                 momentum=None,
                 mass=None,
                 magmom=None,
                 charge=None,
                 atoms=None,
                 index=None,
                 pse=None,
                 element=None,
                 **qwargs):
        if element is None:
            element = symbol

        SparseArrayElement.__init__(self, **qwargs)
        # super(SparseArrayElement, self).__init__(**qwargs)
        # verify that element is given (as string, ChemicalElement object or nucleus number
        if pse is None:
            pse = PeriodicTable()

        if element is None or element == "X":
            if "Z" in qwargs:
                el_symbol = pse.atomic_number_to_abbreviation(qwargs["Z"])
                self._lists["element"] = pse.element(el_symbol)
        else:
            if isinstance(element, string_types):
                el_symbol = element
                self._lists["element"] = pse.element(el_symbol)
            elif isinstance(element, str):
                el_symbol = element
                self._lists["element"] = pse.element(el_symbol)
            elif isinstance(element, ChemicalElement):
                self._lists["element"] = element
            else:
                raise ValueError("Unknown element type")

        # KeyError handling required for user defined elements
        try:
            ASEAtom.__init__(self,
                             symbol=symbol,
                             position=position,
                             tag=tag,
                             momentum=momentum,
                             mass=mass,
                             magmom=magmom,
                             charge=charge,
                             atoms=atoms,
                             index=index)
        except KeyError:
            symbol = pse.Parent[symbol]
            ASEAtom.__init__(self,
                             symbol=symbol,
                             position=position,
                             tag=tag,
                             momentum=momentum,
                             mass=mass,
                             magmom=magmom,
                             charge=charge,
                             atoms=atoms,
                             index=index)

        # ASE compatibility for tags
        for key, val in qwargs.items():
            self.data[key] = val
Esempio n. 2
0
 def __init__(self, position, charge):
     Atom.__init__(self, position=position, charge=charge)
Esempio n. 3
0
 def __init__(self, position, charge):
     Atom.__init__(self, position=position, charge=charge)