From 6909c0269c1126756983360d136b722423eb3302 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <MichielCottaar@protonmail.com> Date: Sat, 25 May 2024 15:51:36 +0100 Subject: [PATCH] Use variables. to get variables --- src/pathways.jl | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/pathways.jl b/src/pathways.jl index ca8402c..7fd46b5 100644 --- a/src/pathways.jl +++ b/src/pathways.jl @@ -71,7 +71,7 @@ function Pathway(sequence::Sequence, pulse_effects::AbstractVector, readout_inde ) end -@defvar function duration_state(pathway::Pathway, transverse, positive) +@defvar pathway function duration_state(pathway::Pathway, transverse, positive) return pathway.duration_states[duration_state_index(transverse, positive)] end @@ -88,7 +88,7 @@ The requested state can be set using `transverse` and `positive` as follows: """ duration_state -@defvar function duration_transverse(pathway::Pathway) +@defvar pathway function duration_transverse(pathway::Pathway) return duration_state(pathway, true, true) + duration_state(pathway, true, false) end """ @@ -101,7 +101,7 @@ Also see [`duration_dephase`](@ref) for T2'-weighting. """ duration_transverse -@defvar function duration_dephase(pathway::Pathway) +@defvar pathway function duration_dephase(pathway::Pathway) return duration_state(pathway, true, true) - duration_state(pathway, true, false) end """ @@ -115,7 +115,7 @@ Also see [`duration_transverse`](@ref) for T2-weighting. duration_dephase -@defvar net_dephasing(pathway::Pathway) = pathway.qvec +@defvar pathway net_dephasing(pathway::Pathway) = pathway.qvec """ net_dephasing(pathway::Pathway) @@ -128,7 +128,7 @@ Returns a NamedTuple with the `qvec` for all gradient groups. net_dephasing -@defvar area_under_curve(pathway::Pathway) = norm(qvec(pathway)) +@defvar pathway area_under_curve(pathway::Pathway) = norm(qvec(pathway)) """ area_under_curve(pathway::Pathway) @@ -141,7 +141,7 @@ Returns a NamedTuple with the `area_under_curve` for all gradient groups. area_under_curve -@defvar bmat(pathway::Pathway) = pathway.bmat +@defvar pathway bmat(pathway::Pathway) = pathway.bmat """ bmat(pathway::Pathway) @@ -153,7 +153,7 @@ Returns a NamedTuple with the `bmat` for all gradient groups. """ bmat -@defvar bval(pathway::Pathway) = tr(bmat(pathway)) +@defvar pathway bval(pathway::Pathway) = tr(bmat(pathway)) """ bval(pathway::Pathway) @@ -271,7 +271,7 @@ The function should return `true` if the `Pathway` has reached its end (i.e., th function walk_pathway!(seq::Sequence, walker::PathwayWalker, pulse_effects::Vector{Symbol}, nreadout::Ref{Int}) current_TR = 0 nwait = length(pulse_effects) + nreadout[] - while !(walk_pathway!(seq, walker, pulse_effects, nreadout, current_TR * TR(seq))) + while !(walk_pathway!(seq, walker, pulse_effects, nreadout, current_TR * variables.duration(seq))) new_nwait = length(pulse_effects) + nreadout[] if nwait == new_nwait not_seen = iszero(length(pulse_effects)) ? "readout" : "pulse" @@ -320,7 +320,7 @@ function walk_pathway!(block::BaseBuildingBlock, walker::PathwayWalker, pulse_ef # apply gradients up till interrupt for (_, part) in waveform_sequence(block, current_index, index_inter) update_walker_gradient!(part, walker, current_time) - current_time = current_time + duration(part) + current_time = current_time + variables.duration(part) end # apply interrupt @@ -339,7 +339,7 @@ function walk_pathway!(block::BaseBuildingBlock, walker::PathwayWalker, pulse_ef # apply remaining gradients for (_, part) in waveform_sequence(block, current_index, nothing) update_walker_gradient!(part, walker, current_time) - current_time = current_time + duration(part) + current_time = current_time + variables.duration(part) end return false end @@ -472,9 +472,9 @@ function update_walker_gradient!(gradient::GradientWaveform, walker::PathwayWalk # update qvec/bmat during gradient tracker = walker.gradient_trackers[key] - tracker.bmat = tracker.bmat .+ bmat_gradient(gradient, tracker.qvec) - tracker.qvec = tracker.qvec .+ qval3(gradient) - tracker.last_gradient_time = gradient_start_time + duration(gradient) + tracker.bmat = tracker.bmat .+ variables.bmat_gradient(gradient, tracker.qvec) + tracker.qvec = tracker.qvec .+ variables.qval3(gradient) + tracker.last_gradient_time = gradient_start_time + variables.duration(gradient) end end -- GitLab