Low-level EPG Model#

Defined in sycomore/epg/Model.h

class Model#

Model a single- or two-pool system expressed in EPG formalism.

Public Types

enum Kind#

Kind of the model, determines the number of pools.

Values:

enumerator SinglePool#
enumerator Exchange#
enumerator MagnetizationTransfer#
using Population = Buffer<Complex>#

Populations of the states.

Public Functions

Model(Species const &species, Vector3R const &M0, std::size_t initial_size)#

Create a single-pool model.

Model(Species const &species_a, Species const &species_b, Vector3R const &M0_a, Vector3R const &M0_b, Quantity const &k_a, Quantity const &delta_b, std::size_t initial_size)#

Create an exchange model.

Model(Species const &species_a, Quantity const &R1_b_or_T1_b, Vector3R const &M0_a, Vector3R const &M0_b, Quantity const &k_a, std::size_t initial_size)#

Create a magnetization transfer model.

Model(Model const&) = default#

Default copy constructor.

Model(Model&&) = default#

Default move constructor.

Model &operator=(Model const &other)#

Default copy assignment.

Model &operator=(Model &&other)#

Default move assignment.

Public Members

Kind const kind#

Kind of the model, determines the number of pools.

std::size_t const pools#

Number of pools.

std::vector<Species> species#

Species.

std::vector<Real> M0#

Equilibrium magnetization on the z axis.

std::vector<Quantity> k#

Exchange rates between the pools, in Hz.

Quantity delta_b#

Frequency offset of pool b w.r.t. to pool al.

std::vector<Population> F#

EPG F states for each pool.

std::vector<Population> F_star#

EPG F* states for each pool.

std::vector<Population> Z#

EPG Z states for each pool.