Fitting mechanistic-statistical models to data using Julia¶

1. Logistic model (pages 144-147 in Chapter VI of Roques (2013))¶

In [37]:
using Turing, DifferentialEquations, StatsPlots, LinearAlgebra, Random
In [38]:
Random.seed!(2023);
In [39]:
# temporal
n_time_points = 100
tspan = (0, 100)
t_domain = range(tspan[1], stop = tspan[2], length = n_time_points)
Out[39]:
0.0:1.0101010101010102:100.0
In [40]:
# define EDO
function logistic!(du, u, p, t)
    r = p[1]
    K = p[2]
    @. du = r * u * (1 - u / K)
end
Out[40]:
logistic! (generic function with 1 method)
In [41]:
# solve EDO 
p_true = [0.1, 10.0]
u0 = [1]
prob = ODEProblem(logistic!, u0, tspan, p_true)
sol = solve(prob, Tsit5(), saveat = t_domain)
Out[41]:
retcode: Success
Interpolation: 1st order linear
t: 100-element Vector{Float64}:
   0.0
   1.0101010101010102
   2.0202020202020203
   3.0303030303030303
   4.040404040404041
   5.05050505050505
   6.0606060606060606
   7.070707070707071
   8.080808080808081
   9.090909090909092
  10.1010101010101
  11.11111111111111
  12.121212121212121
   ⋮
  88.88888888888889
  89.8989898989899
  90.9090909090909
  91.91919191919192
  92.92929292929293
  93.93939393939394
  94.94949494949495
  95.95959595959596
  96.96969696969697
  97.97979797979798
  98.98989898989899
 100.0
u: 100-element Vector{Vector{Float64}}:
 [1.0]
 [1.0946529911509022]
 [1.1970734426996166]
 [1.3076696377347283]
 [1.4268280248106984]
 [1.554901386510067]
 [1.6922009584219584]
 [1.8389865833825403]
 [1.9954459462012706]
 [2.161688889055803]
 [2.33773691342166]
 [2.5235089017333587]
 [2.71880617917435]
 ⋮
 [9.987411858335232]
 [9.988622389787063]
 [9.98971887259961]
 [9.990710410412726]
 [9.991605771204895]
 [9.992413387293238]
 [9.993141355333503]
 [9.993797436320078]
 [9.994389055585977]
 [9.994923302802857]
 [9.995406931981]
 [9.995846361469324]
In [42]:
plot(sol)
Out[42]:
In [10]:
length(sol) # nb of interpolation points
Out[10]:
11
In [43]:
nb_sampling_point = 10
sol = solve(prob, Tsit5(); saveat = nb_sampling_point)
odedata = Array(sol) + 0.8 * randn(size(Array(sol)))
Out[43]:
1×11 Matrix{Float64}:
 1.08033  2.75114  4.53452  5.44553  …  9.33708  10.1415  11.5834  10.9851
