def __init__(self, base=None, name="Stack"): self.name = name self.interface = None self._layers = [] if base is not None: self.add(base) # TODO: can we make this a class variable? self._thickness = Function(self._calc_thickness, name="stack thickness")
def __init__(self, stack, repeat=1, interface=None, name=None, magnetism=None): if name is None: name = "multilayer" if interface is None: interface = stack[-1].interface.value self.magnetism = magnetism self.name = name self.repeat = IntPar(repeat, limits=(0, inf), name=name + " repeats") self.stack = stack self.interface = Par.default(interface, limits=(0, inf), name=name+" top interface") # Thickness is computed; don't make it a simple attribute self._thickness = Function(self._calc_thickness, name="repeat thickness")
def __setstate__(self, state): self.interface, self.repeat, self.name, self.stack = state self._thickness = Function(self._calc_thickness, name="repeat thickness")
def __setstate__(self, state): self.interface, self._layers, self.name = state self._thickness = Function(self._calc_thickness, name="stack thickness")