Discrete EPG Model#

class sycomore.epg.Discrete#

Discrete EPG model, where the gradient dephasing may vary across time intervals. In this model, the orders of the model are stored in bins of user-specified width (hence the term “discrete”), expressed in rad/m.

__init__(*args, **kwargs)#

Overloaded function.

  1. __init__(self: sycomore._sycomore.epg.Discrete, species: sycomore._sycomore.Species, initial_magnetization: numpy.ndarray[numpy.float64] = array([0., 0., 1.]), bin_width: sycomore._sycomore.Quantity = 1 [ L^-1 ]) -> None

  2. __init__(self: sycomore._sycomore.epg.Discrete, species_a: sycomore._sycomore.Species, species_b: sycomore._sycomore.Species, M0_a: numpy.ndarray[numpy.float64], M0_b: numpy.ndarray[numpy.float64], k_a: sycomore._sycomore.Quantity, delta_b: sycomore._sycomore.Quantity = 0 [ T^-1 ], bin_width: sycomore._sycomore.Quantity = 1 [ L^-1 ]) -> None

  3. __init__(self: sycomore._sycomore.epg.Discrete, species_a: sycomore._sycomore.Species, R1_b_or_T1_b: sycomore._sycomore.Quantity, M0_a: numpy.ndarray[numpy.float64], M0_b: numpy.ndarray[numpy.float64], k_a: sycomore._sycomore.Quantity, bin_width: sycomore._sycomore.Quantity = 1 [ L^-1 ]) -> None

apply_time_interval(*args, **kwargs)#

Overloaded function.

  1. apply_time_interval(self: sycomore._sycomore.epg.Discrete, duration: sycomore._sycomore.Quantity, gradient: sycomore._sycomore.Quantity = 0 [ L^-1 M T^-2 I^-1 ]) -> None

Apply a time interval, i.e. relaxation, diffusion, gradient, and off-resonance effects. States with a population lower than threshold will be removed.

  1. apply_time_interval(self: sycomore._sycomore.epg.Discrete, interval: sycomore._sycomore.TimeInterval) -> None

Apply a time interval, i.e. relaxation, diffusion, gradient, and off-resonance effects. States with a population lower than threshold will be removed.

property bin_width#
diffusion(self: sycomore._sycomore.epg.Discrete, duration: sycomore._sycomore.Quantity, gradient: sycomore._sycomore.Quantity) None#

amplitude.

property orders#

The sequence of orders currently stored by the model, in the same order as the states member. This attribute is read-only.

shift(self: sycomore._sycomore.epg.Discrete, duration: sycomore._sycomore.Quantity, gradient: sycomore._sycomore.Quantity) None#

Apply a gradient; in discrete EPG, this shifts all orders byspecified value.

state(*args, **kwargs)#

Overloaded function.

  1. state(self: sycomore._sycomore.epg.Discrete, bin: int) -> numpy.ndarray[numpy.complex128]

Magnetization at a given state, expressed by its index

  1. state(self: sycomore._sycomore.epg.Discrete, order: sycomore._sycomore.Quantity) -> numpy.ndarray[numpy.complex128]

Magnetization at a given state, expressed by its order.