In [12]:
length(sol)
Out[12]:
11
In [44]:
size(odedata)
Out[44]:
(1, 11)
In [45]:
# Plot simulation and noisy observations.
plot(sol; alpha = 0.3)
scatter!(sol.t, odedata'; label = "")
Out[45]:
In [46]:
@model function fitlogistic(data, prob)
    # prior for growth rate
    r ~ Uniform(0,1)
    # prior for carrying capacity
    K ~ Uniform(5,15)
    # prior for lik noise
    sigma ~ InverseGamma(2,3)

    # Simulate logistic model. 
    p = [r, K]
    predicted = solve(prob, Tsit5(); p = p, saveat = nb_sampling_point)

    # Observations.
    for i in 1:length(predicted)
        data[:, i] ~ MvNormal(predicted[i], sigma^2 * I)
    end
    return nothing
end
Out[46]:
fitlogistic (generic function with 2 methods)
In [47]:
model = fitlogistic(odedata, prob)
Out[47]:
DynamicPPL.Model{typeof(fitlogistic), (:data, :prob), (), (), Tuple{Matrix{Float64}, ODEProblem{Vector{Int64}, Tuple{Int64, Int64}, true, Vector{Float64}, ODEFunction{true, SciMLBase.AutoSpecialize, typeof(logistic!), 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}}, Tuple{}, DynamicPPL.DefaultContext}(fitlogistic, (data = [1.0803347028209778 2.7511439009477594 … 11.58337671678439 10.985141818577953], prob = ODEProblem{Vector{Int64}, Tuple{Int64, Int64}, true, Vector{Float64}, ODEFunction{true, SciMLBase.AutoSpecialize, typeof(logistic!), 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{true, SciMLBase.AutoSpecialize, typeof(logistic!), UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}(logistic!, UniformScaling{Bool}(true), nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing, nothing, SciMLBase.DEFAULT_OBSERVED, nothing, nothing), [1], (0, 100), [0.1, 10.0], Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}(), SciMLBase.StandardODEProblem())), NamedTuple(), DynamicPPL.DefaultContext())
In [48]:
# Sample 2 independent chains with forward-mode automatic differentiation (the default).
chain = sample(model, NUTS(), MCMCSerial(), 1000, 2; progress = true)
┌ Info: Found initial step size
└   ϵ = 0.4
Sampling (Chain 1 of 2): 100%|██████████████████████████| Time: 0:00:00
┌ Info: Found initial step size
└   ϵ = 0.05
Sampling (Chain 2 of 2): 100%|██████████████████████████| Time: 0:00:00
Out[48]:
Chains MCMC chain (1000×15×2 Array{Float64, 3}):

Iterations        = 501:1:1500
Number of chains  = 2
Samples per chain = 1000
Wall duration     = 3.34 seconds
Compute duration  = 3.05 seconds
parameters        = r, K, sigma
internals         = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size

Summary Statistics
  parameters      mean       std      mcse    ess_bulk   ess_tail      rhat    ⋯
      Symbol   Float64   Float64   Float64     Float64    Float64   Float64    ⋯

           r    0.0831    0.0079    0.0002   1106.0081   851.7571    1.0001    ⋯
           K   10.7191    0.4572    0.0138   1149.4509   953.1858    1.0003    ⋯
       sigma    0.8131    0.2172    0.0073    956.4978   995.1418    1.0003    ⋯
                                                                1 column omitted

Quantiles
  parameters      2.5%     25.0%     50.0%     75.0%     97.5% 
      Symbol   Float64   Float64   Float64   Float64   Float64 

           r    0.0696    0.0780    0.0825    0.0871    0.1010
           K    9.8382   10.4214   10.7137   11.0033   11.6775
       sigma    0.5207    0.6589    0.7751    0.9236    1.3292
In [49]:
plot(chain)
Out[49]:
In [19]:
length(chain[:,:,2])
Out[19]:
1000
In [50]:
plot(; legend=false)
posterior_samples = chain[[:r, :K]]
for p in eachrow(Array(posterior_samples))
    sol_p = solve(prob, Tsit5(); p = p, saveat = nb_sampling_point)
    plot!(sol_p; alpha = 0.1, color = "#BBBBBB")
end

# Plot simulation and noisy observations.
plot!(sol; linewidth=1)
scatter!(sol.t, odedata')
Out[50]:

2. Lotka-Volterra¶

https://turinglang.org/dev/tutorials/10-bayesian-differential-equations/

In [131]:
using Turing
using DifferentialEquations

# Load StatsPlots for visualizations and diagnostics.
using StatsPlots

using LinearAlgebra

# Set a seed for reproducibility.
using Random
Random.seed!(14);
In [132]:
# Define Lotka-Volterra model.
function lotka_volterra(du, u, p, t)
    # Model parameters.
    α, β, γ, δ = p
    # Current state.
    x, y = u

    # Evaluate differential equations.
    du[1] = (α - β * y) * x # prey
    du[2] = (δ * x - γ) * y # predator

    return nothing
end

# Define initial-value problem.
u0 = [1.0, 1.0]
p = [1.5, 1.0, 3.0, 1.0]
tspan = (0.0, 10.0)
prob = ODEProblem(lotka_volterra, u0, tspan, p)

# Plot simulation.
plot(solve(prob, Tsit5()))
Out[132]:
In [133]:
sol = solve(prob, Tsit5(); saveat=0.1)
odedata = Array(sol) + 0.8 * randn(size(Array(sol)))

# Plot simulation and noisy observations.
plot(sol; alpha=0.3)
scatter!(sol.t, odedata'; color=[1 2], label="")
Out[133]:
In [134]:
@model function fitlv(data, prob)
    # Prior distributions.
    σ ~ InverseGamma(2, 3)
    α ~ truncated(Normal(1.5, 0.5); lower=0.5, upper=2.5)
    β ~ truncated(Normal(1.2, 0.5); lower=0, upper=2)
    γ ~ truncated(Normal(3.0, 0.5); lower=1, upper=4)
    δ ~ truncated(Normal(1.0, 0.5); lower=0, upper=2)

    # Simulate Lotka-Volterra model. 
    p = [α, β, γ, δ]
    predicted = solve(prob, Tsit5(); p=p, saveat=0.1)

    # Observations.
    for i in 1:length(predicted)
        data[:, i] ~ MvNormal(predicted[i], σ^2 * I)
    end

    return nothing
end

model = fitlv(odedata, prob)

# Sample 3 independent chains with forward-mode automatic differentiation (the default).
chain = sample(model, NUTS(), MCMCSerial(), 1000, 3; progress=false)
┌ Info: Found initial step size
└   ϵ = 0.05
┌ Info: Found initial step size
└   ϵ = 0.025
┌ Info: Found initial step size
└   ϵ = 0.05
Out[134]:
Chains MCMC chain (1000×17×3 Array{Float64, 3}):

Iterations        = 501:1:1500
Number of chains  = 3
Samples per chain = 1000
Wall duration     = 32.79 seconds
Compute duration  = 32.75 seconds
parameters        = σ, α, β, γ, δ
internals         = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size

Summary Statistics
  parameters      mean       std      mcse   ess_bulk   ess_tail      rhat   e ⋯
      Symbol   Float64   Float64   Float64    Float64    Float64   Float64     ⋯

           σ    1.1956    0.5937    0.2409     9.5768    75.9085    1.6641     ⋯
           α    1.3888    0.1314    0.0470     9.7442   134.3824    1.6522     ⋯
           β    0.9531    0.0972    0.0282    15.2170    80.9827    1.3103     ⋯
           γ    2.4526    0.9556    0.3867     9.6552   110.7208    1.6632     ⋯
           δ    0.8818    0.2356    0.0936     9.6099    73.4278    1.6633     ⋯
                                                                1 column omitted

Quantiles
  parameters      2.5%     25.0%     50.0%     75.0%     97.5% 
      Symbol   Float64   Float64   Float64   Float64   Float64 

           σ    0.7108    0.7653    0.8046    1.9535    2.1785
           α    1.0802    1.2923    1.4404    1.4837    1.5503
           β    0.7186    0.9091    0.9796    1.0176    1.0891
           γ    1.0090    1.1603    3.0206    3.1626    3.4021
           δ    0.4783    0.5939    1.0067    1.0570    1.1459
In [135]:
plot(chain)
Out[135]:
In [136]:
plot(; legend=false)
posterior_samples = sample(chain[[:α, :β, :γ, :δ]], 300; replace=false)
for p in eachrow(Array(posterior_samples))
    sol_p = solve(prob, Tsit5(); p=p, saveat=0.1)
    plot!(sol_p; alpha=0.1, color="#BBBBBB")
end

# Plot simulation and noisy observations.
plot!(sol; color=[1 2], linewidth=1)
scatter!(sol.t, odedata'; color=[1 2])
Out[136]:
In [137]:
@model function fitlv2(data::AbstractVector, prob)
    # Prior distributions.
    σ ~ InverseGamma(2, 3)
    α ~ truncated(Normal(1.5, 0.5); lower=0.5, upper=2.5)
    β ~ truncated(Normal(1.2, 0.5); lower=0, upper=2)
    γ ~ truncated(Normal(3.0, 0.5); lower=1, upper=4)
    δ ~ truncated(Normal(1.0, 0.5); lower=0, upper=2)

    # Simulate Lotka-Volterra model but save only the second state of the system (predators).
    p = [α, β, γ, δ]
    predicted = solve(prob, Tsit5(); p=p, saveat=0.1, save_idxs=2)

    # Observations of the predators.
    data ~ MvNormal(predicted.u, σ^2 * I)

    return nothing
end

model2 = fitlv2(odedata[2, :], prob)

# Sample 3 independent chains.
chain2 = sample(model2, NUTS(0.45), MCMCSerial(), 5000, 3; progress=false)
┌ Info: Found initial step size
└   ϵ = 0.0125
┌ Info: Found initial step size
└   ϵ = 0.2
┌ Info: Found initial step size
└   ϵ = 0.0125
Out[137]:
Chains MCMC chain (5000×17×3 Array{Float64, 3}):

Iterations        = 1001:1:6000
Number of chains  = 3
Samples per chain = 5000
Wall duration     = 40.97 seconds
Compute duration  = 40.53 seconds
parameters        = σ, α, β, γ, δ
internals         = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size

Summary Statistics
  parameters      mean       std      mcse   ess_bulk   ess_tail      rhat   e ⋯
      Symbol   Float64   Float64   Float64    Float64    Float64   Float64     ⋯

           σ    0.8213    0.0563    0.0061    80.8510   103.0733    1.0577     ⋯
           α    1.6039    0.2068    0.0226    79.1243    90.9290    1.1160     ⋯
           β    1.1146    0.1562    0.0162    87.8429   163.0698    1.0976     ⋯
           γ    3.0183    0.3169    0.0362    78.0404   102.3699    1.1276     ⋯
           δ    0.8897    0.2503    0.0280    81.9192    96.0406    1.1075     ⋯
                                                                1 column omitted

Quantiles
  parameters      2.5%     25.0%     50.0%     75.0%     97.5% 
      Symbol   Float64   Float64   Float64   Float64   Float64 

           σ    0.7244    0.7846    0.8144    0.8549    0.9449
           α    1.2824    1.4553    1.5579    1.7340    2.0589
           β    0.8673    1.0052    1.0870    1.2067    1.4707
           γ    2.4245    2.7783    3.0395    3.2433    3.6498
           δ    0.4403    0.7025    0.9023    1.0526    1.3893
In [138]:
plot(; legend=false)
posterior_samples = sample(chain2[[:α, :β, :γ, :δ]], 300; replace=false)
for p in eachrow(Array(posterior_samples))
    sol_p = solve(prob, Tsit5(); p=p, saveat=0.1)
    plot!(sol_p; alpha=0.1, color="#BBBBBB")
end

# Plot simulation and noisy observations.
plot!(sol; color=[1 2], linewidth=1)
scatter!(sol.t, odedata'; color=[1 2])
Out[138]:

3. Reaction-diffusion 1D¶

https://github.com/lmaillere/Fisher-KPP

In [131]:
using MethodOfLines, 
      ModelingToolkit,
      DomainSets, 
      OrdinaryDiffEq, 
      Plots, 
      LaTeXStrings,
      SciMLBase
In [132]:
@parameters t x
Out[132]:
$$ \begin{equation} \left[ \begin{array}{c} t \\ x \\ \end{array} \right] \end{equation} $$
In [133]:
@parameters r D
Out[133]:
$$ \begin{equation} \left[ \begin{array}{c} r \\ D \\ \end{array} \right] \end{equation} $$
In [134]:
@variables u(..)
Out[134]:
1-element Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}}:
 u⋆
In [135]:
Dt = Differential(t)
Dx = Differential(x)
Dxx = Differential(x)^2
Out[135]:
Differential(x) ∘ Differential(x)
In [136]:
eq = Dt(u(t, x)) ~ r * u(t,x) * (1-u(t,x)) + D * Dxx(u(t,x))
Out[136]:
$$ \begin{equation} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x \right) = D \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x \right) + r u\left( t, x \right) \left( 1 - u\left( t, x \right) \right) \end{equation} $$
In [137]:
x_max = 30.0
t_max = 14.0
Out[137]:
14.0
In [138]:
domain = [x ∈ Interval(0.0, x_max),
          t ∈ Interval(0.0, t_max)]
Out[138]:
2-element Vector{Symbolics.VarDomainPairing}:
 Symbolics.VarDomainPairing(x, 0.0 .. 30.0)
 Symbolics.VarDomainPairing(t, 0.0 .. 14.0)
In [139]:
ic_bc = [u(0.0, x) ~ 0.0, # initial condition
         u(t, 0.0) ~ 1.0, # boundary condition
         u(t, x_max) ~ 0.0] # boundary condition
Out[139]:
$$ \begin{align} u\left( 0, x \right) =& 0 \\ u\left( t, 0 \right) =& 1 \\ u\left( t, 30 \right) =& 0 \end{align} $$
In [140]:
@named sys = PDESystem(eq, ic_bc, domain, [t, x], [u(t,x)], [r => 1.0, D => 1.0])
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[140]:
$$ \begin{align} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x \right) =& D \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x \right) + r u\left( t, x \right) \left( 1 - u\left( t, x \right) \right) \end{align} $$
In [79]:
?MOLFiniteDifference
search: MOLFiniteDifference

Out[79]:
MOLFiniteDifference(dxs, time=nothing;
                    approx_order = 2, advection_scheme = UpwindScheme(),
                    grid_align = CenterAlignedGrid(), kwargs...)

A discretization algorithm.

Arguments¶

  • dxs: A vector of pairs of parameters to the grid step in this dimension, i.e. [x=>0.2, y=>0.1]. For a non-uniform rectilinear grid, replace any or all of the step sizes with the grid you'd like to use with that variable, must be an AbstractVector but not a StepRangeLen.
  • time: Your choice of continuous variable, usually time. If time = nothing, then discretization yields a NonlinearProblem. Defaults to nothing.

Keyword Arguments¶

  • approx_order: The order of the derivative approximation.
  • advection_scheme: The scheme to be used to discretize advection terms, i.e. first order spatial derivatives and associated coefficients. Defaults to UpwindScheme(). WENOScheme() is also available, and is more stable and accurate at the cost of complexity.
  • grid_align: The grid alignment types. See CenterAlignedGrid() and EdgeAlignedGrid().
  • use_ODAE: If true, the discretization will use the ODAEproblem constructor. Defaults to false.
  • kwargs: Any other keyword arguments you want to pass to the ODEProblem.
In [145]:
dx = 0.5
discretization = MOLFiniteDifference([x => dx], t)
Out[145]:
MOLFiniteDifference{MethodOfLines.CenterAlignedGrid, MethodOfLines.ScalarizedDiscretization}(Dict{Num, Float64}(x => 0.5), t, 2, UpwindScheme(1), MethodOfLines.CenterAlignedGrid(), true, false, MethodOfLines.ScalarizedDiscretization(), true, Any[], Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}())
In [81]:
?discretize
search: discretize symbolic_discretize discretization discretediag

Out[81]:

No documentation found.

SciMLBase.discretize is a Function.

# 1 method for generic function "discretize" from SciMLBase:
 [1] discretize(pdesys::PDESystem, discretization::PDEBase.AbstractEquationSystemDiscretization; analytic, kwargs...)
     @ PDEBase ~/.julia/packages/PDEBase/jX5Yp/src/discretization_state.jl:55
