diff --git a/src/components/components.jl b/src/components/components.jl index 37cbba6417c096468434d1e2fe4dbd86f5926822..8b4d16fc1f4affd7341878ee87e784067ec63b99 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 5af0151bf6a4f8ba1fb9424c453e6d08bb11238a..0d2e229dd1a626edfccd1845d33bede75fb50fd5 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