I am trying to run the following code but I get the following error when I run the remake
command at the end:
ERROR: MethodError: Cannot
convert
an object of type Pair{SymbolicUtils.BasicSymbolic{Real}, Float64} to an object of type Float64
I suspect the reason is the outdated version of ModelingToolkit.jl (current version v8.75.0). However, when I try to update I get the following:
┌ Warning: attempting to remove probably stale pidfile
│ path = “C:\Users\name\.julia\compiled\v1.10\LanguageServer\ite7n_OKxyi.ji.pidfile”
└ @ FileWatching.Pidfile C:\Users\name.julia\juliaup\julia-1.10.2+0.x64.w64.mingw32\share\julia\stdlib\v1.10\FileWatching\src\pidfile.jl:244
Precompiling project…
Progress [> ] 0/1
◓ LanguageServer Waiting for background task / IO / timer. Interrupt to inspect
This issue also affects the update of other packages, such as Catalyst, DiffEqCallbacks, SteadyStateDiffEq, StructuralIdentifiability. How can I resolve this issue?
using DifferentialEquations
using SBMLToolkit
using ModelingToolkit
SBMLToolkit.checksupport_file("toy_model_sbml.xml")
mdl = readSBML("toy_model_sbml.xml", doc -> begin
set_level_and_version(3, 2)(doc)
convert_promotelocals_expandfuns(doc)
end);
rn = ReactionSystem(mdl);
odesys = convert(ODESystem, rn);
T=300.0;
tspan = (0.0, T);
prob = ODEProblem(odesys, Float64[], tspan, Float64[]);
defs = ModelingToolkit.defaults(odesys);
getval(v) = defs[v];
pmap = parameters(odesys) .=> getval.(parameters(odesys));
u0map = states(odesys) .=> getval.(states(odesys));
p = getval.(parameters(odesys));
p[1] = 10.0 ;
for (idx, param) in enumerate(p)
pmap[idx] = pmap[idx][1] => param
end
prob2 = remake(prob; p=pmap, u0=u0map);