diff --git a/src/components/pulses/constant_pulses.jl b/src/components/pulses/constant_pulses.jl index a15ea306d0756756a5fae13fb6944fbb6e762220..96043358dae5a6faf394b1f740e66c92fda24ae4 100644 --- a/src/components/pulses/constant_pulses.jl +++ b/src/components/pulses/constant_pulses.jl @@ -64,10 +64,10 @@ end split_timestep(pulse::ConstantPulse, precision) = Inf -function adjust_internal(block::ConstantPulse; scale=1., frequency=0.) +function adjust_internal(block::ConstantPulse; scale=1., frequency=0., stretch=1.) ConstantPulse( block.amplitude * scale, - block.duration, + block.duration * stretch, block.phase, block.frequency + frequency, block.group, diff --git a/src/components/pulses/generic_pulses.jl b/src/components/pulses/generic_pulses.jl index 856bf8a13709a89b50ab45b21b0a92d7dbec8b9a..df4b580bb4945341da7eb268c0f36fda2119c6da 100644 --- a/src/components/pulses/generic_pulses.jl +++ b/src/components/pulses/generic_pulses.jl @@ -153,9 +153,9 @@ function split_timestep(gp::GenericPulse, precision) return sqrt(2 * precision / max_second_der) end -function adjust_internal(block::GenericPulse; scale=1., frequency=0.) +function adjust_internal(block::GenericPulse; scale=1., frequency=0., stretch=1.) GenericPulse( - block.time, + block.time .* stretch, block.amplitude .* scale, block.phase .+ (360. * frequency) .* (block.time .- effective_time(block)) ) diff --git a/src/components/pulses/sinc_pulses.jl b/src/components/pulses/sinc_pulses.jl index 8ced23fc54ed380ef1b8225650006b11beee8df2..1fb52aee5f4b4ddf2ec8c133918aff7b5bf37ce9 100644 --- a/src/components/pulses/sinc_pulses.jl +++ b/src/components/pulses/sinc_pulses.jl @@ -107,7 +107,7 @@ function split_timestep(block::SincPulse, precision) return sqrt(2 * precision / max_second_derivative) end -function adjust_internal(block::SincPulse; scale=1., frequency=0.) +function adjust_internal(block::SincPulse; scale=1., frequency=0., stretch=1.) SincPulse( block.apodise, block.Nzeros, @@ -115,7 +115,7 @@ function adjust_internal(block::SincPulse; scale=1., frequency=0.) block.amplitude * scale, block.phase, block.frequency + frequency, - block.lobe_duration, + block.lobe_duration * stretch, block.group ) end