Stacktrace part 1
┌ Warning: Automatic AD choice of autojacvec failed in ODE adjoint, failing back to ODE adjoint + numerical vjp
└ @ SciMLSensitivity C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\sensitivity_interface.jl:381
ERROR: type ODEBacksolveSensitivityFunction has no field sol
Stacktrace:
[1] getproperty
@ .\Base.jl:37 [inlined]
[2] SciMLSensitivity.ReverseLossCallback(sensefun::SciMLSensitivity.ODEBacksolveSensitivityFunction{SciMLSensitivity.AdjointDiffCache{SciMLBase.UDerivativeWrapper{ODEFunction{false, SciMLBase.FullSpecialize,
var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Float64, Vector{Float64}}, SciMLSensitivity.ParamGradientWrapper{ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Float64, SVector{4, Float64}}, Nothing, Matrix{Float64}, Matrix{Float64}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, SOneTo{4}, UnitRange{Int64}, LinearAlgebra.UniformScaling{Bool}}, BacksolveAdjoint{0, true, Val{:central}, Bool}, SVector{4, Float64}, ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, Vector{Float64}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing,
typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}}, λ::Vector{Float64}, t::Vector{Float64}, dgdu::Function, dgdp::Nothing, cur_time::Base.RefValue{Int64}) @ SciMLSensitivity C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\adjoint_common.jl:491
[3] generate_callbacks(sensefun::SciMLSensitivity.ODEBacksolveSensitivityFunction{SciMLSensitivity.AdjointDiffCache{SciMLBase.UDerivativeWrapper{ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing},
Float64, Vector{Float64}}, SciMLSensitivity.ParamGradientWrapper{ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Float64, SVector{4, Float64}}, Nothing, Matrix{Float64}, Matrix{Float64}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, SOneTo{4}, UnitRange{Int64}, LinearAlgebra.UniformScaling{Bool}}, BacksolveAdjoint{0, true, Val{:central}, Bool}, SVector{4, Float64}, ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, Vector{Float64}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}}, dgdu::Function, dgdp::Nothing, λ::Vector{Float64}, t::Vector{Float64}, t0::Float64, callback::Nothing, init_cb::Bool, terminated::Bool)
@ SciMLSensitivity C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\adjoint_common.jl:582
[4] ODEAdjointProblem(sol::ODESolution{Float64, 2, Vector{SVector{4, Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{SVector{4, Float64}}}, ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, Vector{Float64}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, OrdinaryDiffEq.InterpolationData{ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Vector{SVector{4, Float64}}, Vector{Float64}, Vector{Vector{SVector{4, Float64}}}, OrdinaryDiffEq.Tsit5ConstantCache}, DiffEqBase.Stats, Nothing}, sensealg::BacksolveAdjoint{0, true, Val{:central}, Bool}, alg::Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, t::Vector{Float64}, dgdu_discrete::SciMLSensitivity.var"#df_oop#285"{SciMLSensitivity.var"#df_oop#276#286"{Matrix{Float64}, Colon}}, dgdp_discrete::Nothing, dgdu_continuous::Nothing, dgdp_continuous::Nothing, g::Nothing, ::Val{true}; checkpoints::Vector{Float64}, callback::Nothing, z0::Nothing, M::Nothing, nilss::Nothing, tspan::Tuple{Float64, Float64},
kwargs::Base.Pairs{Symbol, Real, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:abstol, :reltol, :verbose),
Tuple{Float64, Float64, Bool}}})
@ SciMLSensitivity C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\backsolve_adjoint.jl:186 [5] _adjoint_sensitivities(sol::ODESolution{Float64, 2, Vector{SVector{4, Float64}}, Nothing, Nothing,
Vector{Float64}, Vector{Vector{SVector{4, Float64}}}, ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, Vector{Float64}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, OrdinaryDiffEq.InterpolationData{ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Vector{SVector{4, Float64}}, Vector{Float64}, Vector{Vector{SVector{4, Float64}}}, OrdinaryDiffEq.Tsit5ConstantCache}, DiffEqBase.Stats, Nothing}, sensealg::BacksolveAdjoint{0, true, Val{:central}, Bool}, alg::Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}; t::Vector{Float64}, dgdu_discrete::Function, dgdp_discrete::Nothing, dgdu_continuous::Nothing, dgdp_continuous::Nothing, g::Nothing, abstol::Float64, reltol::Float64, checkpoints::Vector{Float64}, corfunc_analytical::Nothing, callback::Nothing, kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:verbose,), Tuple{Bool}}})
@ SciMLSensitivity C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\sensitivity_interface.jl:407
[6] _adjoint_sensitivities
@ C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\sensitivity_interface.jl:390 [inlined]
[7] adjoint_sensitivities(sol::ODESolution{Float64, 2, Vector{SVector{4, Float64}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{SVector{4, Float64}}}, ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, Vector{Float64}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, OrdinaryDiffEq.InterpolationData{ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Vector{SVector{4, Float64}}, Vector{Float64}, Vector{Vector{SVector{4, Float64}}}, OrdinaryDiffEq.Tsit5ConstantCache}, DiffEqBase.Stats, Nothing}, args::Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}; sensealg::BacksolveAdjoint{0, true, Val{:central}, Nothing}, verbose::Bool, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:t, :dgdu_discrete, :callback), Tuple{Vector{Float64}, SciMLSensitivity.var"#df_oop#285"{SciMLSensitivity.var"#df_oop#276#286"{Matrix{Float64}, Colon}},
Nothing}}})
@ SciMLSensitivity C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\sensitivity_interface.jl:382
[8] (::SciMLSensitivity.var"#adjoint_sensitivity_backpass#283"{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, BacksolveAdjoint{0, true, Val{:central}, Nothing}, SVector{4, Float64}, Vector{Float64}, SciMLBase.ReverseDiffOriginator, Tuple{}, Colon, NamedTuple{(), Tuple{}}})(Δ::Matrix{Float64})
@ SciMLSensitivity C:\Users\dan_l\.julia\packages\SciMLSensitivity\NhfkF\src\concrete_solve.jl:529
[9] actual_adjoint
@ C:\Users\dan_l\.julia\packages\DiffEqBase\jvL5B\ext\DiffEqBaseReverseDiffExt.jl:134 [inlined]
[10] special_reverse_exec!(instruction::ReverseDiff.SpecialInstruction{typeof(DiffEqBase.solve_up), Tuple{ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing},
Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, BacksolveAdjoint{0, true, Val{:central}, Nothing}, SVector{4, Float64}, ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}}, ReverseDiff.TrackedArray{Float64, Float64, 2, Matrix{Float64}, Matrix{Float64}}, Tuple{DiffEqBaseReverseDiffExt.var"#actual_adjoint#23"{Tuple{Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}}, Tuple{ODESolution{Float64, 2, Vector{SVector{4, Float64}}, Nothing, Nothing, Vector{Float64}, Nothing, ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, Vector{Float64}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing,
Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, SciMLBase.SensitivityInterpolation{Vector{Float64}, Vector{SVector{4, Float64}}}, DiffEqBase.Stats, Nothing}, SciMLSensitivity.var"#adjoint_sensitivity_backpass#283"{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, BacksolveAdjoint{0, true, Val{:central}, Nothing}, SVector{4, Float64}, Vector{Float64}, SciMLBase.ReverseDiffOriginator, Tuple{}, Colon, NamedTuple{(), Tuple{}}}}}, DiffEqBaseReverseDiffExt.var"##solve_up#292#21"{DiffEqBaseReverseDiffExt.var"##solve_up#292#20#22"}, NamedTuple{(), Tuple{}}}})
@ DiffEqBaseReverseDiffExt C:\Users\dan_l\.julia\packages\ReverseDiff\UJhiD\src\macros.jl:216
[11] reverse_exec!(instruction::ReverseDiff.SpecialInstruction{typeof(DiffEqBase.solve_up), Tuple{ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, BacksolveAdjoint{0, true, Val{:central}, Nothing}, SVector{4, Float64}, ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}}, ReverseDiff.TrackedArray{Float64, Float64, 2, Matrix{Float64}, Matrix{Float64}}, Tuple{DiffEqBaseReverseDiffExt.var"#actual_adjoint#23"{Tuple{Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}}, Tuple{ODESolution{Float64, 2, Vector{SVector{4, Float64}}, Nothing, Nothing, Vector{Float64}, Nothing, ODEProblem{SVector{4, Float64}, Tuple{Float64, Float64}, false, Vector{Float64}, ODEFunction{false, SciMLBase.FullSpecialize, var"#7#8", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False}, SciMLBase.SensitivityInterpolation{Vector{Float64}, Vector{SVector{4, Float64}}}, DiffEqBase.Stats, Nothing}, SciMLSensitivity.var"#adjoint_sensitivity_backpass#283"{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Tsit5{typeof(OrdinaryDiffEq.trivial_limiter!), typeof(OrdinaryDiffEq.trivial_limiter!), Static.False},
BacksolveAdjoint{0, true, Val{:central}, Nothing}, SVector{4, Float64}, Vector{Float64}, SciMLBase.ReverseDiffOriginator, Tuple{}, Colon, NamedTuple{(), Tuple{}}}}}, DiffEqBaseReverseDiffExt.var"##solve_up#292#21"{DiffEqBaseReverseDiffExt.var"##solve_up#292#20#22"}, NamedTuple{(), Tuple{}}}})
@ ReverseDiff C:\Users\dan_l\.julia\packages\ReverseDiff\UJhiD\src\tape.jl:93
[12] reverse_pass!(tape::Vector{ReverseDiff.AbstractInstruction})
@ ReverseDiff C:\Users\dan_l\.julia\packages\ReverseDiff\UJhiD\src\tape.jl:87
[13] reverse_pass!
@ C:\Users\dan_l\.julia\packages\ReverseDiff\UJhiD\src\api\tape.jl:36 [inlined]
[14] seeded_reverse_pass!(result::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, output::ReverseDiff.TrackedReal{Float64, Float64, ReverseDiff.TrackedArray{Float64, Float64, 2, Matrix{Float64}, Matrix{Float64}}}, input::ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, tape::ReverseDiff.GradientTape{var"#loss#9"{SVector{4, Float64}, Float64, NamedTuple{(:sensealg,), Tuple{BacksolveAdjoint{0, true, Val{:central}, Nothing}}}}, ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, ReverseDiff.TrackedReal{Float64, Float64, ReverseDiff.TrackedArray{Float64, Float64, 2, Matrix{Float64}, Matrix{Float64}}}})
@ ReverseDiff C:\Users\dan_l\.julia\packages\ReverseDiff\UJhiD\src\api\utils.jl:31
[15] seeded_reverse_pass!(result::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, t::ReverseDiff.GradientTape{var"#loss#9"{SVector{4, Float64}, Float64, NamedTuple{(:sensealg,), Tuple{BacksolveAdjoint{0, true, Val{:central}, Nothing}}}}, ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, ReverseDiff.TrackedReal{Float64, Float64, ReverseDiff.TrackedArray{Float64, Float64, 2, Matrix{Float64}, Matrix{Float64}}}})
@ ReverseDiff C:\Users\dan_l\.julia\packages\ReverseDiff\UJhiD\src\api\tape.jl:47
[16] gradient!(result::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, f::Function, input::Vector{Float64}, cfg::ReverseDiff.GradientConfig{ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}})
@ ReverseDiff C:\Users\dan_l\.julia\packages\ReverseDiff\UJhiD\src\api\gradients.jl:42
[17] autodiff_closure
@ c:\Users\dan_l\Dropbox (Cambridge University)\shared_Daniel\code\PBCTuning.jl\examples\reversediff_mwe.jl:30 [inlined]
[18] optimize(u0::SVector{4, Float64}, tspan::Float64, p::Vector{Float64}, solver_options::NamedTuple{(:sensealg,), Tuple{BacksolveAdjoint{0, true, Val{:central}, Nothing}}})
@ Main c:\Users\dan_l\Dropbox (Cambridge University)\shared_Daniel\code\PBCTuning.jl\examples\reversediff_mwe.jl:39
[19] top-level scope
@ c:\Users\dan_l\Dropbox (Cambridge University)\shared_Daniel\code\PBCTuning.jl\examples\reversediff_mwe.jl:51