JEMRIS  2.8.1
open-source MRI simulations
List of all members | Public Member Functions | Protected Member Functions | Private Attributes
AtomicSequence Class Reference

Atomic sequence prototype. More...

#include <AtomicSequence.h>

+ Inheritance diagram for AtomicSequence:
+ Collaboration diagram for AtomicSequence:

Public Member Functions

 AtomicSequence ()
 Default constructor.
 
 AtomicSequence (const AtomicSequence &)
 Copy constructor.
 
virtual ~AtomicSequence ()
 Default destructor.
 
AtomicSequenceClone () const
 See Module::clone.
 
virtual bool Prepare (const PrepareMode mode)
 Prepare the sequence. More...
 
PulseGetPulse (int number)
 Get the pulse given by number. More...
 
int GetNumberOfPulses ()
 Get the number of nested pulses. More...
 
virtual void GetValue (double *dAllVal, double const time)
 See Module::GetValue.
 
double GetDuration ()
 
void Rotation (double *Grot)
 See Module::GetValue. More...
 
bool HasNonLinGrad ()
 Check for nonlinear gradients in this atom. More...
 
void SetNonLinGrad (bool val)
 Marh this atom, if nonlinear gradients are present. More...
 
void CollectTPOIs ()
 Collect the TPOIs of child pulses. More...
 
virtual void CollectSeqData (NDData< double > &seqdata, double &t, long &offset)
 Collect sequence data (for plotting the sequence diagram)
 
virtual void CollectSeqData (OutputSequenceData *seqdata)
 Recursively collect sequence data (for running on the scanner)
 
virtual long GetNumOfADCs ()
 Get Number of ADCs in this atom. More...
 
void GetValueLingeringEddyCurrents (double *dAllVal, double const time)
 GetValue of lingering eddy currents.
 
void PrepareEddyCurrents ()
 prepare lingering eddy currents in this atom for GetValue in next atom
 
void UpdateEddyCurrents ()
 update lingering eddy currents which are still alive after this atom
 
bool HasEddyCurrents ()
 true, if this atom contains eddy currents More...
 
void SetEddyCurrents (bool val)
 true, if this atom contains eddy currents More...
 
- Public Member Functions inherited from Sequence
 Sequence ()
 Default constructor.
 
virtual ~Sequence ()
 Default destructor.
 
 Sequence (const Sequence &)
 Default copy constructor.
 
void SeqDiag (const string &fname="seq.h5")
 
void OutputSeqData (map< string, string > &scanDefinitions, const string &outputDir="", const string &outFile="external.seq")
 
- Public Member Functions inherited from Module
 Module ()
 Constructor. More...
 
virtual ~Module ()
 Destructor. More...
 
 Module (const Module &)
 Copy constructor. More...
 
void Initialize (DOMNode *node)
 Initialize this module. More...
 
ModuleGetParent ()
 Get Parent. More...
 
virtual int GetNumOfTPOIs ()
 Get the Number of TPOIs of this module. More...
 
vector< Module * > GetChildren () const
 Get Children. More...
 
ModuleGetChild (unsigned int position) const
 Get Child. More...
 
int GetNumberOfChildren () const
 Get number of Children. More...
 
bool InsertChild (const string &name)
 Insert Child. More...
 
virtual ModuleGetPrototypeByAttributeValue (string name, string attrib)
 Get a Prototype by value of an attribute. More...
 
bool AddDOMattribute (const string attribute, const string value)
 Add attribute and value to the DOM node of this module. More...
 
void AddAllDOMattributes (bool show_hidden=true)
 
virtual TPOIGetTPOIs ()
 get the TPOIs of this module More...
 
void DumpTree (const string &file="", Module *mod=NULL, int ichild=0, int level=0)
 Dump the sequence tree. More...
 
int GetDepth (int depth=0)
 Return tree depth from this module (including depth of Containers) More...
 
int GetHardwareMode ()
 Return the hardware mode of this module. More...
 
bool WriteStaticXML (const string &xml_file)
 Rewrite XML-tree where all expressions are evaluated (for IDEA) More...
 
bool StaticDOM (DOMDocument *doc, DOMNode *node, bool append=true)
 Create a DOM tree where all expressions are evaluated (for IDEA) More...
 
void SetSeqTree (SequenceTree *pST)
 
SequenceTreeGetSeqTree ()
 
- Public Member Functions inherited from Prototype
 Prototype ()
 Constructor. More...
 
virtual ~Prototype ()
 Default destructor. More...
 
 Prototype (const Prototype &)
 Default copy constructor. More...
 
bool IsPrepared ()
 Check if the Prototype is prepared. More...
 
void SetName (string name)
 Set the name of this module. More...
 
DOMNode * GetNode ()
 Get the DOMNode of this module. More...
 
void SetNode (DOMNode *node)
 Set the DOMNode of this module. More...
 
string GetClassType ()
 Get the class type of this prototype. More...
 
Type GetType ()
 Get the module type of this module. More...
 
string GetDOMattribute (const string attribute)
 Get attribute value from the DOMNode. More...
 
bool HasDOMattribute (const string attribute)
 Check, if attribute exists in DOM node of this module. More...
 
AttributeGetAttribute (string name)
 Get an Attribute. More...
 
void CopyObservers (Attribute *a1, Attribute *a2)
 Copy observers from one attribute to another. More...
 
bool HasAttribute (string name)
 Check if an attribute exist. More...
 
