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 ()
 Constructor.
 
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

Worldm_world
 Simulation world.
 
CoilArraym_rx_coil_array
 Receive coil array.
 
CoilArraym_tx_coil_array
 Transmit coil array.
 
ConcatSequencem_concat_sequence
 Top node of the sequence tree for simulation.
 
Samplem_sample
 Sample.
 
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

Parameters
next_tStopNext time stop
Returns
Result

Implemented in Bloch_McConnell_CV_Model, and Bloch_CV_Model.

+ Here is the caller graph for this function:

void Model::DumpRestartInfo ( long  lSpin)
private

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.

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

+ Here is the caller graph for this function:

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

Run through the sequence tree and execute Calculate for each atom

Parameters
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 
)
static

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)
inlineprivate

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 --