JEMRIS  2.8.1
open-source MRI simulations
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
Model Class Referenceabstract

Base class for MR model solver. More...

#include <Model.h>

+ Inheritance diagram for Model:
+ Collaboration diagram for Model:

Public Member Functions

 Model ()
virtual ~Model ()
 Default Destructor.
void Prepare (CoilArray *pRxCoilArray, CoilArray *pTxCoilArray, ConcatSequence *pConcatSequence, Sample *pSample)
 Prepare for simulations. More...
void SetSequence (ConcatSequence *pConcatSequence)
 Set MR sequence.
void Solve ()
 Solve differential equations.
void SetDumpProgress (bool val)

Static Public Member Functions

static void saveEvolution (long index, bool close_files)
 Save time evolution to disk. More...

Protected Member Functions

virtual void InitSolver ()=0
 Initialise solver.
virtual void FreeSolver ()=0
 Free solver.
virtual bool Calculate (double next_tStop)=0
 Calculate specific solution. More...
void RunSequenceTree (double &dTimeShift, long &lIndexShift, Module *module)

Protected Attributes

 Simulation world.
 Receive coil array.
 Transmit coil array.
 Top node of the sequence tree for simulation.
double m_accuracy_factor
 increase accuracy by thid factor in case of numerical problems
bool m_do_dump_progress
 If true, percentage progress during Solve() is written to .jemris_progress.out.

Private Member Functions

void UpdateProcessCounter (const long lSpin)
void DumpRestartInfo (long lSpin)

Private Attributes

bool m_aux

Detailed Description

Base class for MR model solver.

Member Function Documentation

virtual bool Model::Calculate ( double  next_tStop)
protectedpure virtual

Calculate specific solution.

Calculate specific solution in an atomic sequence All setting for the computation are in m_World

next_tStopNext time stop

Implemented in Bloch_McConnell_CV_Model, and Bloch_CV_Model.

+ Here is the caller graph for this function:

void Model::DumpRestartInfo ( long  lSpin)

dumps restart information(serial jemris.)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Model::Prepare ( CoilArray pRxCoilArray,
CoilArray pTxCoilArray,
ConcatSequence pConcatSequence,
Sample pSample 

Prepare for simulations.

pRxCoilArrayCoil array receiving and storing the signal processed.
pTxCoilArrayCoil array transmitting the sequence to be processed.
pConcatSequenceComplete MR sequence.

+ Here is the caller graph for this function:

void Model::RunSequenceTree ( double &  dTimeShift,
long &  lIndexShift,
Module module 

Run through the sequence tree and execute Calculate for each atom

dTimeShiftThe time shift with which this run starts within the sequence time frame
lIndexShiftMore elaborate description here please
moduleThe Atomic sequence simulated in this run

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Model::saveEvolution ( long  index,
bool  close_files 

Save time evolution to disk.

Static function to write the time-evolution of the magnetisation for every spin to binary file.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Model::UpdateProcessCounter ( const long  lSpin)

updates process counter file

+ Here is the caller graph for this function:

The documentation for this class was generated from the following files:

-- last change 17.06.2016 | Tony Stoecker | Imprint --