# Domain Troubles with Differential Equations Solver (with non-auto-differentiable function inside the ODE def)

**URL:** <https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650>\
**Category:** Numerics\
**Tags:** question, diffeq\
**Created:** [August 18, 2018, 5:06am UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650 "2018-08-18T05:06:31Z")\
**Posts on this page:** 14\
**Page:** 2

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 18, 2018, 10:08pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/21 "2018-08-18T22:08:10Z")

</div>

`Pkg.checkout("OrdinaryDiffEq","06finite")`. The Rosenbrock methods like `Rosenbrock23()` and `Rodas5()` should work, but I didn’t test it since I don’t have v0.6 setup with my dev tools anymore.

---

<div class="post-metadata">

**Author:** ![shoshievass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shoshievass/32/3260_2.png) [@shoshievass](https://discourse.julialang.org/u/shoshievass)\
**Post date:** [August 18, 2018, 10:17pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/22 "2018-08-18T22:17:04Z")

</div>

I got the following error trying to check out…

```julia
GitError(Code:ERROR, Class:Merge, There is no tracking information for the current branch.)

Stacktrace:
 [1] (::Base.LibGit2.##117#125{Base.LibGit2.GitRepo})(::Base.LibGit2.GitReference) at ./libgit2/libgit2.jl:709
 [2] with(::Base.LibGit2.##117#125{Base.LibGit2.GitRepo}, ::Base.LibGit2.GitReference) at ./libgit2/types.jl:608
 [3] #merge!#109(::String, ::String, ::Bool, ::Base.LibGit2.MergeOptions, ::Base.LibGit2.CheckoutOptions, ::Function, ::Base.LibGit2.GitRepo) at ./libgit2/libgit2.jl:706
 [4] (::Base.#kw##merge!)(::Array{Any,1}, ::Base.#merge!, ::Base.LibGit2.GitRepo) at ./<missing>:0
 [5] (::Base.Pkg.Entry.##16#18{String,String,Bool,Bool})(::Base.LibGit2.GitRepo) at ./pkg/entry.jl:230
 [6] transact(::Base.Pkg.Entry.##16#18{String,String,Bool,Bool}, ::Base.LibGit2.GitRepo) at ./libgit2/libgit2.jl:882
 [7] with(::Base.Pkg.Entry.##15#17{String,String,Bool,Bool}, ::Base.LibGit2.GitRepo) at ./libgit2/types.jl:608
 [8] checkout(::String, ::String, ::Bool, ::Bool) at ./pkg/entry.jl:226
 [9] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#checkout,Tuple{String,String,Bool,Bool}})() at ./pkg/dir.jl:36
 [10] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#checkout,Tuple{String,String,Bool,Bool}}, ::String) at ./file.jl:70
 [11] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{Any,N} where N) at ./pkg/dir.jl:36
 [12] #checkout#1(::Bool, ::Bool, ::Function, ::String, ::String) at ./pkg/pkg.jl:188
 [13] checkout(::String, ::String) at ./pkg/pkg.jl:188

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 18, 2018, 10:26pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/23 "2018-08-18T22:26:31Z")

</div>

`Pkg.update()` first.

---

<div class="post-metadata">

**Author:** ![shoshievass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shoshievass/32/3260_2.png) [@shoshievass](https://discourse.julialang.org/u/shoshievass)\
**Post date:** [August 18, 2018, 10:54pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/24 "2018-08-18T22:54:38Z")

</div>

I got the new branch and took out the autodiff=false statement but still got an InexactError ☹

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 18, 2018, 11:01pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/25 "2018-08-18T23:01:07Z")

</div>

On that branch go back to the out-of-place function. It was made so that the stiff solvers with out-of-place can use finite differencing.

---

<div class="post-metadata">

**Author:** ![shoshievass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shoshievass/32/3260_2.png) [@shoshievass](https://discourse.julialang.org/u/shoshievass)\
**Post date:** [August 19, 2018, 10:42am UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/26 "2018-08-19T10:42:42Z")

</div>

Thank you, again!

With `Rosenbrock23()` or `Rodas5()`, it now runs for 3 or so iters and then says the derivative isn’t defined (although I’m not getting any errors/warnings from JuMP). Does that mean my problem just doesn’t work or is there maybe something else to try?

```julia
init u: 1251.8518364213967
t span: (1.2102828512236605, 0.6313105134942845)
u: 1251.8518364213967; t: 1.2102828512236605
numerator: -1.176735245048757e-12
denominator: 0.654046236490126
du/dt: -1.7991621683561538e-12

u: 1251.8518364213967; t: 1.2102828512236605
numerator: -1.176735245048757e-12
denominator: 0.654046236490126
du/dt: -1.7991621683561538e-12

u: 1251.8518364213967; t: 1.2102818512236606
numerator: 0.01367538009225448
denominator: 0.6540454086369006
du/dt: 0.020908915362245886

UndefVarError: derivative not defined

Stacktrace:
 [1] perform_step!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}}},#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}, ::OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}, ::Bool) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/perform_step/rosenbrock_perform_step.jl:175
 [2] solve!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}}},#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:341
 [3] #solve#1469(::Array{Any,1}, ::Function, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Type{Val{true}}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:7
 [4] solve(::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#63{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:6
 [5] getScalingAuctionEquilibrium(::Int64, ::Auction, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::StepRangeLen{Float64,Base.TwicePrecision{Float64},Base.TwicePrecision{Float64}}) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:222
 [6] getMinimalAuctionCFcomparison(::Auction, ::Int64, ::Int64) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:247
 [7] include_string(::String, ::String) at ./loading.jl:522

```

I tried some variations of the options I’d been working with - in case that’s informative.  
For the call `eq_sol = DifferentialEquations.solve(eq_prob, isoutofdomain=(u,p,t) -> any(x -> (x < 0)))`:

```julia
u: 1251.8517328095209; t: 1.2101828512236605
numerator: 1.4136137743844237
denominator: 0.674575094749434
du/dt: 2.09556176234093

MethodError: no method matching start(::##253#257)
Closest candidates are:
  start(::SimpleVector) at essentials.jl:258
  start(::Base.MethodList) at reflection.jl:560
  start(::ExponentialBackOff) at error.jl:107
  ...

Stacktrace:
 [1] any(::Base.#identity, ::Function) at ./reduce.jl:573
 [2] loopfooter!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.CompositeAlgorithm{Tuple{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},OrdinaryDiffEq.ODECompositeSolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.CompositeAlgorithm{Tuple{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}},OrdinaryDiffEq.CompositeInterpolationData{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.CompositeCache{Tuple{OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}}}},#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.CompositeCache{Tuple{OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},##252#256,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/integrators/integrator_utils.jl:264
 [3] solve!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.CompositeAlgorithm{Tuple{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},OrdinaryDiffEq.ODECompositeSolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.CompositeAlgorithm{Tuple{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}},OrdinaryDiffEq.CompositeInterpolationData{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.CompositeCache{Tuple{OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}}}},#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.CompositeCache{Tuple{OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},##252#256,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:342
 [4] #solve#1469(::Array{Any,1}, ::Function, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.CompositeAlgorithm{Tuple{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}}, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Type{Val{true}}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:7
 [5] (::DiffEqBase.#kw##solve)(::Array{Any,1}, ::DiffEqBase.#solve, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.CompositeAlgorithm{Tuple{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}},OrdinaryDiffEq.AutoSwitch{OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.Rosenbrock23{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Rational{Int64},Float64}}, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Type{Val{true}}) at ./<missing>:0 (repeats 2 times)
 [6] #solve#2(::Bool, ::Array{Any,1}, ::Function, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::Void) at /Users/shoshievass/.julia/v0.6/DifferentialEquations/src/default_solve.jl:14
 [7] (::DiffEqBase.#kw##solve)(::Array{Any,1}, ::DiffEqBase.#solve, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::Void) at ./<missing>:0
 [8] #solve#1(::Bool, ::Array{Any,1}, ::Function, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}) at /Users/shoshievass/.julia/v0.6/DifferentialEquations/src/default_solve.jl:5
 [9] (::DiffEqBase.#kw##solve)(::Array{Any,1}, ::DiffEqBase.#solve, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#255{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}) at ./<missing>:0
 [10] getScalingAuctionEquilibrium(::Int64, ::Auction, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::StepRangeLen{Float64,Base.TwicePrecision{Float64},Base.TwicePrecision{Float64}}) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:223
 [11] getMinimalAuctionCFcomparison(::Auction, ::Int64, ::Int64) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:249
 [12] include_string(::String, ::String) at ./loading.jl:522

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 19, 2018, 12:00pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/27 "2018-08-19T12:00:29Z")

</div>

I messed up when I prepared the branch. Do `Pkg.update()` and try again.

---

<div class="post-metadata">

**Author:** ![shoshievass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shoshievass/32/3260_2.png) [@shoshievass](https://discourse.julialang.org/u/shoshievass)\
**Post date:** [August 19, 2018, 12:10pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/28 "2018-08-19T12:10:43Z")

</div>

I’m getting a different error now…

```julia
init u: 1405.6467627765828
t span: (1.7485750108291183, 1.0406724563290586)
UndefVarError: derivative not defined

Stacktrace:
 [1] calc_W!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}}}},#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}, ::OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}}, ::Float64, ::Bool, ::Bool) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/derivative_utils.jl:93
 [2] perform_step!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}}}},#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}, ::OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}}, ::Bool) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/perform_step/rosenbrock_perform_step.jl:1030
 [3] solve!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}}}},#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock5ConstantCache{DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},OrdinaryDiffEq.Rodas5ConstantCache{Float64,Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:341
 [4] #solve#1469(::Array{Any,1}, ::Function, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Type{Val{true}}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:7
 [5] solve(::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#133{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.Rodas5{0,false,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:6
 [6] getScalingAuctionEquilibrium(::Int64, ::Auction, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::StepRangeLen{Float64,Base.TwicePrecision{Float64},Base.TwicePrecision{Float64}}) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:221
 [7] getMinimalAuctionCFcomparison(::Auction, ::Int64, ::Int64) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:251
 [8] include_string(::String, ::String) at ./loading.jl:522

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 19, 2018, 12:11pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/29 "2018-08-19T12:11:58Z")

</div>

Aha, almost there. `Pkg.update()` hopefully one last time and then the Rosenbrock methods should be stepping correctly. Fingers crossed that’s all that’s necessary.

---

<div class="post-metadata">

**Author:** ![shoshievass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shoshievass/32/3260_2.png) [@shoshievass](https://discourse.julialang.org/u/shoshievass)\
**Post date:** [August 19, 2018, 12:14pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/30 "2018-08-19T12:14:03Z")

</div>

Same error as before (now trying with Rosenbrock23) ☹

```julia
init u: 1405.6467627765828
t span: (1.7485750108291183, 1.0406724563290586)
UndefVarError: derivative not defined

Stacktrace:
 [1] calc_W!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}}},#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}, ::OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}, ::Float64, ::Bool, ::Bool) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/derivative_utils.jl:90
 [2] perform_step!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}}},#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}, ::OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}, ::Bool) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/perform_step/rosenbrock_perform_step.jl:177
 [3] solve!(::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},Float64,Float64,Void,Float64,Float64,Float64,Array{Float64,1},DiffEqBase.ODESolution{Float64,1,Array{Float64,1},Void,Void,Array{Float64,1},Array{Array{Float64,1},1},DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem},OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType},OrdinaryDiffEq.InterpolationData{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Array{Float64,1},Array{Float64,1},Array{Array{Float64,1},1},OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}}}},#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,OrdinaryDiffEq.Rosenbrock23ConstantCache{Float64,DiffEqDiffTools.TimeDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void},DiffEqDiffTools.UDerivativeWrapper{#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64,Void}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,DiffEqBase.#ODE_DEFAULT_NORM,DiffEqBase.CallbackSet{Tuple{},Tuple{}},DiffEqBase.#ODE_DEFAULT_ISOUTOFDOMAIN,DiffEqBase.#ODE_DEFAULT_PROG_MESSAGE,DiffEqBase.#ODE_DEFAULT_UNSTABLE_CHECK,DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},DataStructures.BinaryHeap{Float64,DataStructures.GreaterThan},Void,Void,Int64,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Float64}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:341
 [4] #solve#1469(::Array{Any,1}, ::Function, ::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Type{Val{true}}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:7
 [5] solve(::DiffEqBase.ODEProblem{Float64,Float64,false,Void,#ode_multi_item_w_risk_aversion_subs#293{Auction,Array{Float64,1},Array{Float64,1},Array{Float64,1}},Void,Void,UniformScaling{Int64},DiffEqBase.StandardODEProblem}, ::OrdinaryDiffEq.Rosenbrock23{0,true,DiffEqBase.LinSolveFactorize{Base.LinAlg.#lufact!},DataType}) at /Users/shoshievass/.julia/v0.6/OrdinaryDiffEq/src/solve.jl:6
 [6] getScalingAuctionEquilibrium(::Int64, ::Auction, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::StepRangeLen{Float64,Base.TwicePrecision{Float64},Base.TwicePrecision{Float64}}) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:221
 [7] getMinimalAuctionCFcomparison(::Auction, ::Int64, ::Int64) at /Users/shoshievass/Git/Procurement_Risk_Aversion/julia_cost_estimation/counterfactual/aggregatedDataCF/quadprogCounterfactualFunctions.jl:251
 [8] include_string(::String, ::String) at ./loading.jl:522

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 19, 2018, 12:15pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/31 "2018-08-19T12:15:16Z")

</div>

Line 90 should now be `J = DiffEqDiffTools.finite_difference_derivative(uf,uprev)` if you `Pkg.update()` again (so no `derivative` call, oops). Maybe you did it before the branch updated online.

---

<div class="post-metadata">

**Author:** ![shoshievass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shoshievass/32/3260_2.png) [@shoshievass](https://discourse.julialang.org/u/shoshievass)\
**Post date:** [August 19, 2018, 12:25pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/32 "2018-08-19T12:25:16Z")

</div>

I think it might work now!!! Rosenbrock23() solved my example problem 😃 😃 😃

Thank you so, so much for the help!

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 19, 2018, 12:25pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/33 "2018-08-19T12:25:56Z")

</div>

No problem. This should be working without the special branch on v1.0, so when you upgrade I’ll just delete the extra branch.

---

<div class="post-metadata">

**Author:** ![shoshievass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shoshievass/32/3260_2.png) [@shoshievass](https://discourse.julialang.org/u/shoshievass)\
**Post date:** [August 19, 2018, 12:26pm UTC](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650/34 "2018-08-19T12:26:26Z")

</div>

Perfect! I’ll post here as soon as I do 🙂

[Previous page](https://discourse.julialang.org/t/domain-troubles-with-differential-equations-solver-with-non-auto-differentiable-function-inside-the-ode-def/13650.md?page=1)
