DifferentialEquations.jl icon indicating copy to clipboard operation
DifferentialEquations.jl copied to clipboard

Cannot use any of the ODEInterface.jl algorithms

Open MrSantiagoPrado opened this issue 5 years ago • 3 comments

I'm using Windows 64-bit and I can't get any of the methods in this package to work. I usually work in notebooks but below is a transcript from my terminal so the issues are clear:

               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.3.1 (2019-12-30)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> using DifferentialEquations
[ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]

julia> using ODEInterface

julia> @ODEInterface.import_huge

julia> loadODEsolvers()
ERROR: UndefVarError: loadODEsolvers not defined
Stacktrace:
 [1] top-level scope at REPL[4]:1

julia> loadODESolvers()
Dict{AbstractString,ODEInterface.SolverDLinfo} with 23 entries:
  "colnew_i32"  => SolverDLinfo("colnew_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"colnew_i32\", \"COLNEW_I32\", \"Colnew_i32\"]…
  "radau_i32"   => SolverDLinfo("radau_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"radau_i32\", \"RADAU_I32\", \"Radau_i32\"] in …
  "bvpsol"      => SolverDLinfo("bvpsol", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"bvpsol\", \"BVPSOL\", \"Bvpsol\"] in libpaths or …
  "seulex"      => SolverDLinfo("seulex", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"seulex\", \"SEULEX\", \"Seulex\"] in libpaths or …
  "odex_i32"    => SolverDLinfo("odex_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"odex_i32\", \"ODEX_I32\", \"Odex_i32\"] in libp…
  "seulex_i32"  => SolverDLinfo("seulex_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"seulex_i32\", \"SEULEX_I32\", \"Seulex_i32\"]…
  "bvp_m_proxy" => SolverDLinfo("bvp_m_proxy", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"bvp_m_proxy\", \"BVP_M_PROXY\", \"Bvp_m_prox…
  "dopri5_i32"  => SolverDLinfo("dopri5_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"dopri5_i32\", \"DOPRI5_I32\", \"Dopri5_i32\"]…
  "radau5_i32"  => SolverDLinfo("radau5_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"radau5_i32\", \"RADAU5_I32\", \"Radau5_i32\"]…
  "ddeabm_i32"  => SolverDLinfo("ddeabm_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"ddeabm_i32\", \"DDEABM_I32\", \"Ddeabm_i32\"]…
  "colnew"      => SolverDLinfo("colnew", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"colnew\", \"COLNEW\", \"Colnew\"] in libpaths or …
  "rodas_i32"   => SolverDLinfo("rodas_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"rodas_i32\", \"RODAS_I32\", \"Rodas_i32\"] in …
  "ddebdf_i32"  => SolverDLinfo("ddebdf_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"ddebdf_i32\", \"DDEBDF_I32\", \"Ddebdf_i32\"]…
  "dop853_i32"  => SolverDLinfo("dop853_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"dop853_i32\", \"DOP853_I32\", \"Dop853_i32\"]…
  "radau"       => SolverDLinfo("radau", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"radau\", \"RADAU\", \"Radau\"] in libpaths or in […
  "rodas"       => SolverDLinfo("rodas", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"rodas\", \"RODAS\", \"Rodas\"] in libpaths or in […
  "ddeabm"      => SolverDLinfo("ddeabm", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"ddeabm\", \"DDEABM\", \"Ddeabm\"] in libpaths or …
  "dop853"      => SolverDLinfo("dop853", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"dop853\", \"DOP853\", \"Dop853\"] in libpaths or …
  "ddebdf"      => SolverDLinfo("ddebdf", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"ddebdf\", \"DDEBDF\", \"Ddebdf\"] in libpaths or …
  "dopri5"      => SolverDLinfo("dopri5", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"dopri5\", \"DOPRI5\", \"Dopri5\"] in libpaths or …
  "odex"        => SolverDLinfo("odex", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"odex\", \"ODEX\", \"Odex\"] in libpaths or in [\"C:…
  "radau5"      => SolverDLinfo("radau5", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"radau5\", \"RADAU5\", \"Radau5\"] in libpaths or …
  "bvpsol_i32"  => SolverDLinfo("bvpsol_i32", "", Ptr{Nothing} @0x0000000000000000, (), ErrorException("Cannot find one of [\"bvpsol_i32\", \"BVPSOL_I32\", \"Bvpsol_i32\"]…

julia> function test(du,u,p,t)
       du[1]=u[1]
       end
test (generic function with 1 method)

julia> prob_test=ODEProblem(test,[1.0],(0.0,10.0))
ODEProblem with uType Array{Float64,1} and tType Float64. In-place: true
timespan: (0.0, 10.0)
u0: [1.0]

julia> sol=solve(prob_test,alg=radau())
ERROR: MethodError: no method matching radau()
Closest candidates are:
  radau(::Any, ::Real, ::Real, ::Array{T,1} where T, ::ODEInterface.AbstractOptionsODE) at C:\Users\13-AD008LA\.julia\packages\ODEInterface\lvq2F\src\Radau.jl:744
Stacktrace:
 [1] top-level scope at REPL[8]:1

If I try it in the notebook the error message is "Cannot find method(s) for radau! I've tried to loadODESolvers(), but it didn't work. Please check ODEInterface.help_solversupport() and call loadODESolvers and check also this output. For further information see also ODEInterface.help_install."

MrSantiagoPrado avatar Nov 24 '20 12:11 MrSantiagoPrado

xref https://github.com/luchr/ODEInterface.jl/issues/27

It seems like you don't have a working Fortran compiler? This is why we don't include ODEInterface by default: it requires specific compilers so you need to do a bit of extra work to get it installed.

ChrisRackauckas avatar Nov 24 '20 14:11 ChrisRackauckas

How do I install the Fortran compiler?

MrSantiagoPrado avatar Nov 24 '20 15:11 MrSantiagoPrado

https://github.com/SciML/ODEInterfaceDiffEq.jl#installation

ChrisRackauckas avatar Nov 24 '20 23:11 ChrisRackauckas