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.
__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
__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
__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.
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.
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.
shift(self: sycomore._sycomore.epg.Regular) -> None
Apply a unit gradient; in regular EPG, this shifts all orders by 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.
state(self: sycomore._sycomore.epg.Regular, bin: int) -> numpy.ndarray[numpy.complex128]
Magnetization at a given state, expressed by its index.
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