In [146]:
prob = discretize(sys, discretization)
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[146]:
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
timespan: (0.0, 14.0)
u0: 59-element Vector{Float64}:
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 ⋮
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
In [143]:
sol = solve(prob, Tsit5(), saveat = 1)
Out[143]:
retcode: Success
Interpolation: Dict{Num, Interpolations.GriddedInterpolation{Float64, 2, Matrix{Float64}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}}}}
t: 15-element Vector{Float64}:
  0.0
  1.0
  2.0
  3.0
  4.0
  5.0
  6.0
  7.0
  8.0
  9.0
 10.0
 11.0
 12.0
 13.0
 14.0ivs: 2-element Vector{SymbolicUtils.BasicSymbolic{Real}}:
 t
 xdomain:([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0], 0.0:0.5:30.0)
u: Dict{Num, Matrix{Float64}} with 1 entry:
  u(t, x) => [1.0 0.0 … 0.0 0.0; 1.0 0.793196 … 9.86053e-49 0.0; … ; 1.0 0.9998…
In [147]:
gridx = sol[x]
gridt = sol[t]
solu = sol[u(t,x)]
# 15 time points, 61 interpolation points
Out[147]:
15×61 Matrix{Float64}:
 1.0  0.0       0.0       0.0       …   0.0           0.0          0.0
 1.0  0.793196  0.587955  0.399581      2.19667e-47   9.86053e-49  0.0
 1.0  0.898236  0.791246  0.674697     -9.01408e-34  -9.36527e-35  0.0
 1.0  0.946895  0.888317  0.82511       8.73613e-25   1.51342e-25  0.0
 1.0  0.971749  0.942264  0.906885      1.706e-19     3.99891e-20  0.0
 1.0  0.985661  0.970287  0.952693  …   7.14033e-16   1.99978e-16  0.0
 1.0  0.993099  0.984709  0.97714       3.78234e-13   1.19721e-13  0.0
 1.0  0.996465  0.992847  0.988455      5.45083e-11   1.88743e-11  0.0
 1.0  0.998158  0.996845  0.99408       3.22553e-9    1.196e-9     0.0
 1.0  0.999147  0.998467  0.997252      1.00578e-7    3.93426e-8   0.0
 1.0  0.999727  0.99903   0.999071  …   1.9397e-6     7.91999e-7   0.0
 1.0  0.999938  0.999419  0.999756      2.5707e-5     1.08759e-5   0.0
 1.0  0.999915  0.999841  0.999726      0.000250523   0.000109311  0.0
 1.0  0.999882  1.00008   0.999648      0.0018625     0.000836584  0.0
 1.0  1.00001   0.999912  1.00002       0.0106078     0.00491323   0.0
In [88]:
anim = @animate for i in eachindex(gridt)
    plot(gridx, solu[i, :],
         xlabel = "position "*L"$x$",
         ylabel = "population density "*L"$u$", 
         label = L"$u(x,t)$", 
         title = "t=$(gridt[i])")
end
Out[88]:
Animation("/var/folders/ln/jf2twlj12snbq000z6qq5y7m0000gn/T/jl_ivMUFj", ["000001.png", "000002.png", "000003.png", "000004.png", "000005.png", "000006.png", "000007.png", "000008.png", "000009.png", "000010.png", "000011.png", "000012.png", "000013.png", "000014.png", "000015.png"])
In [89]:
gif(anim, "fisherKPP.gif", fps = 10)
[ Info: Saved animation to /Users/oliviergimenez/Desktop/julia/fisherKPP.gif
Out[89]:

4. Reaction-diffusion 1D and inverse problem¶

In [337]:
using MethodOfLines, 
 ModelingToolkit,
 DomainSets, 
 OrdinaryDiffEq, 
 Plots, 
 LaTeXStrings,
 SciMLBase
In [338]:
@parameters t x
@parameters r D
@variables u(..)
Dt = Differential(t)
Dx = Differential(x)
Dxx = Differential(x)^2
eq = Dt(u(t, x)) ~ r * u(t,x) * (1-u(t,x)) + D * Dxx(u(t,x))
Out[338]:
$$ \begin{equation} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x \right) = D \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x \right) + r u\left( t, x \right) \left( 1 - u\left( t, x \right) \right) \end{equation} $$
In [339]:
x_max = 30.0
t_max = 14.0
domain = [x ∈ Interval(0.0, x_max),
 t ∈ Interval(0.0, t_max)]
ic_bc = [u(0.0, x) ~ 0.0,
 u(t, 0.0) ~ 1.0,
 u(t, x_max) ~ 0.0]
Out[339]:
$$ \begin{align} u\left( 0, x \right) =& 0 \\ u\left( t, 0 \right) =& 1 \\ u\left( t, 30 \right) =& 0 \end{align} $$
In [340]:
@named sys = PDESystem(eq, ic_bc, domain, [t, x], [u(t,x)], [r => 1.0, D => 1.0])
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[340]:
$$ \begin{align} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x \right) =& D \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x \right) + r u\left( t, x \right) \left( 1 - u\left( t, x \right) \right) \end{align} $$
In [341]:
dx = 0.5
discretization = MOLFiniteDifference([x => dx], t)
prob = discretize(sys, discretization)
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[341]:
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
timespan: (0.0, 14.0)
u0: 59-element Vector{Float64}:
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 ⋮
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
In [342]:
sol = solve(prob, Tsit5(), saveat = .5)
gridx = sol[x]
gridt = sol[t]
solu = sol[u(t,x)]
Out[342]:
29×61 Matrix{Float64}:
 1.0  0.0       0.0       0.0       …   0.0           0.0          0.0
 1.0  0.661949  0.372533  0.175506      6.36016e-65   1.0246e-66   0.0
 1.0  0.793196  0.587955  0.399581      2.19667e-47   9.86053e-49  0.0
 1.0  0.857935  0.710259  0.559605      5.20224e-38   4.1406e-39   0.0
 1.0  0.898236  0.791246  0.674697     -9.01408e-34  -9.36527e-35  0.0
 1.0  0.925729  0.848894  0.759092  …   7.91174e-29   1.00709e-29  0.0
 1.0  0.946895  0.888317  0.82511       8.73613e-25   1.51342e-25  0.0
 1.0  0.96109   0.919607  0.871737      7.70032e-22   1.59349e-22  0.0
 1.0  0.971749  0.942264  0.906885      1.706e-19     3.99891e-20  0.0
 1.0  0.980155  0.957806  0.934215      1.53587e-17   3.97838e-18  0.0
 1.0  0.985661  0.970287  0.952693  …   7.14033e-16   1.99978e-16  0.0
 1.0  0.989662  0.979299  0.966091      2.00321e-14   5.99415e-15  0.0
 1.0  0.993099  0.984709  0.97714       3.78234e-13   1.19721e-13  0.0
 ⋮                                  ⋱                              ⋮
 1.0  0.998978  0.997344  0.996606      1.92884e-8    7.35733e-9   0.0
 1.0  0.999147  0.998467  0.997252      1.00578e-7    3.93426e-8   0.0
 1.0  0.999411  0.998956  0.998106      4.65473e-7    1.8623e-7    0.0
 1.0  0.999727  0.99903   0.999071  …   1.9397e-6     7.91999e-7   0.0
 1.0  0.999628  0.9997    0.998843      7.36361e-6    3.06279e-6   0.0
 1.0  0.999938  0.999419  0.999756      2.5707e-5     1.08759e-5   0.0
 1.0  0.999819  0.999877  0.999437      8.31451e-5    3.57382e-5   0.0
 1.0  0.999915  0.999841  0.999726      0.000250523   0.000109311  0.0
 1.0  0.999991  0.999796  0.999954  …   0.000705812   0.000312476  0.0
 1.0  0.999882  1.00008   0.999648      0.0018625     0.000836584  0.0
 1.0  1.00008   0.999747  1.00021       0.00460091    0.00209759   0.0
 1.0  1.00001   0.999912  1.00002       0.0106078     0.00491323   0.0
In [343]:
anim = @animate for i in eachindex(gridt)
 plot(gridx, solu[i, :],
 xlabel = "position "*L"$x$",
 ylabel = "population density "*L"$u$", 
 label = L"$u(x,t)$", 
 title = "t=$(gridt[i])")
end

