From 94325cf56bdbfc101e2604a58558af5ae3c14f3b Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Mon, 29 Jan 2024 15:01:17 +0000 Subject: [PATCH] Set start times of pulsed gradient parts --- src/gradients/pulsed_gradients.jl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gradients/pulsed_gradients.jl b/src/gradients/pulsed_gradients.jl index c57041e..0e6aa73 100644 --- a/src/gradients/pulsed_gradients.jl +++ b/src/gradients/pulsed_gradients.jl @@ -98,9 +98,9 @@ end rise_time(pg::PulsedGradient) = duration(pg.rise) flat_time(pg::PulsedGradient) = duration(pg.flat) -gradient_strength_vec(g::PulsedGradient) = rise_time(g) * slew_rate(g) +gradient_strength_vec(g::PulsedGradient) = rise_time(g) * slew_rate_vec(g) gradient_strength(g::PulsedGradient) = isnothing(g.scaling) ? maximum(gradient_strength_vec(g)) : (res.scaling * rise_time(g)) -slew_rate_vec(g::PulsedGradient) = g.slew_rate_vec +slew_rate_vec(g::PulsedGradient) = abs.(g.slew_rate_vec) slew_rate(g::PulsedGradient) = isnothing(g.scaling) ? maximum(slew_rate_vec(g)) : res.scaling δ(g::PulsedGradient) = rise_time(g) + flat_time(g) duration(g::PulsedGradient) = 2 * rise_time(g) + flat_time(g) @@ -113,6 +113,11 @@ Base.getindex(pg::PulsedGradient, ::Val{:rise}) = pg.rise Base.getindex(pg::PulsedGradient, ::Val{:flat}) = pg.flat Base.getindex(pg::PulsedGradient, ::Val{:fall}) = pg.fall +start_time(pg::PulsedGradient, symbol::Symbol) = pg[Val(symbol)] +start_time(pg::PulsedGradient, ::Val{:rise}) = 0. +start_time(pg::PulsedGradient, ::Val{:flat}) = rise_time(pg) +start_time(pg::PulsedGradient, ::Val{:fall}) = δ(pg) + variables(::Type{<:PulsedGradient}) = [qval, δ, gradient_strength_vec, duration, rise_time, flat_time] -- GitLab