Gradient continuity#
TL;DR
Adjacent Pulseq blocks have no implicit gap, so the change between the physical-axis endpoint of one block and the initial amplitude of the next must satisfy the one-raster slew criterion \(|\Delta G| \leq \mathtt{max\_slew}\cdot\mathtt{grad\_raster\_time}\).
check_grad_continuity()evaluates every boundary and reports the 1-based block index, physical axis, endpoint amplitudes and implied slew rate.The final physical gradient amplitude must be zero; otherwise
ends_at_zeroand the overall verdict are false.Block rotations are applied before the comparison, so identical logical endpoint vectors under different rotations can be discontinuous on the physical axes. Returning every interleaf to zero avoids this dependence.
Adjacent Pulseq blocks have no implicit gap. A change between the physical-axis endpoint of one block and the initial amplitude of the next must satisfy the one-raster slew criterion
A boundary step below the one-raster limit passes; a larger step is reported. The dashed line marks the block boundary and the red arrow marks \(\Delta G\).#
check_grad_continuity() evaluates every boundary and
reports the 1-based block index, physical axis, endpoint amplitudes, and implied
slew rate. The final physical gradient amplitude must also be zero; otherwise
ends_at_zero and the overall verdict are false.
Block rotations are applied before the comparison. Identical logical endpoint vectors under different rotations can therefore be discontinuous on the physical axes. Returning every interleaf to zero avoids this dependence.
See also#
check_grad_continuity()— check and report fields.Slew rate — within-block slew-rate evaluation.