gif(anim, "fisherKPP.gif", fps = 10)
[ Info: Saved animation to /Users/oliviergimenez/Desktop/julia/fisherKPP.gif
Out[343]:
In [344]:
at_sampling_point = .8
sol = solve(prob, Tsit5(); saveat = at_sampling_point)
gridx = sol[x]
gridt = sol[t]
solu = sol[u(t,x)]

Array(solu)

# 19 census points, 61 interpolation points
Out[344]:
19×61 Matrix{Float64}:
 1.0  0.0       0.0       0.0       …  0.0          0.0          0.0
 1.0  0.753873  0.518324  0.318332     7.8167e-53   2.57243e-54  0.0
 1.0  0.867396  0.728965  0.585646     1.58775e-37  1.28038e-38  0.0
 1.0  0.922432  0.836307  0.746962     1.07168e-29  1.34476e-30  0.0
 1.0  0.953199  0.901813  0.845635     1.61957e-23  3.03844e-24  0.0
 1.0  0.971749  0.942264  0.906885  …  1.706e-19    3.99891e-20  0.0
 1.0  0.983483  0.96611   0.94555      1.64623e-16  4.47242e-17  0.0
 1.0  0.990759  0.979937  0.969403     3.71211e-14  1.12438e-14  0.0
 1.0  0.994762  0.988579  0.982718     3.13995e-12  1.03343e-12  0.0
 1.0  0.996891  0.993917  0.989884     1.31102e-10  4.60893e-11  0.0
 1.0  0.998158  0.996845  0.99408   …  3.22553e-9   1.196e-9     0.0
 1.0  0.998986  0.998262  0.996744     5.27513e-8   2.04347e-8   0.0
 1.0  0.999537  0.998869  0.998478     6.24212e-7   2.50799e-7   0.0
 1.0  0.99986   0.999164  0.99949      5.6787e-6    2.35356e-6   0.0
 1.0  0.999942  0.999511  0.999778     4.14758e-5   1.7661e-5    0.0
 1.0  0.999915  0.999841  0.999726  …  0.000250523  0.000109311  0.0
 1.0  0.999885  1.00005   0.999653     0.00127332   0.000568626  0.0
 1.0  0.999892  1.00012   0.99968      0.00546839   0.00250074   0.0
 1.0  1.00001   0.999912  1.00002      0.0106078    0.00491323   0.0
In [345]:
odedata = Array(solu) + 0.1 * randn(size(Array(solu)))
Out[345]:
19×61 Matrix{Float64}:
 0.989752  0.0778797  0.0746815  …   0.113776    0.0631454  -0.176798
 1.0509    0.90523    0.411123       0.0304264   0.0416632  -0.0339602
 1.01977   0.877469   0.712312      -0.0351814  -0.0758791  -0.00308122
 1.15073   1.01585    0.828484       0.0428092   0.0914753  -0.0317942
 0.92498   0.806051   0.825529      -0.0902627   0.116982   -0.0385188
 1.07422   0.901465   0.922472   …   0.0267386   0.0320955  -0.0178308
 1.05138   0.804692   0.901744      -0.0123798  -0.145651    0.0135973
 1.09534   1.00046    1.00135        0.113913    0.0612186   0.0186058
 0.962075  1.12602    0.923846       0.133212    0.0116924   0.131681
 1.11779   0.869601   1.0252        -0.130973    0.0922549   0.0786482
 1.06434   0.877431   1.01072    …  -0.0299408   0.221045   -0.00228316
 1.24258   0.970654   1.08794       -0.0783689  -0.107579    0.0717179
 1.11515   1.1261     1.02682       -0.0226427  -0.0910225  -0.0556359
 1.02211   0.861719   0.980845      -0.0399948   0.250509    0.12574
 1.0611    0.976917   0.945676       0.059925    0.21983    -0.0709906
 1.09812   0.962736   0.952698   …  -0.0141279  -0.0850423   0.0344704
 0.911526  0.934957   1.08402       -0.0776497   0.0303778   0.059643
 1.10892   0.939184   1.04715       -0.0322169   0.158816   -0.106315
 0.989208  0.898613   0.948759       0.195565    0.0946008   0.075303
In [346]:
sol.t
Out[346]:
19-element Vector{Float64}:
  0.0
  0.8
  1.6
  2.4
  3.2
  4.0
  4.8
  5.6
  6.4
  7.2
  8.0
  8.8
  9.6
 10.4
 11.2
 12.0
 12.8
 13.6
 14.0
In [347]:
odedata
Out[347]:
19×61 Matrix{Float64}:
 0.989752  0.0778797  0.0746815  …   0.113776    0.0631454  -0.176798
 1.0509    0.90523    0.411123       0.0304264   0.0416632  -0.0339602
 1.01977   0.877469   0.712312      -0.0351814  -0.0758791  -0.00308122
 1.15073   1.01585    0.828484       0.0428092   0.0914753  -0.0317942
 0.92498   0.806051   0.825529      -0.0902627   0.116982   -0.0385188
 1.07422   0.901465   0.922472   …   0.0267386   0.0320955  -0.0178308
 1.05138   0.804692   0.901744      -0.0123798  -0.145651    0.0135973
 1.09534   1.00046    1.00135        0.113913    0.0612186   0.0186058
 0.962075  1.12602    0.923846       0.133212    0.0116924   0.131681
 1.11779   0.869601   1.0252        -0.130973    0.0922549   0.0786482
 1.06434   0.877431   1.01072    …  -0.0299408   0.221045   -0.00228316
 1.24258   0.970654   1.08794       -0.0783689  -0.107579    0.0717179
 1.11515   1.1261     1.02682       -0.0226427  -0.0910225  -0.0556359
 1.02211   0.861719   0.980845      -0.0399948   0.250509    0.12574
 1.0611    0.976917   0.945676       0.059925    0.21983    -0.0709906
 1.09812   0.962736   0.952698   …  -0.0141279  -0.0850423   0.0344704
 0.911526  0.934957   1.08402       -0.0776497   0.0303778   0.059643
 1.10892   0.939184   1.04715       -0.0322169   0.158816   -0.106315
 0.989208  0.898613   0.948759       0.195565    0.0946008   0.075303
In [348]:
anim = @animate for i in eachindex(sol.t)
 plot(gridx, solu[i, :],
 alpha = 0.3,
 ylim = (-0.5,1.5))
 scatter!(gridt, odedata[i,:]; label = "")
end

gif(anim, "fisherKPP.gif", fps = 5)
[ Info: Saved animation to /Users/oliviergimenez/Desktop/julia/fisherKPP.gif
Out[348]:
In [349]:
size(solu)
Out[349]:
(19, 61)
In [231]:
@model function fitfisherKPP1D(data, prob)
 # prior for growth rate
 r ~ Uniform(0,2)
 # prior for carrying capacity
 D ~ Uniform(0,2)
 # prior for lik noise
 sigma ~ InverseGamma(2,3)

 # Simulate logistic model. 
 p = [r, D]
 predicted = solve(prob, Tsit5(); p = p, saveat = at_sampling_point)
 gridx = predicted[x]
 gridt = predicted[t]
 solu = predicted[u(t,x)]

 # Observations.
 for i in 1:size(solu)[1]
 data[i,:] ~ MvNormal(solu[i,:], sigma^2 * I)
 end
 return nothing
end
Out[231]:
fitfisherKPP1D (generic function with 2 methods)
In [232]:
model = fitfisherKPP1D(odedata, prob)
chain = sample(model, NUTS(), MCMCSerial(), 1000, 2; progress = true)
plot(chain)
┌ Info: Found initial step size
└   ϵ = 0.05
Sampling (Chain 1 of 2): 100%|██████████████████████████| Time: 0:00:34
┌ Info: Found initial step size
└   ϵ = 0.05
Sampling (Chain 2 of 2): 100%|██████████████████████████| Time: 0:00:36
Out[232]:

5. Reaction-diffusion 2D¶

https://github.com/luis-marques/2D-reaction-diffusion

In [233]:
using MethodOfLines, 
      ModelingToolkit,
      DomainSets, 
      OrdinaryDiffEq, 
      Plots, 
      LaTeXStrings
In [234]:
@parameters t x y
@parameters r D
@variables u(..)
Out[234]:
1-element Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}}:
 u⋆
In [235]:
Dt = Differential(t)
Dx = Differential(x)
Dxx = Differential(x)^2
Dy = Differential(y)
Dyy = Differential(y)^2
Out[235]:
Differential(y) ∘ Differential(y)
In [236]:
eq = Dt(u(t, x, y)) ~ r * u(t,x, y) * (1-u(t,x, y)) + D * (Dxx(u(t,x,y)) + Dyy(u(t,x,y)))
Out[236]:
$$ \begin{equation} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x, y \right) = D \left( \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x, y \right) + \frac{\mathrm{d}}{\mathrm{d}y} \frac{\mathrm{d}}{\mathrm{d}y} u\left( t, x, y \right) \right) + r u\left( t, x, y \right) \left( 1 - u\left( t, x, y \right) \right) \end{equation} $$
In [237]:
x_max = 30.0
y_max = 30.0
t_max = 14.0
Out[237]:
14.0
In [238]:
domain = [x ∈ Interval(0.0, x_max),
          y ∈ Interval(0.0, y_max),
          t ∈ Interval(0.0, t_max)]
Out[238]:
3-element Vector{Symbolics.VarDomainPairing}:
 Symbolics.VarDomainPairing(x, 0.0 .. 30.0)
 Symbolics.VarDomainPairing(y, 0.0 .. 30.0)
 Symbolics.VarDomainPairing(t, 0.0 .. 14.0)
In [263]:
ic_bc = [u(0.0, x, y) ~ 0.0,
         u(t, 0.0, y) ~ 1.0,
         u(t, x, 0.0) ~ 1.0]

# à revoir surement...

# u(t, 0.0) ~ 1.0,
# u(t, x_max) ~ 0.0]
Out[263]:
$$ \begin{align} u\left( 0, x, y \right) =& 0 \\ u\left( t, 0, y \right) =& 1 \\ u\left( t, x, 0 \right) =& 1 \end{align} $$
In [264]:
@named sys = PDESystem(eq, ic_bc, domain, [t, x, y], [u(t,x, y)], [r => 1.0, D => 1.0])
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[264]:
$$ \begin{align} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x, y \right) =& D \left( \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x, y \right) + \frac{\mathrm{d}}{\mathrm{d}y} \frac{\mathrm{d}}{\mathrm{d}y} u\left( t, x, y \right) \right) + r u\left( t, x, y \right) \left( 1 - u\left( t, x, y \right) \right) \end{align} $$
In [265]:
dx = 1.5
dy = 1.5
discretization = MOLFiniteDifference([x => dx, y => dy], t)
Out[265]:
MOLFiniteDifference{MethodOfLines.CenterAlignedGrid, MethodOfLines.ScalarizedDiscretization}(Dict{Num, Float64}(y => 1.5, x => 1.5), t, 2, UpwindScheme(1), MethodOfLines.CenterAlignedGrid(), true, false, MethodOfLines.ScalarizedDiscretization(), true, Any[], Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}())
In [266]:
prob = discretize(sys, discretization)
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[266]:
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
timespan: (0.0, 14.0)
u0: 400-element Vector{Float64}:
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 ⋮
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
In [267]:
sol = solve(prob, Tsit5(), saveat = 1)
Out[267]:
retcode: Success
Interpolation: Dict{Num, Interpolations.GriddedInterpolation{Float64, 3, Array{Float64, 3}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}}}}
t: 15-element Vector{Float64}:
  0.0
  1.0
  2.0
  3.0
  4.0
  5.0
  6.0
  7.0
  8.0
  9.0
 10.0
 11.0
 12.0
 13.0
 14.0ivs: 3-element Vector{SymbolicUtils.BasicSymbolic{Real}}:
 t
 x
 ydomain:([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0], 0.0:1.5:30.0, 0.0:1.5:30.0)
