msl 1.3.0
Loading...
Searching...
No Matches
gradient_pulses.h
Go to the documentation of this file.
1// Copyright 2025 Julien Lamy, ICube, Université de Strasbourg-CNRS.
2// Part of msl, distributed under the terms of the MIT license.
3
4#ifndef _d6067f26_790d_47d2_9843_9ffef6843fbb
5#define _d6067f26_790d_47d2_9843_9ffef6843fbb
6
7#include "GradientPulse.h"
8#include "GradientSpecs.h"
9#include "RFPulse.h"
10#include "Vector.h"
11
12namespace msl
13{
14
20{
21
30 Vector3d const & k, double maxAmplitude, double minRiseTime);
31
38GradientPulse quickest(Vector3d const & k, GradientSpecs const & specs);
39
50 Vector3d const & kPlateau, long plateauDuration,
51 double maxAmplitude, double minRiseTime);
52
62 Vector3d const & kPlateau, long plateauDuration,
63 GradientSpecs const & specs);
64
74 Vector3d const & k, long duration, double maxAmplitude, double minRiseTime);
75
84 Vector3d const & k, long duration, GradientSpecs const & specs);
85
96 Vector3d const & k, long rampDuration, long plateauDuration,
97 double maxAmplitude, double minRiseTime);
98
108 Vector3d const & k, GradientPulse const & reference,
109 double maxAmplitude, double minRiseTime);
110
120 Vector3d const & k, long rampDuration, long plateauDuration,
121 GradientSpecs const & specs);
122
131 Vector3d const & k, GradientPulse const & reference,
132 GradientSpecs const & specs);
133
141template<typename T>
142GradientPulse sliceSelection(T && pulse, double maxAmplitude, double minRiseTime);
143
150template<typename T>
151GradientPulse sliceSelection(T && pulse, GradientSpecs const & specs);
152
153}
154
155}
156
157#include "gradient_pulses.txx"
158
159#endif // _d6067f26_790d_47d2_9843_9ffef6843fbb
Trapezoidal or arbitrary gradient pulse on three axes.
Definition GradientPulse.h:21
Functions generating gradient pulses based on user and system constraints.
Definition gradient_pulses.h:20
GradientPulse sliceSelection(T &&pulse, double maxAmplitude, double minRiseTime)
Compute a slice selection gradient.
GradientPulse fixedDuration(Vector3d const &k, long duration, double maxAmplitude, double minRiseTime)
Compute a gradient pulse with the requested duration.
GradientPulse quickest(Vector3d const &k, double maxAmplitude, double minRiseTime)
Compute the quickest gradient pulse to achieve the given k-space vector.
GradientPulse plateau(Vector3d const &kPlateau, long plateauDuration, double maxAmplitude, double minRiseTime)
Compute a gradient pulse with the requested plateau vector and duration.
Top-level namespace of the msl library.
Definition acceleration.h:17
Vector< 3, double > Vector3d
3D vector of doubles
Definition Vector.h:136
Specifications of the gradient system.
Definition GradientSpecs.h:14