Trapezoidal gradient pulse on three axes, with matching ramp and plateau durations on all axes and equal ramp up and ramp down durations.
More...
#include <GradientPulse.h>
Trapezoidal gradient pulse on three axes, with matching ramp and plateau durations on all axes and equal ramp up and ramp down durations.
◆ GradientPulse() [1/4]
| msl::GradientPulse::GradientPulse |
( |
| ) |
|
Create a 0-area gradient on all axes.
◆ GradientPulse() [2/4]
| msl::GradientPulse::GradientPulse |
( |
Vector3d const & | amplitude, |
|
|
long | rampDuration, |
|
|
long | plateauDuration ) |
Create a gradient pulse.
- Attention
- Neither maximum amplitude nor maximum slew rate are checked
◆ GradientPulse() [3/4]
◆ GradientPulse() [4/4]
◆ ~GradientPulse()
| msl::GradientPulse::~GradientPulse |
( |
| ) |
|
|
default |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ update()
Update the gradients amplitudes and durations without changing the start time.
◆ amplitude()
| Vector3d msl::GradientPulse::amplitude |
( |
| ) |
const |
Return the gradient amplitude in mT/m.
◆ rampDuration()
| long msl::GradientPulse::rampDuration |
( |
| ) |
const |
Return the ramp duration in µs.
◆ plateauDuration()
| long msl::GradientPulse::plateauDuration |
( |
| ) |
const |
Return the plateau duration in µs.
◆ duration()
| long msl::GradientPulse::duration |
( |
| ) |
const |
Return the total duration in µs.
◆ area() [1/2]
| Vector3d msl::GradientPulse::area |
( |
| ) |
const |
Return the total area in mT/m*µs.
◆ area() [2/2]
| Vector3d msl::GradientPulse::area |
( |
double | begin, |
|
|
double | end ) const |
Return a partial area in mT/m*µs.
If begin (resp. end) is negative, it is transformed to duration()-begin (resp. duration()-end).
◆ areaFrom()
| Vector3d msl::GradientPulse::areaFrom |
( |
double | begin | ) |
const |
Return the area in mT/m*µs from begin to the end of the gradient pulse.
The transform described in area(begin, end) applies.
◆ areaTo()
| Vector3d msl::GradientPulse::areaTo |
( |
double | end | ) |
const |
Return the area in mT/m*µs from 0 to the requested end.
The transform described in area(begin, end) applies.
◆ rampArea()
| Vector3d msl::GradientPulse::rampArea |
( |
| ) |
const |
Return the ramp area in mT/m*µs.
◆ plateauArea()
| Vector3d msl::GradientPulse::plateauArea |
( |
| ) |
const |
Return the plateau area in mT/m*µs.
◆ startTime()
| long msl::GradientPulse::startTime |
( |
| ) |
const |
Return the start time in µs.
◆ setStartTime()
| GradientPulse & msl::GradientPulse::setStartTime |
( |
long | startTime | ) |
|
Set the start time in µs.
◆ plateauTime()
| long msl::GradientPulse::plateauTime |
( |
| ) |
const |
Return the start time of the plateau in µs.
◆ setPlateauTime()
| GradientPulse & msl::GradientPulse::setPlateauTime |
( |
long | plateauTime | ) |
|
Set the start time of the plateau in µs.
◆ endTime()
| long msl::GradientPulse::endTime |
( |
| ) |
const |
Return the end time in µs.
◆ setEndTime()
◆ operator[]()
| sGRAD_PULSE_TRAP const & msl::GradientPulse::operator[] |
( |
std::size_t | i | ) |
const |
Return the internal gradient object.
◆ run()
| NLSStatus msl::GradientPulse::run |
( |
| ) |
|
Run the non-0 gradients on the three axes.
- Note
- The 0-gradients are skipped so that sequence unit tests pass
The documentation for this class was generated from the following file: