Specific absorption rate#
TL;DR
check_sar()computes time-averaged local and global SAR in W/kg from a virtual-observation-point model and compares them withlocal_limitandglobal_limit, by default 10 W/kg and 3.2 W/kg, the IEC 60601-2-33 normal-mode head values. The check does not use the gradient system limits.Channel \(c\) is driven with \(v_c(t) = d_c\,s_c\,b_c(t)\), the RF waveform in Hz scaled by
drive_per_hzand the block’s RF shim. Local SAR in a window \(W\) is the largest time-averaged quadratic form over the VOPs, \(\max_k \mathrm{SAR}_k(W)\).The averaging windows are the repetitions detected from the block definitions, reported as
tr_sizeblocks, or the whole sequence when its blocks do not divide into repetitions. The check does not aggregate the per-window values over a regulatory averaging interval such as the 6-minute interval of IEC 60601-2-33.With
reference, the report addssar_ratioandenergy_ratio. The scale ofdrive_per_hzand of the VOPs cancels in both ratios; relative channel gains do not.A
Trueresult states only that the computed window-averaged SAR values do not exceed the supplied limits under the stated VOP model and drive calibration.example_vops()is a synthetic model for demonstration only.
RF transmission deposits energy in tissue. The specific absorption rate (SAR,
W/kg) is regulated as a global value over the exposed mass and a local
value over 10 g of tissue, each averaged over a stated time and bounded by
IEC 60601-2-33 according to the operating mode.
check_sar() computes time-averaged local and global
SAR from a virtual-observation-point model and compares them with the
local_limit and global_limit arguments. The check does not use the
gradient system limits.
Virtual observation points#
For a transmit array with \(N_c\) channels driven by a phasor vector \(\mathbf{v}\), local SAR at position \(\mathbf{r}\) is a Hermitian quadratic form,
with one matrix \(Q\) per position from an electromagnetic simulation on a body model. Virtual observation points (VOPs) compress these matrices into a small set \(\{Q_k\}\) whose largest value bounds the largest value over the body model.[1]
VopModel holds the \((N, N_c, N_c)\) VOP stack, in
W/kg per unit channel drive squared, and an optional global matrix;
read_vops() reads it from a .mat or .npz file.
example_vops() returns a synthetic eight-channel model
of a loop array around a uniform cylinder, with no tissue, coil coupling or
conservative field, for demonstration only.
Channel drive and time average#
An RF event states its amplitude in Hz of \(B_1^+\). The conversion to channel
drive is a property of the transmit chain and loading, and is supplied as
drive_per_hz, one value or one per channel, in the drive unit of the VOPs.
Channel \(c\) is driven with
where \(d_c\) is drive_per_hz, \(b_c\) the RF waveform in Hz resampled every
microsecond as calc_rf_power() does, and \(s_c\) the block’s
RF shim, or default_shim for a single-channel pulse without one. A
single-channel pulse is played as the same waveform on every channel. For each
averaging window \(W\) of duration \(T_W\),
and global SAR is the same integral with the global matrix.
Averaging windows#
check_sar evaluates RF energy over the repetitions detected from the
sequence’s block definitions, reported as tr_size blocks: consecutive windows
of tr_size blocks from the first block, or the whole sequence as one window
when its blocks do not divide into repetitions. A TRsize definition the
sequence records is used when the blocks repeat with it, and the detected size
is recorded otherwise.
The result is True when every window’s local SAR is at most local_limit
and, with a global matrix, every window’s global SAR is at most global_limit.
The defaults, 10 W/kg and 3.2 W/kg, are the IEC 60601-2-33 normal-mode head
values.
The report states every window’s first and last block, duration, local SAR, VOP index and global SAR. These per-window quantities may subsequently be aggregated over a regulatory averaging interval, such as the 6-minute interval of IEC 60601-2-33; the check itself does not perform that aggregation.
Comparison with a reference sequence#
With reference, a second sequence evaluated under the same model, drive and
default shim, or the report of an earlier call, the report adds
as sar_ratio and energy_ratio, with the reference values taken from the
reference’s window of largest local SAR. The scale of drive_per_hz and of the
VOPs cancels in both ratios; relative channel gains do not. For a reference
lasting its minimum repetition time, \(r_{\mathrm{E}}\) scales that repetition
time to the energy per repetition of the checked sequence.
Limitations#
The estimate covers the RF energy of the sequence’s own waveforms in a stated
VOP model and drive calibration. It does not cover RF coil heating, gradient
heating, the scanner’s predownload assessment or transmit monitoring, and it
makes no statement about a particular subject. A True result states only that
the computed window-averaged SAR values do not exceed the supplied limits under
that model and calibration.
See also#
check_sar(),read_vops()andexample_vops()— the calls.calc_rf_power()andcalc_rf_power()— RF power in Pulseq’s Hz units.Constraint checks — running the check over a sequence and reading its report.