mr2.operators.models.BMC.SliceSelectiveRFBlock

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

Bases: BMCBlock

Piecewise RF block with an effective image-space slice profile.

__init__(rf_amplitude: Tensor, slice_profile: SliceProfileBase, positions: SpatialDimension[Tensor], rf_phase: Tensor | float = 0.0, rf_frequency: Tensor | float = 0.0, dt: Tensor | float = 0.0) None[source]

Initialize the block.

Parameters:
  • rf_amplitude (Tensor) – RF amplitude. Shape (time, ...).

  • slice_profile (SliceProfileBase) – Slice profile evaluated at positions.z to scale excitation across isochromats.

  • positions (SpatialDimension[Tensor]) – Isochromat positions in meters for (z, y, x).

  • rf_phase (Tensor | float, default: 0.0) – RF phase in rad. Shape (time, ...), (1, ...) or scalar.

  • rf_frequency (Tensor | float, default: 0.0) – RF frequency in Hz. Shape (time, ...), (1, ...) or scalar.

  • dt (Tensor | float, default: 0.0) – Sample duration in seconds. Shape (time, ...), (1, ...) or scalar.

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) tuple[Tensor, tuple[Tensor, ...]][source]

Apply the block.