function walk_pathway!(container::ContainerBlock,walker::PathwayWalker,pulse_effects::Vector{Symbol},nreadout::Ref{Int},block_start_time::VariableType)
@@ -331,6 +327,8 @@ function walk_pathway!(ao::AbstractOverlapping, walker::PathwayWalker, pulse_eff
...
@@ -331,6 +327,8 @@ function walk_pathway!(ao::AbstractOverlapping, walker::PathwayWalker, pulse_eff
returntrue
returntrue
end
end
end
end
# apply remaining gradients
forpartinget_parts(ao,current_index,nothing)
forpartinget_parts(ao,current_index,nothing)
update_walker_gradient!(part,walker,current_time)
update_walker_gradient!(part,walker,current_time)
current_time=current_time+duration(part)
current_time=current_time+duration(part)
...
@@ -338,20 +336,6 @@ function walk_pathway!(ao::AbstractOverlapping, walker::PathwayWalker, pulse_eff
...
@@ -338,20 +336,6 @@ function walk_pathway!(ao::AbstractOverlapping, walker::PathwayWalker, pulse_eff
returnfalse
returnfalse
end
end
function walk_pathway!(::Union{InstantReadout,ADC},walker::PathwayWalker,pulse_effects::Vector{Symbol},nreadout::Ref{Int},block_start_time=0.::VariableType)
iflength(pulse_effects)>0
returnfalse
end
nreadout[]-=1
ifiszero(nreadout[])
update_walker_till_time!(walker,block_start_time)
returntrue
elseifnreadout[]<0
error("Pathway walker continued past the point where it should have ended. Did you start with a negative `nreadout`?")