Discrete EPG Model#
Defined in sycomore/epg/Discrete.h
-
class Discrete : public sycomore::epg::Base#
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.
Public Functions
-
Discrete(Species const &species, Vector3R const &initial_magnetization = {0, 0, 1}, Quantity bin_width = 1 * units::rad / units::m)#
Create a single-pool model.
-
Discrete(Species const &species_a, Species const &species_b, Vector3R const &M0_a, Vector3R const &M0_b, Quantity const &k_a, Quantity const &delta_b = 0 * units::Hz, Quantity bin_width = 1 * units::rad / units::m)#
Create an exchange model.
-
Discrete(Species const &species_a, Quantity const &R1_b_or_T1_b, Vector3R const &M0_a, Vector3R const &M0_b, Quantity const &k_a, Quantity bin_width = 1 * units::rad / units::m)#
Create an MT model.
-
virtual ~Discrete() = default#
Default destructor.
-
virtual std::size_t size() const#
Return the number of states of the model.
-
void apply_time_interval(Quantity const &duration, Quantity const &gradient = 0 * units::T / units::m)#
Apply a time interval, i.e. relaxation, diffusion, gradient, and off-resonance effects.
-
void apply_time_interval(TimeInterval const &interval)#
Apply a time interval, i.e. relaxation, diffusion, gradient, and off-resonance effects.
-
void shift(Quantity const &duration, Quantity const &gradient)#
Apply a gradient; in discrete EPG, this shifts all orders by specified value.
-
void diffusion(Quantity const &duration, Quantity const &gradient)#
Simulate diffusion during given duration with given gradient amplitude.
-
Discrete(Species const &species, Vector3R const &initial_magnetization = {0, 0, 1}, Quantity bin_width = 1 * units::rad / units::m)#