Skip to content
Snippets Groups Projects
Unverified Commit c2f7ede6 authored by Michiel Cottaar's avatar Michiel Cottaar
Browse files

Add final cost function to minimise sequence length

parent a6ba7e99
No related branches found
No related tags found
1 merge request!4Resolve "Add secondary objective function"
...@@ -4,7 +4,7 @@ Defines [`BaseSequence`](@ref) and [`Sequence`](@ref) ...@@ -4,7 +4,7 @@ Defines [`BaseSequence`](@ref) and [`Sequence`](@ref)
module BaseSequences module BaseSequences
import StaticArrays: SVector import StaticArrays: SVector
import JuMP: @constraint import JuMP: @constraint
import ...Variables: get_free_variable, VariableType, variables, set_simple_constraints!, make_generic, get_gradient, get_pulse, get_gradient, @defvar import ...Variables: get_free_variable, VariableType, variables, set_simple_constraints!, make_generic, get_gradient, get_pulse, get_gradient, @defvar, add_cost_function!
import ...BuildSequences: global_scanner import ...BuildSequences: global_scanner
import ...Components: EventComponent, NoGradient, edge_times import ...Components: EventComponent, NoGradient, edge_times
import ...Scanners: Scanner, B0 import ...Scanners: Scanner, B0
...@@ -151,10 +151,11 @@ struct Sequence{S, N} <: BaseSequence{N} ...@@ -151,10 +151,11 @@ struct Sequence{S, N} <: BaseSequence{N}
scanner :: Scanner scanner :: Scanner
end end
function Sequence(blocks::AbstractVector; name=:Sequence, scanner=nothing, variables...) function Sequence(blocks::AbstractVector; name=:Sequence, scanner=nothing, vars...)
blocks = to_block_pair.(blocks) blocks = to_block_pair.(blocks)
res = Sequence{name, length(blocks)}(SVector{length(blocks)}(blocks), isnothing(scanner) ? global_scanner() : scanner) res = Sequence{name, length(blocks)}(SVector{length(blocks)}(blocks), isnothing(scanner) ? global_scanner() : scanner)
set_simple_constraints!(res, variables) set_simple_constraints!(res, vars)
add_cost_function!(variables.duration(res), 3)
return res return res
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment