IRbSSFPSimulator

IRbSSFPSimulator#

class torchsim.simulators.IRbSSFPSimulator(*args, **kwargs)[source]#

Bases: Simulator

Recovery from an inversion under a balanced SSFP train.

After an alpha/2 preparation the balanced train drives the magnetization along one exponential towards the bSSFP steady state, at a rate that mixes R1 and R2 by the flip angle [1], so the recovery curve yields T1, T2 and the proton density together. The signal is read at a series of times after the inversion; inv_efficiency scales the magnetization the recovery starts from.

References

Examples

import torch
from torchsim.simulators import IRbSSFPSimulator

sequence = IRbSSFPSimulator(flip=45.0, TI=4.5 * torch.arange(1000))
signal = sequence.simulate(T1=1000.0, T2=(50.0, 100.0))
print(signal.shape)
torch.Size([2, 1000])

Methods

bind

This simulator with more fixed on it, values or settings alike.

describe

Return the description this protocol plays.

evaluate

Evaluate the closed form, no state machine and no description.

from_description

Return a simulator over a stream someone else assembled.

from_pulseq

Return a simulator over one repetition of a Pulseq sequence.

jacobian

Return the signal and its derivative with respect to diff.

layout

Return the operators of one repetition, in the order they play.

played

Return the protocol as it will be laid out.

repetition_s

Return how long one repetition lasts, given what the layout played.

simulate

Return the recorded signal.

evaluate(properties, **sequence)[source]#

Evaluate the closed form, no state machine and no description.