mr2.operators.models.BMC.SpoilBlock

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

Bases: DelayBlock

Perfect spoiling with non-zero duration.

__init__(duration: Tensor | float) None[source]

Initialize the block.

Parameters:

duration (Tensor | float) – Duration in seconds.

property duration: Tensor[source]

Duration of the block.

__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, *, zero_matrix: Tensor | None = None, zero_c: Tensor | None = None) tuple[Tensor, tuple[Tensor, ...]][source]

Apply the block.

Parameters:
  • parameters (Parameters) – Simulation parameters.

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

  • zero_matrix (Tensor | None, default: None) – Cached no-RF system matrix for the current sequence execution, if available.

  • zero_c (Tensor | None, default: None) – Cached no-RF recovery vector for the current sequence execution, if available.

Returns:

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