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=None, name='EasyMultilayer', interface=None, type='Multi-layer', populate_if_none=True)[source]#

Constructor.

Parameters:
  • layers (Union[Layer, list[Layer], LayerCollection, None]) – 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’

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

classmethod from_dict(data)[source]#

Create a Multilayer from a dictionary.

Parameters:

data (dict) – dictionary of the Multilayer

Return type:

Multilayer

Returns:

Multilayer

user_data: dict#