MultisliceTransform#

class abtem.multislice.MultisliceTransform(potential, detectors=None, conjugate=False, transpose=False, multislice_func=None, **multislice_func_kwargs)[source]#

Bases: ArrayObjectTransform

Transformation applying the multislice algorithm to wave functions, producing new wave functions or measurements.

Parameters:
  • potential (BasePotential) – A potential as BasePotential object.

  • detectors ((list of) BaseDetector, optional) – A detector or a list of detectors defining how the wave functions should be converted to measurements after running the multislice algorithm.

  • conjugate (bool, optional) – If True, use the complex conjugate of the transmission function (default is False).

  • transpose (bool, optional) – If True, reverse the order of propagation and transmission (default is False).

__init__(potential, detectors=None, conjugate=False, transpose=False, multislice_func=None, **multislice_func_kwargs)[source]#

Methods

__init__(potential[, detectors, conjugate, ...])

apply(array_object)

Apply the transform to the given waves.

copy()

Make a copy.

ensemble_blocks([chunks])

Split the ensemble into an array of smaller ensembles.

generate_blocks([chunks])

Generate chunks of the ensemble.

select_block(index, chunks)

Select a block from the ensemble.

Attributes

axes_metadata

List of AxisMetadata.

base_axes_metadata

List of AxisMetadata of the base axes.

base_shape

Shape of the base axes.

conjugate

Use the complex conjugate of the transmission function.

detectors

List of detectors defining how the wave functions should be converted to measurements.

ensemble_axes_metadata

Axes metadata describing the ensemble axes added to the waves when applying the transform.

ensemble_shape

The shape of the ensemble axes added to the waves when applying the transform.

metadata

Metadata added to the waves when applying the transform.

multislice_func

potential

Electrostatic potential for each multislice slice.

shape

Shape of the ensemble.

transpose

Reverse the order of propagation and transmission.

apply(array_object)#

Apply the transform to the given waves.

Parameters:

array_object (ArrayObject) – The array object to transform.

Returns:

transformed_array_object

Return type:

ArrayObject

property axes_metadata: AxesMetadataList#

List of AxisMetadata.

property base_axes_metadata: list[AxisMetadata]#

List of AxisMetadata of the base axes.

property base_shape: tuple[int, ...]#

Shape of the base axes.

property conjugate: bool#

Use the complex conjugate of the transmission function.

copy()#

Make a copy.

property detectors: list[BaseDetector]#

List of detectors defining how the wave functions should be converted to measurements.

property ensemble_axes_metadata#

Axes metadata describing the ensemble axes added to the waves when applying the transform.

ensemble_blocks(chunks=None)#

Split the ensemble into an array of smaller ensembles.

Parameters:

chunks (iterable of tuples) – Block sizes along each dimension.

Return type:

Array

property ensemble_shape#

The shape of the ensemble axes added to the waves when applying the transform.

generate_blocks(chunks=1)#

Generate chunks of the ensemble.

Parameters:

chunks (iterable of tuples) – Block sizes along each dimension.

property metadata: dict#

Metadata added to the waves when applying the transform.

property potential: BasePotential#

Electrostatic potential for each multislice slice.

select_block(index, chunks)#

Select a block from the ensemble.

Parameters:
  • index (tuple of ints) – Index of selected block.

  • chunks (iterable of tuples) – Block sizes along each dimension.

property shape#

Shape of the ensemble.

property transpose: bool#

Reverse the order of propagation and transmission.