u: Dict{Num, Array{Float64, 3}} with 1 entry:
  u(t, x, y) => [0.0 1.0 … 1.0 1.0; 0.0 1.0 … 1.0 1.0; … ; 0.0 1.0 … 1.0 1.0; 0…
In [271]:
gridx = sol[x]
gridy = sol[y]
gridt = sol[t]
solu = sol[u(t,x,y)];
In [104]:
?heatmap
search: heatmap heatmap! plots_heatmap plots_heatmap! HYPREAlgorithm

Out[104]:
heatmap(x,y,z)
heatmap!(x,y,z)

Plot a heatmap of the rectangular array z.

Keyword arguments¶

  • aspect_ratio::Union{Real, Symbol}: Plot area is resized so that 1 y-unit is the same size as aspect_ratio x-units. With :none, images inherit aspect ratio of the plot area. Use :equal for unit aspect ratio. Aliases: (:aspectratios, :aspectratio, :aspectratios, :axisratio, :axisratio, :ratio).

Example¶

julia> heatmap(randn(10,10))
In [269]:
anim = @animate for i in eachindex(gridt)
    heatmap(gridx, gridy, solu[i, :, :], label = L"$u(x,y,t)$", xlabel="position "*L"$x$", ylabel="position "*L"$y$", title="population density at t=$(gridt[i])", color=:viridis)
end
Out[269]:
Animation("/var/folders/ln/jf2twlj12snbq000z6qq5y7m0000gn/T/jl_Xd9ffV", ["000001.png", "000002.png", "000003.png", "000004.png", "000005.png", "000006.png", "000007.png", "000008.png", "000009.png", "000010.png", "000011.png", "000012.png", "000013.png", "000014.png", "000015.png"])
In [270]:
gif(anim, "fisherKPP2D.gif", fps = 10)
[ Info: Saved animation to /Users/oliviergimenez/Desktop/julia/fisherKPP2D.gif
Out[270]:

6. Reaction-diffusion 2D w/ inverse problem¶

In [350]:
using MethodOfLines, 
      ModelingToolkit,
      DomainSets, 
      OrdinaryDiffEq, 
      Plots, 
      LaTeXStrings
In [351]:
@parameters t x y
@parameters r D
@variables u(..)
Out[351]:
1-element Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}}:
 u⋆
In [352]:
Dt = Differential(t)
Dx = Differential(x)
Dxx = Differential(x)^2
Dy = Differential(y)
Dyy = Differential(y)^2
Out[352]:
Differential(y) ∘ Differential(y)
In [353]:
eq = Dt(u(t, x, y)) ~ r * u(t,x, y) * (1-u(t,x, y)) + D * (Dxx(u(t,x,y)) + Dyy(u(t,x,y)))
Out[353]:
$$ \begin{equation} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x, y \right) = D \left( \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x, y \right) + \frac{\mathrm{d}}{\mathrm{d}y} \frac{\mathrm{d}}{\mathrm{d}y} u\left( t, x, y \right) \right) + r u\left( t, x, y \right) \left( 1 - u\left( t, x, y \right) \right) \end{equation} $$
In [354]:
x_max = 30.0
y_max = 30.0
t_max = 14.0
Out[354]:
14.0
In [355]:
domain = [x ∈ Interval(0.0, x_max),
          y ∈ Interval(0.0, y_max),
          t ∈ Interval(0.0, t_max)]
Out[355]:
3-element Vector{Symbolics.VarDomainPairing}:
 Symbolics.VarDomainPairing(x, 0.0 .. 30.0)
 Symbolics.VarDomainPairing(y, 0.0 .. 30.0)
 Symbolics.VarDomainPairing(t, 0.0 .. 14.0)
In [356]:
ic_bc = [u(0.0, x, y) ~ 0.0,
         u(t, 0.0, y) ~ 1.0,
         u(t, x, 0.0) ~ 1.0]

# à revoir surement...

# u(t, 0.0) ~ 1.0,
# u(t, x_max) ~ 0.0]
Out[356]:
$$ \begin{align} u\left( 0, x, y \right) =& 0 \\ u\left( t, 0, y \right) =& 1 \\ u\left( t, x, 0 \right) =& 1 \end{align} $$
In [357]:
@named sys = PDESystem(eq, ic_bc, domain, [t, x, y], [u(t,x, y)], [r => 1.0, D => 1.0])
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[357]:
$$ \begin{align} \frac{\mathrm{d}}{\mathrm{d}t} u\left( t, x, y \right) =& D \left( \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} u\left( t, x, y \right) + \frac{\mathrm{d}}{\mathrm{d}y} \frac{\mathrm{d}}{\mathrm{d}y} u\left( t, x, y \right) \right) + r u\left( t, x, y \right) \left( 1 - u\left( t, x, y \right) \right) \end{align} $$
In [371]:
dx = 1.5
dy = 1.5
discretization = MOLFiniteDifference([x => dx, y => dy], t)
Out[371]:
MOLFiniteDifference{MethodOfLines.CenterAlignedGrid, MethodOfLines.ScalarizedDiscretization}(Dict{Num, Float64}(y => 1.5, x => 1.5), t, 2, UpwindScheme(1), MethodOfLines.CenterAlignedGrid(), true, false, MethodOfLines.ScalarizedDiscretization(), true, Any[], Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}())
In [372]:
prob = discretize(sys, discretization)
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
┌ Warning: : no method matching get_unit for arguments (Pair{Num, Float64},).
└ @ ModelingToolkit ~/.julia/packages/ModelingToolkit/BsHty/src/systems/validation.jl:154
Out[372]:
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
timespan: (0.0, 14.0)
u0: 400-element Vector{Float64}:
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 ⋮
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
 0.0
In [373]:
sol = solve(prob, Tsit5(), saveat = 1)
Out[373]:
retcode: Success
Interpolation: Dict{Num, Interpolations.GriddedInterpolation{Float64, 3, Array{Float64, 3}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}}}}
t: 15-element Vector{Float64}:
  0.0
  1.0
  2.0
  3.0
  4.0
  5.0
  6.0
  7.0
  8.0
  9.0
 10.0
 11.0
 12.0
 13.0
 14.0ivs: 3-element Vector{SymbolicUtils.BasicSymbolic{Real}}:
 t
 x
 ydomain:([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0], 0.0:1.5:30.0, 0.0:1.5:30.0)
u: Dict{Num, Array{Float64, 3}} with 1 entry:
  u(t, x, y) => [0.0 1.0 … 1.0 1.0; 0.0 1.0 … 1.0 1.0; … ; 0.0 1.0 … 1.0 1.0; 0…
In [374]:
gridx = sol[x]
gridy = sol[y]
gridt = sol[t]
solu = sol[u(t,x,y)];
In [104]:
?heatmap
search: heatmap heatmap! plots_heatmap plots_heatmap! HYPREAlgorithm

Out[104]:
heatmap(x,y,z)
heatmap!(x,y,z)

Plot a heatmap of the rectangular array z.

Keyword arguments¶

  • aspect_ratio::Union{Real, Symbol}: Plot area is resized so that 1 y-unit is the same size as aspect_ratio x-units. With :none, images inherit aspect ratio of the plot area. Use :equal for unit aspect ratio. Aliases: (:aspectratios, :aspectratio, :aspectratios, :axisratio, :axisratio, :ratio).

Example¶

julia> heatmap(randn(10,10))
In [375]:
anim = @animate for i in eachindex(gridt)
    heatmap(gridx, gridy, solu[i, :, :], label = L"$u(x,y,t)$", xlabel="position "*L"$x$", ylabel="position "*L"$y$", title="population density at t=$(gridt[i])", color=:viridis)
end
Out[375]:
Animation("/var/folders/ln/jf2twlj12snbq000z6qq5y7m0000gn/T/jl_VZfVyL", ["000001.png", "000002.png", "000003.png", "000004.png", "000005.png", "000006.png", "000007.png", "000008.png", "000009.png", "000010.png", "000011.png", "000012.png", "000013.png", "000014.png", "000015.png"])
In [376]:
gif(anim, "fisherKPP2D.gif", fps = 10)
[ Info: Saved animation to /Users/oliviergimenez/Desktop/julia/fisherKPP2D.gif
Out[376]:
In [377]:
at_sampling_point = .8
sol = solve(prob, Tsit5(); saveat = at_sampling_point)
Out[377]:
retcode: Success
Interpolation: Dict{Num, Interpolations.GriddedInterpolation{Float64, 3, Array{Float64, 3}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}}}}
t: 19-element Vector{Float64}:
  0.0
  0.8
  1.6
  2.4
  3.2
  4.0
  4.8
  5.6
  6.4
  7.2
  8.0
  8.8
  9.6
 10.4
 11.2
 12.0
 12.8
 13.6
 14.0ivs: 3-element Vector{SymbolicUtils.BasicSymbolic{Real}}:
 t
 x
 ydomain:([0.0, 0.8, 1.6, 2.4, 3.2, 4.0, 4.8, 5.6, 6.4, 7.2, 8.0, 8.8, 9.6, 10.4, 11.2, 12.0, 12.8, 13.6, 14.0], 0.0:1.5:30.0, 0.0:1.5:30.0)
