diff --git a/src/gradients/changing_gradient_blocks.jl b/src/gradients/changing_gradient_blocks.jl index 850fe6cec84ad0f4290b94e4f526622ed697c703..e589c2f5a7558b1ec277a992913c2b73eb344869 100644 --- a/src/gradients/changing_gradient_blocks.jl +++ b/src/gradients/changing_gradient_blocks.jl @@ -8,7 +8,7 @@ import ...BuildingBlocks: GradientBlock, fixed, RFPulseBlock struct AbstractChangingGradientBlock{T<:VariableType} <: GradientBlock gradient_strength_start :: SVector{3, T} - gradient_strength_end :: SVector{3, T} + slew_rate :: SVector{3, T} duration :: T rotate :: Union{Nothing, Symbol} scale :: Union{Nothing, Symbol} @@ -34,7 +34,9 @@ const FixedChangingGradientBlock = AbstractChangingGradientBlock{Float64} duration(cgb::AbstractChangingGradientBlock) = cgb.duration -slew_rate(cgb::AbstractChangingGradientBlock) = (cgb.gradient_strength_end .- cgb.gradient_strength_start) ./ duration(cgb) +grad_start(cgb::AbstractChangingGradientBlock) = cgb.gradient_strength_start +slew_rate(cgb::AbstractChangingGradientBlock) = cgb.slew_rate +grad_end(cgb::AbstractChangingGradientBlock) = gradient_strength(cgb) .+ slew_rate(cgb) .* duration(cgb) gradient_strength(cgb::AbstractChangingGradientBlock) = max.(cgb.gradient_strength_start, cgb.gradient_strength_start) qvec(cgb::AbstractChangingGradientBlock) = (cgb.gradient_strength_start .+ cgb.gradient_strength_end) .* (duration(cgb)/2) diff --git a/src/gradients/pulsed_gradients.jl b/src/gradients/pulsed_gradients.jl index 8897d98ec06c9192a50f22021e319949f5e6b3df..372039ba8437bc2b8044e4e5884c7f978a58c7fd 100644 --- a/src/gradients/pulsed_gradients.jl +++ b/src/gradients/pulsed_gradients.jl @@ -85,9 +85,9 @@ function PulsedGradient(model::Model; orientation=nothing, rise_time=nothing, fl res = PulsedGradient( model, - ChangingGradientBlock(zeros(3), grad, rise_time, rotate, scale), + ChangingGradientBlock(zeros(3), slew_rate, rise_time, rotate, scale), ConstantGradientBlock(grad, flat_time, rotate, scale), - ChangingGradientBlock(grad, zeros(3), rise_time, rotate, scale), + ChangingGradientBlock(grad, -slew_rate, rise_time, rotate, scale), slew_rate, rate_1d, rotate,