From 955ccb5f59b8fa90c76f9a160d4a50458f1885a0 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Mon, 25 Mar 2024 17:14:11 +0000 Subject: [PATCH] Convert InstantGradient1D to InstantGradient3D --- src/components/components.jl | 2 +- src/containers/linearise.jl | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/components.jl b/src/components/components.jl index 37cbba6..8b4d16f 100644 --- a/src/components/components.jl +++ b/src/components/components.jl @@ -7,7 +7,7 @@ include("readouts/readouts.jl") import .AbstractTypes: BaseComponent, GradientWaveform, EventComponent, RFPulseComponent, ReadoutComponent, split_timestep import .GradientWaveforms: ConstantGradient, ChangingGradient, NoGradient, split_gradient -import .InstantGradients: InstantGradient, InstantGradient3D +import .InstantGradients: InstantGradient, InstantGradient3D, InstantGradient1D import .Pulses: GenericPulse, InstantPulse, SincPulse, ConstantPulse import .Readouts: ADC, SingleReadout diff --git a/src/containers/linearise.jl b/src/containers/linearise.jl index 5af0151..0d2e229 100644 --- a/src/containers/linearise.jl +++ b/src/containers/linearise.jl @@ -1,7 +1,7 @@ module Linearise import StaticArrays: SVector -import ...Components: GradientWaveform, split_timestep, InstantPulse, InstantGradient3D -import ...Variables: amplitude, phase, gradient_strength3, duration +import ...Components: GradientWaveform, split_timestep, InstantPulse, InstantGradient3D, InstantGradient1D +import ...Variables: amplitude, phase, gradient_strength3, duration, qval import ..Abstract: edge_times, start_time, end_time, ContainerBlock, iter_instant_gradients, iter_instant_pulses import ..BaseSequences: BaseSequence, Sequence import ..BuildingBlocks: BaseBuildingBlock @@ -181,6 +181,9 @@ function LinearSequence(container::BaseSequence, times::AbstractVector{<:Number} if !(tstart <= real_time < tfinal) continue end + if pulse isa InstantGradient1D + pulse = InstantGradient3D(qval(pulse) .* pulse.orientation, pulse.group) + end index = findmin(t -> abs(t - real_time), times)[2] to_store[index] = pulse end -- GitLab