From 8abd6c068214d820ae0bf9869b8bac4a773ed19f Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Thu, 15 Feb 2024 19:03:09 +0000 Subject: [PATCH] Add default fixed implementation for `AbstractBlock`. --- src/variables.jl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/variables.jl b/src/variables.jl index 4b97c03..d983f8f 100644 --- a/src/variables.jl +++ b/src/variables.jl @@ -14,13 +14,21 @@ In addition this defines: module Variables import JuMP: @constraint, @variable, Model, @objective, objective_function, AbstractJuMPScalar import ..Scanners: gradient_strength, slew_rate, Scanner -import ..BuildSequences: global_model, global_scanner +import ..BuildSequences: global_model, global_scanner, fixed """ Parent type of all components, building block, and sequences that form an MRI sequence. """ abstract type AbstractBlock end +function fixed(ab::AbstractBlock) + params = [] + for prop_name in propertynames(ab) + push!(params, fixed(getproperty(ab, prop_name))) + end + return typeof(ab)(params...) +end + all_variables_symbols = [ :block => [ :duration => "duration of the building block in ms.", -- GitLab