u: Dict{Num, Array{Float64, 3}} with 1 entry:
  u(t, x, y) => [0.0 1.0 … 1.0 1.0; 0.0 1.0 … 1.0 1.0; … ; 0.0 1.0 … 1.0 1.0; 0…
In [378]:
gridx = sol[x]
gridy = sol[y]
gridt = sol[t]
solu = sol[u(t,x,y)]
Array(solu)
# 19 census points, 21*21 interpolation points
Out[378]:
19×21×21 Array{Float64, 3}:
[:, :, 1] =
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0  1.0  1.0  1.0

[:, :, 2] =
 1.0  0.0       0.0       0.0       0.0       …  0.0       0.0       0.0
 1.0  0.559054  0.384487  0.350534  0.346311     0.345896  0.345896  0.345896
 1.0  0.814714  0.678964  0.622467  0.607534     0.604219  0.604219  0.604219
 1.0  0.917541  0.840417  0.791423  0.770824     0.762914  0.762914  0.762914
 1.0  0.961399  0.921355  0.888666  0.869677     0.858315  0.858315  0.858315
 1.0  0.981442  0.961299  0.942275  0.928458  …  0.916382  0.916382  0.916382
 1.0  0.990966  0.980962  0.970681  0.961997     0.951469  0.951469  0.951469
 1.0  0.995579  0.99064   0.985304  0.980317     0.972293  0.972293  0.972293
 1.0  0.997832  0.995402  0.992694  0.989985     0.98441   0.98441   0.98441
 1.0  0.998937  0.997744  0.996388  0.994965     0.991334  0.991334  0.991334
 1.0  0.999479  0.998894  0.99822   0.99749   …  0.99523   0.99523   0.99523
 1.0  0.999745  0.999458  0.999125  0.998755     0.997396  0.997396  0.997396
 1.0  0.999875  0.999735  0.999571  0.999385     0.998588  0.998588  0.998588
 1.0  0.999939  0.99987   0.99979   0.999697     0.999238  0.999238  0.999238
 1.0  0.99997   0.999936  0.999898  0.999851     0.999591  0.999591  0.999591
 1.0  0.999986  0.999969  0.99995   0.999926  …  0.999781  0.999781  0.999781
 1.0  0.999992  0.999987  0.999973  0.999966     0.999883  0.999883  0.999883
 1.0  0.999998  0.99999   0.999991  0.999979     0.999938  0.999938  0.999938
 1.0  0.999993  1.0       0.999981  0.999998     0.999955  0.999955  0.999955

[:, :, 3] =
 1.0  0.0       0.0       0.0        …  0.0        0.0        0.0
 1.0  0.384487  0.124168  0.0719502     0.0647253  0.0647253  0.0647253
 1.0  0.678964  0.408445  0.2839        0.241355   0.241355   0.241355
 1.0  0.840417  0.667673  0.541568      0.460143   0.460143   0.460143
 1.0  0.921355  0.829086  0.742555      0.650158   0.650158   0.650158
 1.0  0.961299  0.91497   0.865512   …  0.786296   0.786296   0.786296
 1.0  0.980962  0.958183  0.932221      0.874461   0.874461   0.874461
 1.0  0.99064   0.979519  0.96642       0.928248   0.928248   0.928248
 1.0  0.995402  0.989985  0.983496      0.959787   0.959787   0.959787
 1.0  0.997744  0.995106  0.99192       0.977779   0.977779   0.977779
 1.0  0.998894  0.997609  0.996051   …  0.987848   0.987848   0.987848
 1.0  0.999458  0.998833  0.998072      0.993406   0.993406   0.993406
 1.0  0.999735  0.99943   0.999059      0.996443   0.996443   0.996443
 1.0  0.99987   0.999722  0.999541      0.998091   0.998091   0.998091
 1.0  0.999936  0.999865  0.999776      0.998979   0.998979   0.998979
 1.0  0.999969  0.999935  0.99989    …  0.999456   0.999456   0.999456
 1.0  0.999987  0.999964  0.999951      0.999711   0.999711   0.999711
 1.0  0.99999   0.999989  0.999968      0.999847   0.999847   0.999847
 1.0  1.0       0.999974  1.0           0.999888   0.999888   0.999888

;;; … 

[:, :, 19] =
 1.0  0.0       0.0        0.0         …  0.0           0.0
 1.0  0.345896  0.0647253  0.00788989     1.45658e-24  -3.25297e-38
 1.0  0.604219  0.241355   0.0631452      2.86787e-19  -2.76006e-33
 1.0  0.762914  0.460143   0.196617       5.7399e-16   -2.49504e-30
 1.0  0.858315  0.650158   0.39047        1.25007e-13   2.43956e-26
 1.0  0.916382  0.786296   0.587555    …  7.8881e-12    1.24427e-22
 1.0  0.951469  0.874461   0.743678       2.39049e-10   5.20194e-20
 1.0  0.972293  0.928248   0.849434       4.40722e-9    2.20936e-17
 1.0  0.98441   0.959787   0.914692       5.59838e-8    3.9378e-15
 1.0  0.991334  0.977779   0.952764       5.34941e-7    3.64465e-13
 1.0  0.99523   0.987848   0.974228    …  4.08108e-6    2.06348e-11
 1.0  0.997396  0.993406   0.986075       2.58925e-5    7.87919e-10
 1.0  0.998588  0.996443   0.992526       0.0001405     2.16672e-8
 1.0  0.999238  0.998091   0.996008       0.000663968   4.47192e-7
 1.0  0.999591  0.998979   0.997876       0.00275525    6.86006e-6
 1.0  0.999781  0.999456   0.998873    …  0.0100105     7.24576e-5
 1.0  0.999883  0.999711   0.999403       0.031365      0.000463161
 1.0  0.999938  0.999847   0.999685       0.0817955     0.00053777
 1.0  0.999955  0.999888   0.999771       0.121013     -0.00365209

[:, :, 20] =
 1.0  0.0       0.0        0.0         …   0.0           0.0
 1.0  0.345896  0.0647253  0.00788989      1.50965e-40  -1.45658e-24
 1.0  0.604219  0.241355   0.0631452       1.78864e-35  -2.86787e-19
 1.0  0.762914  0.460143   0.196617       -4.51688e-32  -5.7399e-16
 1.0  0.858315  0.650158   0.39047        -4.18357e-28  -1.25007e-13
 1.0  0.916382  0.786296   0.587555    …  -4.02437e-24  -7.8881e-12
 1.0  0.951469  0.874461   0.743678       -1.90414e-21  -2.39049e-10
 1.0  0.972293  0.928248   0.849434       -8.75294e-19  -4.40722e-9
 1.0  0.98441   0.959787   0.914692       -1.96715e-16  -5.59838e-8
 1.0  0.991334  0.977779   0.952764       -2.36613e-14  -5.34941e-7
 1.0  0.99523   0.987848   0.974228    …  -1.75094e-12  -4.08109e-6
 1.0  0.997396  0.993406   0.986075       -8.76724e-11  -2.5893e-5
 1.0  0.998588  0.996443   0.992526       -3.19529e-9   -0.000140518
 1.0  0.999238  0.998091   0.996008       -9.02349e-8   -0.000664457
 1.0  0.999591  0.998979   0.997876       -2.03461e-6   -0.00276557
 1.0  0.999781  0.999456   0.998873    …  -3.476e-5     -0.0101739
 1.0  0.999883  0.999711   0.999403       -0.00044906   -0.0333351
 1.0  0.999938  0.999847   0.999685       -0.00479958   -0.101483
 1.0  0.999955  0.999888   0.999771       -0.0150025    -0.180724

[:, :, 21] =
 1.0  0.0       0.0        0.0         …   0.0           0.0
 1.0  0.345896  0.0647253  0.00788989     -1.45658e-24  -2.91316e-24
 1.0  0.604219  0.241355   0.0631452      -2.86787e-19  -5.73573e-19
 1.0  0.762914  0.460143   0.196617       -5.7399e-16   -1.14798e-15
 1.0  0.858315  0.650158   0.39047        -1.25007e-13  -2.50014e-13
 1.0  0.916382  0.786296   0.587555    …  -7.8881e-12   -1.57762e-11
 1.0  0.951469  0.874461   0.743678       -2.39049e-10  -4.78098e-10
 1.0  0.972293  0.928248   0.849434       -4.40722e-9   -8.81444e-9
 1.0  0.98441   0.959787   0.914692       -5.59838e-8   -1.11968e-7
 1.0  0.991334  0.977779   0.952764       -5.34941e-7   -1.06988e-6
 1.0  0.99523   0.987848   0.974228    …  -4.08109e-6   -8.16222e-6
 1.0  0.997396  0.993406   0.986075       -2.5893e-5    -5.17872e-5
 1.0  0.998588  0.996443   0.992526       -0.000140518  -0.000281071
 1.0  0.999238  0.998091   0.996008       -0.000664457  -0.00132967
 1.0  0.999591  0.998979   0.997875       -0.00276557   -0.00554433
 1.0  0.999781  0.999456   0.998872    …  -0.0101739    -0.0205193
 1.0  0.999883  0.999711   0.999403       -0.0333351    -0.0683191
 1.0  0.999938  0.999847   0.999685       -0.101483     -0.216655
 1.0  0.999955  0.999888   0.999771       -0.180724     -0.404268
In [379]:
odedata = Array(solu) + 0.1 * randn(size(Array(solu)))
Out[379]:
19×21×21 Array{Float64, 3}:
[:, :, 1] =
  0.00162764  0.974478  1.04812   0.941642  …  1.08336   0.951266  1.03695
 -0.1171      1.00731   0.890001  1.08171      0.879244  0.938406  1.12653
 -0.0306385   1.16354   0.880585  0.957811     1.20552   0.818104  0.984274
  0.128517    1.00752   0.909556  1.02746      1.07032   1.01479   0.838147
 -0.172447    1.00516   0.980018  0.894918     1.06492   1.05474   0.934836
 -0.14719     1.01731   1.04208   1.06218   …  1.05459   0.954874  0.777825
  0.0540765   1.00464   0.805922  1.02141      0.9877    1.20122   1.09788
  0.0228466   1.04676   1.01426   1.02206      1.08539   1.08925   0.884514
  0.0854729   0.866774  0.951809  0.992776     0.750344  1.04042   0.891792
  0.0821194   1.01367   1.0308    0.813084     0.94074   0.953924  0.936898
  0.194426    1.01039   0.916651  0.979928  …  1.15141   0.914585  1.05135
 -0.14301     0.892655  1.06088   0.912304     1.06246   0.987147  1.04775
 -0.0273272   1.00907   1.12555   0.989477     1.03712   1.08243   1.19537
  0.083578    0.974022  1.05669   0.968664     0.997792  1.00951   1.13059
 -0.0690747   1.05873   1.00599   1.05078      1.00592   0.90011   0.904914
  0.12672     1.23566   0.822348  0.954122  …  0.976523  0.993405  1.04323
 -0.0228982   1.10871   1.14357   1.08867      1.07744   0.916757  1.04424
  0.028504    0.934869  0.790801  1.10096      1.03149   1.08244   0.898205
  0.0310409   0.832585  0.816817  0.868321     1.01231   1.2554    0.991658

[:, :, 2] =
 1.09621   0.00376418  -0.00592898  …  -0.163545  -0.182267  -0.0368365
 1.02455   0.592183     0.348741        0.337143   0.364651   0.311236
 0.998524  0.762131     0.71427         0.788556   0.687557   0.53032
 1.04268   0.960997     0.92286         0.795277   0.796861   0.738824
 1.07585   0.897117     0.916126        0.781864   0.822871   0.734971
 1.2465    1.04295      1.00802     …   0.923412   0.847194   0.993276
 1.08342   1.04167      0.890156        1.11944    0.929622   0.996438
 0.931798  1.04727      0.977237        0.900608   0.972423   0.978974
 0.97808   1.10163      1.23788         0.944347   1.03158    0.904947
 0.981533  0.947037     1.01602         1.07704    0.798499   1.03373
 1.19057   1.01893      0.891291    …   1.05824    1.04425    0.80059
 0.862904  1.1463       0.8896          1.05626    0.898941   0.890312
 0.850238  0.920053     1.11869         1.03499    0.987482   1.07509
 0.989097  0.918865     1.1627          0.985734   1.01421    1.11704
 1.11      1.05183      1.14081         0.912554   0.888553   1.01477
 1.17747   0.85998      0.950533    …   0.848222   1.02875    1.09276
 1.05697   1.24865      1.04148         0.902834   1.18071    1.18238
 0.822026  1.00391      1.08892         1.15553    0.996365   1.10421
 0.961409  1.02243      1.06379         0.986683   1.15281    1.06286

[:, :, 3] =
 0.915278  -0.00703432  -0.0256252  …   0.0579765  -0.0708409  -0.0654784
 0.847313   0.24124      0.0252586     -0.0330279   0.145752    0.128789
 1.14816    0.59298      0.363227       0.119061    0.178117    0.205472
 0.931436   0.909359     0.615694       0.49946     0.606728    0.36803
 0.949877   0.891392     0.770894       0.592039    0.622208    0.61392
 0.924844   0.810842     0.909603   …   0.73356     0.870661    0.675851
 1.0209     0.871972     0.918234       0.928345    0.961929    0.823108
 0.872645   0.92403      0.806925       0.898255    0.889463    0.944547
 0.936764   0.968117     1.05693        0.920561    0.934398    0.994607
 0.976492   0.826169     1.0079         0.792981    0.752176    0.948154
 1.1174     0.885656     0.9929     …   1.05306     0.972395    0.986714
 1.08402    1.21706      1.02589        1.06297     1.00282     0.904834
 0.976414   0.978013     0.959398       1.07524     1.21313     0.931887
 0.994951   1.13206      1.08296        0.901782    1.03354     0.910493
 1.03135    0.925702     0.90776        0.9834      0.896765    1.07876
 0.964017   1.03603      1.04725    …   1.09206     0.955873    0.9558
 1.26564    1.03836      0.935626       0.970259    0.81464     0.859407
 1.05616    0.988257     0.974057       1.0643      1.21536     1.10426
 1.14294    0.980428     1.00937        1.08068     1.09972     1.00819

;;; … 

[:, :, 19] =
 1.08266   0.0385152  -0.141312    0.0793918  …   0.0696863   -0.0571675
 1.0588    0.357847    0.0326733  -0.0194556      0.00423977   0.0928062
 0.754626  0.622011    0.183391    0.0736987     -0.0251202    0.0258325
 0.803745  0.715575    0.497181    0.159209      -0.137326     0.116847
 0.910479  0.911024    0.672961    0.55506        0.155897    -0.211949
 1.02922   0.779323    0.672776    0.578306   …  -0.00438036  -0.0291863
 1.11987   0.854895    0.671611    0.730069       0.0590853    0.0756228
 0.865968  0.916991    0.83009     0.87797        0.190064    -0.00112363
 0.807199  1.11388     0.939005    0.938308      -0.0492921   -0.121785
 0.882337  1.04294     0.927812    0.872466      -0.0479356    0.0485393
 1.08282   1.03882     0.982853    0.853506   …   0.158406     0.0475262
 0.964321  1.02064     0.981601    1.19156       -0.0346448   -0.0533896
 0.994587  1.00502     1.06259     0.875574      -0.0223614    0.134164
 1.03003   0.991624    0.995524    1.02835        0.0331695   -0.00910703
 1.13656   0.959947    1.03311     1.01744        0.0566212    0.0215347
 0.946448  1.17219     0.941604    0.957135   …  -0.140788    -0.105425
 1.005     0.959273    1.10296     0.946316      -0.027893    -0.0888065
 0.92507   0.972154    1.0837      1.07715        0.241965    -0.0861849
 1.16965   0.990163    0.755945    0.90719        0.178831     0.000918931

[:, :, 20] =
 1.07329   0.0510271  -0.144653   -0.0585976  …   0.0980998    0.0329803
 0.829933  0.339881    0.0824159   0.055867       0.0386706    0.0116841
 0.979772  0.44066     0.250721    0.0702411      0.0635789    0.0619767
 1.09524   0.669306    0.403863    0.432422      -0.0121681   -0.0421898
 0.978232  1.00495     0.667461    0.399355      -0.0159924    0.0304505
 0.967849  0.951266    0.826928    0.611718   …   0.0793844   -0.181902
 1.02008   1.01999     0.919644    0.805356      -0.072264     0.163098
 1.04548   0.99711     0.786865    1.08049       -0.107595    -0.0746302
 1.15172   1.04476     0.948656    1.06547        0.0838329    0.123451
 1.20537   1.1362      1.12465     1.0116        -0.0122148    0.0404888
 0.951517  0.985286    0.969784    1.04597    …  -0.106676    -0.260573
 0.980721  1.20898     0.95057     0.985225      -0.0446763   -0.0630855
 0.845356  1.07717     1.09117     1.01672       -0.0447715   -0.135571
 1.07821   1.12117     0.881719    0.95643        0.0482068   -0.0139626
 0.982725  0.991064    1.01225     1.01965        0.0396152   -0.0164634
 0.990003  0.948372    1.0927      1.10812    …  -0.00117869   0.0726262
 1.01047   1.05789     0.955887    0.859025      -0.087388     0.0649876
 0.927401  1.08492     0.818578    1.26923       -0.0501889   -0.168617
 1.13129   1.14503     0.830961    1.00597        0.10915     -0.0864821

[:, :, 21] =
 0.929424  -0.00232714  0.0816634  -0.0122763   …  -0.0404799    -0.0743381
 0.980573   0.390384    0.125723   -0.00366673     -0.0909082     0.0589135
 0.808328   0.584711    0.336156    0.262947       -0.0705182    -0.0125436
 1.00442    0.810066    0.591596    0.116188       -0.000353983  -0.0689899
 0.936897   0.913736    0.65637     0.539257        0.0785304     0.0107934
 0.938643   0.945128    0.858474    0.426089    …  -0.176629     -0.0674974
 0.916379   0.805655    0.758988    0.710252       -0.0610596    -0.0518067
 1.11722    1.10389     0.954771    0.859596        0.0236237    -0.0566386
 0.999448   0.975049    1.07469     0.844678       -0.232723     -0.0743865
 1.06061    1.0391      0.87634     0.902288       -0.0997095    -0.164866
 1.01181    0.878423    0.894428    0.998321    …   0.0879376     0.0763844
 0.960846   1.03066     1.12684     0.93269         0.0964963    -0.0113453
 0.885472   1.03748     1.03078     1.03878        -0.0614122    -0.0456767
 0.871232   0.944102    0.977217    1.01726        -0.162224      0.147784
 1.09824    0.762658    0.902143    1.01331        -0.0522773     0.031517
 1.08178    0.959997    1.09198     0.919501    …  -0.0731342     0.107547
 0.954489   1.02728     0.92303     1.03684         0.0956195     0.0954915
 0.928189   0.80548     1.02485     1.00461        -0.156725     -0.0717271
 0.921548   1.01002     1.08168     1.08183        -0.0912831    -0.367832
In [380]:
sol.t
Out[380]:
19-element Vector{Float64}:
  0.0
  0.8
  1.6
  2.4
  3.2
  4.0
  4.8
  5.6
  6.4
  7.2
  8.0
  8.8
  9.6
 10.4
 11.2
 12.0
 12.8
 13.6
 14.0
In [381]:
odedata
size(odedata)
Out[381]:
(19, 21, 21)
In [382]:
size(solu)
Out[382]:
(19, 21, 21)
In [385]:
solu[1,:,:]
Out[385]:
21×21 Matrix{Float64}:
 0.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0  1.0  1.0  1.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  …  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  …  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  …  0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0     0.0  0.0  0.0  0.0  0.0  0.0  0.0
 1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  …  0.0  0.0  0.0  0.0  0.0  0.0  0.0
In [387]:
@model function fitfisherKPP2D(data, prob)
 # prior for growth rate
 r ~ Uniform(0,2)
 # prior for carrying capacity
 D ~ Uniform(0,2)
 # prior for lik noise
 sigma ~ InverseGamma(2,3)

 # Simulate logistic model 
 p = [r, D]
 predicted = solve(prob, Tsit5(); p = p, saveat = at_sampling_point)
 gridx = predicted[x]
 gridy = predicted[y]
 gridt = predicted[t]
 solu = predicted[u(t,x,y)]

 # Observations
 for i in 1:size(solu)[1]
        for j in 1:size(solu)[2]
            for k in 1:size(solu)[3]
                data[i,j,k] ~ Normal(solu[i,j,k], sigma^2)
            end
        end
    end
 return nothing
end
Out[387]:
fitfisherKPP2D (generic function with 2 methods)
In [388]:
model = fitfisherKPP2D(odedata, prob)
chain = sample(model, NUTS(), MCMCSerial(), 1000, 2; progress = true)
plot(chain)
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.046973225526246, and step error estimate = 383.2947284711625. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.047434474312848, and step error estimate = 285.15110560349206. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.047434474312848, and step error estimate = 285.15110560349206. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.736737807105625, and step error estimate = 285.150996535252. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.420173282741256, and step error estimate = 285.1508988484901. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.138045890597244, and step error estimate = 285.15081256274954. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.060143704009667, and step error estimate = 285.150719894218. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.064719547967302, and step error estimate = 285.15094832663095. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.067272388430814, and step error estimate = 285.1509209450945. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.068615167123472, and step error estimate = 285.1510831906309. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069303162869595, and step error estimate = 285.1509202409809. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069651315929681, and step error estimate = 285.1509507203251. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069826430018017, and step error estimate = 285.15097445638145. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069914248134438, and step error estimate = 285.1510643326107. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069958219730381, and step error estimate = 285.15095298302157. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069980225146804, and step error estimate = 285.1511693175875. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069991229709276, and step error estimate = 285.15112480147195. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069996732814458, and step error estimate = 285.1510252083566. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069999485347964, and step error estimate = 285.150828349895. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000086123973, and step error estimate = 285.15041417839893. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070001549528572, and step error estimate = 285.15100050511865. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070001892921294, and step error estimate = 285.151177587371. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002065079526, and step error estimate = 285.15095127382654. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002151454059, and step error estimate = 285.1507822319657. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002194908124, and step error estimate = 285.15107526057136. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000221647871, and step error estimate = 285.1507007401804. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002226637069, and step error estimate = 285.15101751135035. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000223207419, and step error estimate = 285.1507248723677. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002234803699, and step error estimate = 285.1508987533194. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002236059507, and step error estimate = 285.15100197851734. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002236730144, and step error estimate = 285.1507813672547. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.0700022370744, and step error estimate = 285.1505934372174. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000223726244, and step error estimate = 285.1510907590674. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237348335, and step error estimate = 285.15088139431225. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000223738929, and step error estimate = 285.1508603543451. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237404863, and step error estimate = 285.1510296759142. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237415144, and step error estimate = 285.1507330676338. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237420255, and step error estimate = 285.1505154973106. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237422868, and step error estimate = 285.15101141030215. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237424132, and step error estimate = 285.15066504920105. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237424797, and step error estimate = 285.1511735128948. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425072, and step error estimate = 285.1511478668741. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425257, and step error estimate = 285.1508670397692. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425358, and step error estimate = 285.1508521502875. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000223742538, and step error estimate = 285.15104527334387. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425381, and step error estimate = 285.1508981925692. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425411, and step error estimate = 285.1507556058965. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425378, and step error estimate = 285.1506624636588. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000223742542, and step error estimate = 285.15110064956104. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07000223742542, and step error estimate = 285.15110064956104. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425415, and step error estimate = 285.1511217839178. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425415, and step error estimate = 285.1511217839178. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425415, and step error estimate = 285.1511217839178. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425415, and step error estimate = 285.1511217839178. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425415, and step error estimate = 285.1511217839178. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.070002237425435, and step error estimate = 285.1511361788306. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Info: Found initial step size
└   ϵ = 2.44140625e-5
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.047434474312848, and step error estimate = 285.15110560349206. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069685631360096, and step error estimate = 285.1510131161731. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069685631360096, and step error estimate = 285.1510131161731. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069685631360096, and step error estimate = 285.1510131161731. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.230523865423182, and step error estimate = 285.15101950875743. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.069685631360096, and step error estimate = 285.1510131161731. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07374283048159, and step error estimate = 285.1510705029576. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.07374283048159, and step error estimate = 285.1510705029576. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.091603390608329, and step error estimate = 285.1506068776965. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.091493317223085, and step error estimate = 285.15098341492796. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.130057455700257, and step error estimate = 285.15083612540644. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.091493317223085, and step error estimate = 285.15098341492796. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.164260364197663, and step error estimate = 285.1511223720566. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.2733781347517, and step error estimate = 285.1510637782874. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.402607167676603, and step error estimate = 285.1508176877533. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.548400250147589, and step error estimate = 285.15056411489394. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.708014292006345, and step error estimate = 285.1507843949821. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.882436892131418, and step error estimate = 285.1509638201984. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.164260364197663, and step error estimate = 285.1511223720566. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.21641417555636, and step error estimate = 285.15111837702705. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.332466968036535, and step error estimate = 285.15062268005664. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.48971888331806, and step error estimate = 285.1507157840791. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.678452593346517, and step error estimate = 285.1508023904209. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.894287247846378, and step error estimate = 285.150974315026. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.48971888331806, and step error estimate = 285.1507157840791. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.522909449798203, and step error estimate = 285.15084280802927. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.522909449798203, and step error estimate = 285.15084280802927. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.802334127850818, and step error estimate = 285.1509031954605. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.522909449798203, and step error estimate = 285.15084280802927. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.527001551899248, and step error estimate = 285.1504906417533. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.527001551899248, and step error estimate = 285.1504906417533. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.568055791510957, and step error estimate = 285.1508013507294. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.68410928634596, and step error estimate = 285.1508566665281. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.862994577765763, and step error estimate = 285.15124596320464. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.568055791510957, and step error estimate = 285.1508013507294. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.608462759702789, and step error estimate = 285.1508779320258. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.608462759702789, and step error estimate = 285.1508779320258. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.95777592906492, and step error estimate = 285.15089194813714. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.608462759702789, and step error estimate = 285.1508779320258. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.613081196460502, and step error estimate = 285.15112126425873. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.613201764208702, and step error estimate = 285.1506101858842. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.630177745665696, and step error estimate = 285.15078768903646. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.630177745665696, and step error estimate = 285.15078768903646. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.677013304190769, and step error estimate = 285.1505723370749. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.679984835158987, and step error estimate = 285.1508863082951. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.8184862712789, and step error estimate = 285.1508423853708. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.677013304190769, and step error estimate = 285.1505723370749. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.723584361060727, and step error estimate = 285.15083860190634. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.723584361060727, and step error estimate = 285.15083860190634. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.105423194194886, and step error estimate = 285.15106928905914. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.101860835929138, and step error estimate = 285.15081506650705. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.105423194194886, and step error estimate = 285.15106928905914. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.397078307755187, and step error estimate = 285.15049336036196. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.37879359848386, and step error estimate = 285.15105823747933. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.977736452752417, and step error estimate = 285.15107578385584. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.37879359848386, and step error estimate = 285.15105823747933. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):   3%|▊                         |  ETA: 0:15:28┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.487024638283245, and step error estimate = 285.15109457138055. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):   4%|█▏                        |  ETA: 0:16:49┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.11341662959405, and step error estimate = 285.150709185368. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):   7%|█▉                        |  ETA: 0:21:27┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.022884949751576, and step error estimate = 285.15099671701194. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):  10%|██▌                       |  ETA: 0:20:20┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.68108206379126, and step error estimate = 285.1510173328301. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):  15%|████                      |  ETA: 0:17:36┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.849790234706282, and step error estimate = 285.15115970375547. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):  17%|████▍                     |  ETA: 0:17:08┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=11.756760561051024, and step error estimate = 285.1506624634524. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):  18%|████▊                     |  ETA: 0:16:48┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.597216373293339, and step error estimate = 285.1508284927901. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):  24%|██████▎                   |  ETA: 0:15:42┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.672226119138225, and step error estimate = 285.15111800818084. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):  30%|███████▊                  |  ETA: 0:13:52┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=11.834337041113324, and step error estimate = 285.151061289413. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2):  31%|████████                  |  ETA: 0:13:49┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=11.54406575217546, and step error estimate = 285.1507899276882. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 1 of 2): 100%|██████████████████████████| Time: 0:21:36
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.795834708010691, and step error estimate = 285.1520209203952. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.795834708010691, and step error estimate = 285.1520209203952. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
┌ Info: Found initial step size
└   ϵ = 0.00625
┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=11.109795208106057, and step error estimate = 285.1512116796909. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):   4%|█                         |  ETA: 0:09:53┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.509449688436984, and step error estimate = 285.15060426262846. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):  10%|██▌                       |  ETA: 0:15:28┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=12.372387695370824, and step error estimate = 285.15078928814137. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):  17%|████▌                     |  ETA: 0:15:19┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.398387836796907, and step error estimate = 285.15101676680615. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):  20%|█████▏                    |  ETA: 0:15:29┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=11.773397362302642, and step error estimate = 285.150659821492. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):  21%|█████▌                    |  ETA: 0:15:06┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.678583176431468, and step error estimate = 285.151155689673. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):  22%|█████▊                    |  ETA: 0:15:14┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.819399142609841, and step error estimate = 285.150940552796. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):  23%|██████                    |  ETA: 0:15:02┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.93693323729982, and step error estimate = 285.15070471150517. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2):  31%|████████                  |  ETA: 0:13:25┌ Warning: dt(1.7763568394002505e-15) <= dtmin(1.7763568394002505e-15) at t=13.027311807938988, and step error estimate = 285.15091274597756. Aborting. There is either an error in your model specification or the true solution is unstable.
└ @ SciMLBase ~/.julia/packages/SciMLBase/szsYq/src/integrator_interface.jl:599
Sampling (Chain 2 of 2): 100%|██████████████████████████| Time: 0:23:40
Out[388]:
In [ ]: