link to homepage

Institute for Neuroscience and Medicine

Navigation and service


API documentation

Base class and prototype for all gradient pulses. More...

#include <GradPulse.h>

Inheritance diagram for GradPulse:
Collaboration diagram for GradPulse:

List of all members.

Public Member Functions

 GradPulse ()
virtual ~GradPulse ()
 GradPulse (const GradPulse &)
virtual void GetValue (double *dAllVal, double const time)
virtual double GetGradient (double const time)
 Get the value of the gradient pulse at time t.
virtual bool Prepare (PrepareMode mode)
 see Module::Prepare()
virtual bool PrepareNLGfield (PrepareMode mode)
 Preparation of Nonlinear Gradient fields.
double GetAreaNumeric (int steps)
 get the area of this gradient pulse by numerical integration.
void SetArea (double val)
 Set the area of this gradient pulse.
void SetNonLinGradField (double const time)
 Set the nonlinear gradient field term World::NonLinGradField.
bool HasNonLinGrad ()
 Check, whether this gradient is nonlinear.

Protected Member Functions

virtual string GetInfo ()

Protected Attributes

double m_slew_rate
 The slewrate of this gradient pulse.
double m_max_ampl
 The maximum amplitude of this gradient pulse.
double m_area
 The area of the gradient pulse.
bool m_non_lin_grad
 A flag for nonlinear gradients.
double m_nlg_field
 Nonlinear gradient field (NLG).
double m_nlg_px
 x-position to compute the NLG field
double m_nlg_py
 y-position to compute the NLG field
double m_nlg_pz
 z-position to compute the NLG field
double m_nlg_val
 gradient value to compute the NLG field

Detailed Description

Base class and prototype for all gradient pulses.

Definition at line 31 of file GradPulse.h.


Constructor & Destructor Documentation

GradPulse::GradPulse (  ) 
GradPulse::~GradPulse (  )  [virtual]

Public Destructor

Definition at line 50 of file GradPulse.cpp.

GradPulse::GradPulse ( const GradPulse  ) 

Copy constructor.


Member Function Documentation

double GradPulse::GetAreaNumeric ( int  steps  ) 

get the area of this gradient pulse by numerical integration.

Parameters:
steps The number of steps for integration.
Returns:
The gradient area.

Definition at line 152 of file GradPulse.cpp.

References Pulse::GetDuration(), and GetGradient().

Referenced by ExternalGradPulse::Prepare(), and AnalyticGradPulse::Prepare().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual double GradPulse::GetGradient ( double const   time  )  [inline, virtual]

Get the value of the gradient pulse at time t.

This function has to be implemented for every gradient pulse.

Parameters:
time The time at which the gradient value is requested.
Returns:
The gradient value.

Reimplemented in AnalyticGradPulse, ConstantGradPulse, ExternalGradPulse, SpiralGradPulse, TrapGradPulse, and TriangleGradPulse.

Definition at line 61 of file GradPulse.h.

Referenced by GetAreaNumeric(), GetValue(), and SetNonLinGradField().

Here is the caller graph for this function:

string GradPulse::GetInfo (  )  [protected, virtual]

Get informations on this Gradient

Returns:
Pulse::GetInfo plus The area of this gradient

Reimplemented from Pulse.

Reimplemented in AnalyticGradPulse, ConstantGradPulse, ExternalGradPulse, SpiralGradPulse, TrapGradPulse, and TriangleGradPulse.

Definition at line 164 of file GradPulse.cpp.

References Prototype::GetDOMattribute(), Prototype::HasDOMattribute(), and m_area.

Here is the call graph for this function:

void GradPulse::GetValue ( double *  dAllVal,
double const   time 
) [virtual]

See Module::GetValue

Reimplemented from Pulse.

Definition at line 126 of file GradPulse.cpp.

References Pulse::GetDuration(), GetGradient(), and Pulse::m_axis.

Here is the call graph for this function:

bool GradPulse::HasNonLinGrad (  )  [inline]

Check, whether this gradient is nonlinear.

Returns:
True, if a nonlinear gradient

Definition at line 103 of file GradPulse.h.

References m_non_lin_grad.

bool GradPulse::PrepareNLGfield ( PrepareMode  mode  )  [virtual]

Preparation of Nonlinear Gradient fields.

Parameters:
mode for preparation

Definition at line 53 of file GradPulse.cpp.

References Attribute::EvalExpression(), Prototype::GetAttribute(), Prototype::GetDOMattribute(), Prototype::GetName(), Module::GetParent(), m_nlg_px, m_nlg_py, m_nlg_pz, m_nlg_val, m_non_lin_grad, Prototype::m_obs_attribs, Prototype::Observe(), Prototype::ReplaceString(), Attribute::SetMember(), and Attribute::SetObservable().

Referenced by Prepare().

Here is the call graph for this function:

Here is the caller graph for this function:

void GradPulse::SetArea ( double  val  ) 

Set the area of this gradient pulse.

Parameters:
val Gradient area.

Definition at line 146 of file GradPulse.cpp.

References m_area.

Referenced by TriangleGradPulse::Prepare(), ConstantGradPulse::Prepare(), and TrapGradPulse::SetShape().

Here is the caller graph for this function:

void GradPulse::SetNonLinGradField ( double const   time  ) 

Set the nonlinear gradient field term World::NonLinGradField.

The method gets the current spin-position from the World, calculates the nonlinear gradient field, and writes it to the World.

Parameters:
time The time at which the gradient value is requested.

Definition at line 136 of file GradPulse.cpp.

References Attribute::EvalCompiledNLGExpression(), Prototype::GetAttribute(), GetGradient(), World::instance(), and World::NonLinGradField.

Here is the call graph for this function:


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

Servicemeu