mr2.operators.models.BMC.BMCSequence

class mr2.operators.models.BMC.BMCSequence[source]

Bases: ModuleList, BMCBlock

Sequence of Bloch-McConnell blocks.

__init__(blocks: Sequence[BMCBlock] = ()) None[source]

Initialize the sequence.

Parameters:

blocks (Sequence[BMCBlock], default: ()) – Sequence of Bloch-McConnell blocks.

property duration: Tensor[source]

Duration of the sequence.

__call__(parameters: Parameters, state: Tensor | None = None, *, zero_matrix: Tensor | None = None, zero_c: Tensor | None = None) tuple[Tensor, tuple[Tensor, ...]][source]

Apply the block.

forward(parameters: Parameters, state: Tensor) tuple[Tensor, tuple[Tensor, ...]][source]

Apply the sequence of blocks.

Parameters:
  • parameters (Parameters) – Simulation parameters.

  • state (Tensor) – State tensor. Shape (..., isochromats, pools, 3).

Returns:

  • state – State tensor. Shape (..., pools, 3).

  • outputs – List of output tensors.

append(module: Module) Self

Append a given module to the end of the list.

Parameters:

module (nn.Module) – module to append

extend(modules: Iterable[Module]) Self

Append modules from a Python iterable to the end of the list.

Parameters:

modules (iterable) – iterable of modules to append

insert(index: int, module: Module) None

Insert a given module before a given index in the list.

Parameters:
  • index (int) – index to insert.

  • module (nn.Module) – module to insert