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

Import get_* functions

parent 6562f92c
No related branches found
No related tags found
1 merge request!2Define variables through new @defvar macro
This commit is part of merge request !2. Comments created here will be created in the context of that merge request.
...@@ -6,7 +6,7 @@ module Trapezoids ...@@ -6,7 +6,7 @@ module Trapezoids
import JuMP: @constraint import JuMP: @constraint
import StaticArrays: SVector import StaticArrays: SVector
import LinearAlgebra: norm import LinearAlgebra: norm
import ...Variables: variables, @defvar, scanner_constraints!, get_free_variable, set_simple_constraints!, gradient_orientation, VariableType import ...Variables: variables, @defvar, scanner_constraints!, get_free_variable, set_simple_constraints!, gradient_orientation, VariableType, get_gradient, get_pulse, get_readout
import ...BuildSequences: global_model import ...BuildSequences: global_model
import ...Components: ChangingGradient, ConstantGradient, RFPulseComponent, ADC import ...Components: ChangingGradient, ConstantGradient, RFPulseComponent, ADC
import ...Containers: BaseBuildingBlock import ...Containers: BaseBuildingBlock
...@@ -106,18 +106,19 @@ gradient_orientation(pg::Trapezoid{1}) = pg.orientation ...@@ -106,18 +106,19 @@ gradient_orientation(pg::Trapezoid{1}) = pg.orientation
get_group(pg::Trapezoid) = pg.group get_group(pg::Trapezoid) = pg.group
get_group(pg::BaseTrapezoid) = get_group(get_gradient(pg)) get_group(pg::BaseTrapezoid) = get_group(get_gradient(pg))
@defvar begin @defvar gradient begin
rise_time(pg::Trapezoid) = pg.rise_time rise_time(pg::Trapezoid) = pg.rise_time
flat_time(pg::Trapezoid) = pg.flat_time flat_time(pg::Trapezoid) = pg.flat_time
slew_rate(g::Trapezoid) = g.slew_rate slew_rate(g::Trapezoid) = g.slew_rate
end end
@defvar begin @defvar gradient begin
gradient_strength(g::Trapezoid) = slew_rate(g) .* rise_time(g) gradient_strength(g::Trapezoid) = slew_rate(g) .* rise_time(g)
δ(g::Trapezoid) = rise_time(g) + flat_time(g) δ(g::Trapezoid) = rise_time(g) + flat_time(g)
duration(g::BaseTrapezoid) = 2 * rise_time(g) + flat_time(g)
end end
@defvar duration(g::BaseTrapezoid) = 2 * rise_time(g) + flat_time(g)
@defvar qval(g::BaseTrapezoid, ::Nothing, ::Nothing) = variables.δ(g) .* gradient_strength(g) .* 2π @defvar qval(g::BaseTrapezoid, ::Nothing, ::Nothing) = variables.δ(g) .* gradient_strength(g) .* 2π
adjustable(::BaseTrapezoid) = :gradient adjustable(::BaseTrapezoid) = :gradient
......
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