Esempio n. 1
0
    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")
Esempio n. 2
0
 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")
Esempio n. 3
0
 def __setstate__(self, state):
     self.interface, self.repeat, self.name, self.stack = state
     self._thickness = Function(self._calc_thickness,
                                name="repeat thickness")
Esempio n. 4
0
 def __setstate__(self, state):
     self.interface, self._layers, self.name = state
     self._thickness = Function(self._calc_thickness,
                                name="stack thickness")