3D Discrete EPG Model#
- class sycomore.epg.Discrete3D#
Discrete EPG in which the gradients may be specified in three dimensions.
- __init__(*args, **kwargs)#
Overloaded function.
__init__(self: sycomore._sycomore.epg.Discrete3D, species: sycomore._sycomore.Species, initial_magnetization: numpy.ndarray[numpy.float64] = array([0., 0., 1.]), bin_width: sycomore._sycomore.Quantity = 1 [ L^-1 ]) -> None
__init__(self: sycomore._sycomore.epg.Discrete3D, 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
__init__(self: sycomore._sycomore.epg.Discrete3D, 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.
- apply_time_interval(self: sycomore._sycomore.epg.Discrete3D, duration: sycomore._sycomore.Quantity, gradient: numpy.ndarray[sycomore._sycomore.Quantity] = array([0 [ L^-1 M T^-2 I^-1 ], 0 [ L^-1 M T^-2 I^-1 ],
0 [ L^-1 M T^-2 I^-1 ]], dtype=object)) -> None
Apply a time interval, i.e. relaxation, diffusion, gradient, and off-resonance effects. States with a population lower than threshold will be removed.
apply_time_interval(self: sycomore._sycomore.epg.Discrete3D, 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.Discrete3D, duration: sycomore._sycomore.Quantity, gradient: numpy.ndarray[sycomore._sycomore.Quantity]) None #
Simulate diffusion during given duration with given gradient amplitude.
- property elapsed#
- property orders#
Orders of the model.
- shift(self: sycomore._sycomore.epg.Discrete3D, duration: sycomore._sycomore.Quantity, gradient: numpy.ndarray[sycomore._sycomore.Quantity]) None #
Apply a gradient; in discrete EPG, this shifts all orders by specified value.
- state(*args, **kwargs)#
Overloaded function.
state(self: sycomore._sycomore.epg.Discrete3D, bin: int) -> numpy.ndarray[numpy.complex128]
Magnetization at a given state, expressed by its index
state(self: sycomore._sycomore.epg.Discrete3D, order: numpy.ndarray[sycomore._sycomore.Quantity]) -> numpy.ndarray[numpy.complex128]
Access a given state of the model