- `orientation` sets the gradient orienation. Can be set to a vector for a fixed orientation. Alternatively, can be set to :bvec (default) to rotate with the user-provided `bvecs` or to :neg_bvec to always be the reverse of the `bvecs`.
- `orientation` sets the gradient orienation (ignored if `qvec` is set). Can be set to a vector for a fixed orientation. Otherwise the orientation will be aligned with the `rotate` (if set) or fully free (if `rotate` is nothing).
- `rotate`: with which user-set parameter will this gradient be rotated (e.g., :bvec). Default is no rotation.
- `scale`: with which user-set parameter will this gradient be scaled (e.g., :bval). Default is no scaling.
## Variables
- [`qvec`](@ref): Spatial scale and direction on which spins will be dephased due to this pulsed gradient in rad/um.
- [`qval`](@ref): Spatial scale on which spins will be dephased due to this pulsed gradient in rad/um.
"""
struct InstantGradientBlock<:GradientBlock
model::Model
orientation::Any
qval::VariableType
qvec::SVector{3,VariableType}
rotate::Union{Nothing,Symbol}
scale::Union{Nothing,Symbol}
end
@global_model_constructorInstantGradientBlock
function InstantGradientBlock(model::Model;orientation=:bvec,qval=nothing)
function InstantGradientBlock(model::Model;orientation=nothing,qval=nothing,qvec=nothing,rotate=nothing,scale=nothing)