class EasyReflectometry.sample.assemblies.multilayer.Multilayer[source]#

Bases: BaseAssembly

A multi layer is build from a single or a list of Layer or LayerCollection. The multi layer will arrange the layers as slabs, allowing the reflectometry to be determined from them. The front layer is where the neutron beam starts in, it has an index of 0.

More information about the usage of this assembly is available in the multilayer documentation

__init__(layers, name='EasyMultilayer', interface=None, type='Multi-layer')[source]#

Constructor.

Parameters:
  • layers (LayerCollection | Layer | list[Layer]) – The layers that make up the multi-layer.

  • name (str) – Name for multi layer, defaults to ‘EasyMultilayer’.

  • interface – Calculator interface, defaults to None.

  • type (str) – Type of the constructed instance, defaults to ‘Multi-layer’

classmethod default(interface=None)[source]#

Default instance of a multi-layer.

Parameters:

interface – Calculator interface, defaults to None.

Return type:

Multilayer

classmethod from_pars(layers, name='EasyMultilayer', interface=None)[source]#

Instance of a multi-layer where the parameters are known.

Parameters:
  • layers (LayerCollection) – The layers in the multi-layer.

  • name (str) – Name of the layer, defaults to ‘EasyMultilayer’.

  • interface – Calculator interface, defaults to None.

Return type:

Multilayer

add_layer(*layers)[source]#

Add a layer to the multi layer.

Parameters:

layers (tuple[Layer]) – Layers to add to the multi layer.

Return type:

None

duplicate_layer(idx)[source]#

Duplicate a given layer.

Parameters:

idx (int) – index of layer to duplicate.

Return type:

None

remove_layer(idx)[source]#

Remove a layer from the item.

Parameters:

idx (int) – index of layer to remove

Return type:

None

user_data: dict#
layers: LayerCollection#

Layers in the assembly.