diff --git a/src/gradients/pulsed_gradients.jl b/src/gradients/pulsed_gradients.jl index c57041e1758ec5b9dd318413920bf48c8c914dfa..0e6aa732c3e3b05ca64dc29a9237f4e45888a7e5 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]