void HideAttribute (string attrib, bool observable=true)
 Hide an attribute. More...
 
string GetName ()
 Get the name of this module. More...
 
bool Observe (Attribute *attrib, string prot_name, string attrib_name, bool verbose)
 Set up the list of observations. More...
 
bool Observe (Attribute *attrib, string prot_name, string attrib_name, string attrib_keyword, bool verbose)
 
template<typename T >
bool Notify (const T &val)
 Notify all observers of an attribute. More...
 
template<typename T >
bool NewState (const T &val)
 Check the state of an attribute. More...
 
vector< double > * GetVector ()
 Each Prototype has a double vector as a private member, which values can be filled through XML and accessed from attributes within the same Prototype. More...
 

Protected Member Functions

virtual string GetInfo ()
 

Private Attributes

vector< Pulse * > m_pulses
 vector of pointers to child pulses
 
bool m_non_lin_grad
 A flag for nonlinear gradients.
 
double m_alpha
 Gradient Rotation matrix: Rotation angle.
 
double m_theta
 Gradient Rotation matrix: polar inclination from z-axis.
 
double m_phi
 Gradient Rotation matrix: azimutal phase measured from x-axis.
 
bool m_eddy
 A flag for eddy currents in this atom.
 

Additional Inherited Members

- Static Public Member Functions inherited from Prototype
static bool ReplaceString (string &str, const string &s1, const string &s2)
 A global sub-string replacer. More...
 
static bool ReplaceSymbolString (string &str, const string &s1, const string &s2)
 A global sub-string replacer which replaces only complete symbol strings.
 
static vector< string > Tokenize (const string &str, const string &delimiters=",")
 A global string tokenizer. More...
 
- Protected Attributes inherited from Sequence
vector< string > m_prep_errors
 Preparation Error Messages of Modules.
 
- Protected Attributes inherited from Module
SequenceTreem_seq_tree
 Reference to the sequence tree.
 
Parametersm_parameters
 Pointer to the sole instance of the Parameters.
 
TPOI m_tpoi
 Time points of interest are stored the referred repository.
 
string m_info
 Information string for this module.
 
double m_duration
 The duration of this module.
 
int m_calls
 Number of calls of this module.
 
int m_hardware_mode
 Hardware mode (-1: simulation only; 0: both; 1: hardware only)
 
- Protected Attributes inherited from Prototype
bool m_aux
 auxiliary helper variable for debugging purposes
 
bool m_prepared
 True, after the first call to Prepare.
 
string m_name
 Name of this Prototype.
 
DOMNode * m_node
 The node configuring this Module.
 
Type m_type
 The type of the module: one of MOD_PULSE, MOD_ATOM, MOD_CONCAT.
 
vector< double > m_vector
 A vector which elements are accessible through loop counters.
 
map< string, Attribute * > m_attributes
 Map to connect a keyword with an Attribute.
 
vector< Attribute * > m_obs_attribs
 Vector of observed Attributes.
 
vector< string > m_obs_attrib_keyword
 Vector of user-defined Attribute names.
 

Detailed Description

Atomic sequence prototype.

Member Function Documentation

void AtomicSequence::CollectTPOIs ( )

Collect the TPOIs of child pulses.

The method calls Pulse::SetTPOIs of all pulses in the atom, and adds, sorts, and purges all these TPOIs. The method is automatically triggered by Module::notify if a pulse inside the atom changes a private member through observation.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double AtomicSequence::GetDuration ( )
virtual

See Module::GetDuration

Implements Module.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

string AtomicSequence::GetInfo ( )
protectedvirtual

Get informations on this AtomicSequence

Returns
Information for display

Reimplemented from Module.

Reimplemented in DelayAtomicSequence.

+ Here is the caller graph for this function:

int AtomicSequence::GetNumberOfPulses ( )
inline

Get the number of nested pulses.

Returns
The number of nested pulses of this atomic sequence

+ Here is the call graph for this function:

long AtomicSequence::GetNumOfADCs ( )
virtual

Get Number of ADCs in this atom.

Returns
number of ADCs

Implements Sequence.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Pulse* AtomicSequence::GetPulse ( int  number)
inline

Get the pulse given by number.

Parameters
numberPosition in pulse vetor
Returns
Requested pulse
bool AtomicSequence::HasEddyCurrents ( )
inline

true, if this atom contains eddy currents

Returns
status of eddy currents
bool AtomicSequence::HasNonLinGrad ( )
inline

Check for nonlinear gradients in this atom.

Returns
True, if nonlinear gradients are present

+ Here is the caller graph for this function:

bool AtomicSequence::Prepare ( const PrepareMode  mode)
virtual

Prepare the sequence.

Parameters
modeSets the preparation mode, one of enum PrepareMode {PREP_INIT,PREP_VERBOSE,PREP_UPDATE}.

Reimplemented from Sequence.

Reimplemented in DelayAtomicSequence.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void AtomicSequence::Rotation ( double *  Grot)
inline

See Module::GetValue.

Perform a Rotation of the gradients.

Parameters
GrotRotation matrix.

+ Here is the caller graph for this function:

void AtomicSequence::SetEddyCurrents ( bool  val)
inline

true, if this atom contains eddy currents

Returns
status of eddy currents

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void AtomicSequence::SetNonLinGrad ( bool  val)
inline

Marh this atom, if nonlinear gradients are present.

Parameters
valTrue, if nonlinear gradients are present

+ Here is the call graph for this function:

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