Base class of all EPG Models#
Defined in sycomore/epg/Base.h
-
class Base#
Base class for all EPG models.
Subclassed by sycomore::epg::Discrete, sycomore::epg::Discrete3D, sycomore::epg::Regular
Public Functions
-
Base(Species const &species, Vector3R const &initial_magnetization, unsigned int initial_size)#
Create a single-pool model.
-
Base(Species const &species_a, Species const &species_b, Vector3R const &M0_a, Vector3R const &M0_b, Quantity const &k_a, Quantity const &delta_b, unsigned int initial_size)#
Create an exchange model.
-
Base(Species const &species_a, Quantity const &R1_b_or_T1_b, Vector3R const &M0_a, Vector3R const &M0_b, Quantity const &k_a, unsigned int initial_size)#
Create an MT model.
-
virtual ~Base() = default#
Default destructor.
-
std::size_t pools() const#
Return the number of pools of the model, set at creation.
-
Real const &M0(std::size_t pool = 0) const#
Return the equilibrium magnetization of one of the pools.
-
void set_M0(std::size_t pool, Real const &M0)#
Set the equilibrium magnetization of one of the pools.
-
virtual std::size_t size() const = 0#
Return the number of states of a pool.
-
ArrayC state(std::size_t order) const#
Return a given state of the model, as a concatenation of (F, F*, Z) for each pool.
-
ArrayC states() const#
Return all states in the model, as \(\tilde{F}\), \(\tilde{F}^*\), and \(\tilde{Z}\) for each order and each pool.
-
void apply_pulse(Quantity const &angle, Quantity const &phase = 0 * units::rad)#
Apply an RF hard pulse to a single-pool model.
-
void apply_pulse(Quantity const &angle_a, Quantity const &phase_a, Quantity const &angle_b, Quantity const &phase_b)#
Apply an RF hard pulse to an two-pools exchange model.
-
Base(Species const &species, Vector3R const &initial_magnetization, unsigned int initial_size)#