Regular EPG Model#

class sycomore.epg.Regular#

Regular EPG model, where the gradient dephasing is assumed to be identical during each time interval. In this model, the orders of the model are consecutive positive integers starting at 0.

__init__(*args, **kwargs)#

Overloaded function.

  1. __init__(self: sycomore._sycomore.epg.Regular, species: sycomore._sycomore.Species, initial_magnetization: numpy.ndarray[numpy.float64] = array([0., 0., 1.]), initial_size: int = 100, unit_dephasing: sycomore._sycomore.Quantity = 0 [ L^-1 ], gradient_tolerance: float = 1e-05) -> None

  2. __init__(self: sycomore._sycomore.epg.Regular, 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 ], initial_size: int = 100, unit_dephasing: sycomore._sycomore.Quantity = 0 [ L^-1 ], gradient_tolerance: float = 1e-05) -> None

  3. __init__(self: sycomore._sycomore.epg.Regular, 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, initial_size: int = 100, unit_dephasing: sycomore._sycomore.Quantity = 0 [ L^-1 ], gradient_tolerance: float = 1e-05) -> None

apply_time_interval(*args, **kwargs)#

Overloaded function.

  1. apply_time_interval(self: sycomore._sycomore.epg.Regular, 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.

  1. apply_time_interval(self: sycomore._sycomore.epg.Regular, time_interval: sycomore._sycomore.TimeInterval) -> None

Apply a time interval, i.e. relaxation, diffusion, gradient, and off-resonance effects.

diffusion(self: sycomore._sycomore.epg.Regular, duration: sycomore._sycomore.Quantity, gradient: sycomore._sycomore.Quantity) None#

Simulate diffusion during given duration with given gradient 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(*args, **kwargs)#

Overloaded function.

  1. shift(self: sycomore._sycomore.epg.Regular) -> None

Apply a unit gradient; in regular EPG, this shifts all orders by 1.

  1. shift(self: sycomore._sycomore.epg.Regular, duration: sycomore._sycomore.Quantity, gradient: sycomore._sycomore.Quantity) -> None

Apply an arbitrary gradient; in regular EPG, this shifts all orders by an integer number corresponding to a multiple of the unit gradient.

state(*args, **kwargs)#

Overloaded function.

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

Magnetization at a given state, expressed by its index.

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

Magnetization at a given state, expressed by its order.

property unit_dephasing#

Unit gradient dephasing of the model.

property velocity#

Bulk velocity