def __init__(self, symbol='Ni', charge='2+', symmetry='Oh', experiment='XAS', edge='L2,3 (2p)', hamiltonian=True, parent=None):
    super().__init__(parent=parent, name='Calculation')
    self._ancestor = self
    self._symbols = list()
    for subshell in CALCULATIONS.keys():
        self._symbols.extend(CALCULATIONS[subshell]['symbols'])
    self._symbols = tuple(sorted(self._symbols))
    if (symbol not in self.symbols):
        symbol = self._symbols[0]
    subshell = None
    for subshell in CALCULATIONS.keys():
        if (symbol in CALCULATIONS[subshell]['symbols']):
            break
    symbols = CALCULATIONS[subshell]['symbols']
    experiments = CALCULATIONS[subshell]['experiments']
    self._charges = tuple(symbols[symbol]['charges'])
    if (charge not in self._charges):
        charge = self._charges[0]
    self._experiments = tuple(experiments)
    if (experiment not in self._experiments):
        experiment = self._experiments[0]
    self._symmetries = tuple(experiments[experiment]['symmetries'])
    if (symmetry not in self._symmetries):
        symmetry = self._symmetries[0]
    self._edges = tuple(experiments[experiment]['edges'])
    if (edge not in self._edges):
        edge = self._edges[0]
    self.element = Element(parent=self, value=f'{symbol}{charge}')
    self.symmetry = Symmetry(parent=self, value=symmetry)
    self.experiment = Experiment(parent=self, value=experiment)
    self.edge = Edge(parent=self, value=edge)
    self.temperature = Temperature(parent=self, value=10)
    self.magneticField = MagneticField(parent=self, value=0)
    self.axes = Axes(parent=self)
    self.spectra = Spectra(parent=self)
    if hamiltonian:
        self.hamiltonian = Hamiltonian(parent=self)
    subshells = ''.join(self.edge.coreSubshells)
    element = self.element.value
    symmetry = self.symmetry.value
    experiment = self.experiment.value
    self._value = f'{element}_{symmetry}_{experiment}_{subshells}'
    self.runner = Runner()
    self.runner.successful.connect(self.process)
def __init__(self, symbol='Ni', charge='2+', symmetry='Oh', experiment='XAS', edge='L2,3 (2p)', hamiltonian=True, parent=None):
    super().__init__(parent=parent, name='Calculation')
    self._ancestor = self
    self._symbols = list()
    for subshell in CALCULATIONS.keys():
        self._symbols.extend(CALCULATIONS[subshell]['symbols'])
    self._symbols = tuple(sorted(self._symbols))
    if (symbol not in self.symbols):
        symbol = self._symbols[0]
    subshell = None
    for subshell in CALCULATIONS.keys():
        if (symbol in CALCULATIONS[subshell]['symbols']):
            break
    symbols = CALCULATIONS[subshell]['symbols']
    experiments = CALCULATIONS[subshell]['experiments']
    self._charges = tuple(symbols[symbol]['charges'])
    if (charge not in self._charges):
        charge = self._charges[0]
    self._experiments = tuple(experiments)
    if (experiment not in self._experiments):
        experiment = self._experiments[0]
    self._symmetries = tuple(experiments[experiment]['symmetries'])
    if (symmetry not in self._symmetries):
        symmetry = self._symmetries[0]
    self._edges = tuple(experiments[experiment]['edges'])
    if (edge not in self._edges):
        edge = self._edges[0]
    self.element = Element(parent=self, value=f'{symbol}{charge}')
    self.symmetry = Symmetry(parent=self, value=symmetry)
    self.experiment = Experiment(parent=self, value=experiment)
    self.edge = Edge(parent=self, value=edge)
    self.temperature = Temperature(parent=self, value=10)
    self.magneticField = MagneticField(parent=self, value=0)
    self.axes = Axes(parent=self)
    self.spectra = Spectra(parent=self)
    if hamiltonian:
        self.hamiltonian = Hamiltonian(parent=self)
    subshells = .join(self.edge.coreSubshells)
    element = self.element.value
    symmetry = self.symmetry.value
    experiment = self.experiment.value
    self._value = f'{element}_{symmetry}_{experiment}_{subshells}'
    self.runner = Runner()
    self.runner.successful.connect(self.process)