Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use NonlinearSolveFirstOrder subpackages and use new CI #238

Merged
merged 44 commits into from
Nov 16, 2024

Conversation

ErikQQY
Copy link
Member

@ErikQQY ErikQQY commented Nov 7, 2024

Fix: #242
Fix: #243
Fix: #244

This PR should be able to fix lots of things:

  • BoundaryValueDiffEq now only uses first-order nonlinear solvers from NonlinearSolveFirstOrder, so the default polyalgs need updates, and LineSearches.jl is removed in favor of LineSearch.jl.
  • BoundaryValueDiffEq is now configured to pick up the latest sub-packages from the lib directory directly
  • Removed the __unsafe_nonlinearfunction and use NonlinearFunction everywhere
  • Ascher methods should expand valstr for the next iteration error estimate when the mesh is doubled, and a new test case is added
  • Reduced the precompile workload for FIRK methods

@ErikQQY ErikQQY closed this Nov 8, 2024
@ErikQQY ErikQQY reopened this Nov 8, 2024
@ErikQQY ErikQQY closed this Nov 13, 2024
@ErikQQY ErikQQY reopened this Nov 13, 2024
@ErikQQY
Copy link
Member Author

ErikQQY commented Nov 15, 2024

Alright, this PR is done, I can open a new PR to clean the git history. Seems BVPM2 wrapper error about StackOverFlowError:

Error in testset "BVPM2" on worker 8969:
Error During Test at /home/runner/work/BoundaryValueDiffEq.jl/BoundaryValueDiffEq.jl/test/wrappers/odeinterface_tests.jl:32
  Got exception outside of a @test
  StackOverflowError:
  Stacktrace:
    [1] bvpm2_solve(guess_obj::ODEInterface.Bvpm2, rhs::Function, bc::Function, opt::ODEInterface.OptionsODE; Drhs::Nothing, Dbc::Nothing)
      @ ODEInterface ~/.julia/packages/ODEInterface/RwRLn/src/Bvpm2.jl:1240
    [2] bvpm2_solve
      @ ~/.julia/packages/ODEInterface/RwRLn/src/Bvpm2.jl:1155 [inlined]
    [3] __solve(prob::SciMLBase.BVProblem{Vector{Float64}, Tuple{Float64, Float64}, true, false, Vector{Float64}, SciMLBase.BVPFunction{true, SciMLBase.FullSpecialize, true, typeof(Main.var"##ODEInterfaceWrapperTestSetup#230".ex7_f!), Tuple{typeof(Main.var"##ODEInterfaceWrapperTestSetup#230".ex7_2pbc1!), typeof(Main.var"##ODEInterfaceWrapperTestSetup#230".ex7_2pbc2!)}, LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, RecursiveArrayTools.ArrayPartition{Float64, Tuple{Vector{Float64}, Vector{Float64}}}, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing, Nothing, Dict{Any, Any}}, Nothing}, SciMLBase.TwoPointBVProblem{true}, @Kwargs{}}, alg::BoundaryValueDiffEq.BVPM2{Nothing}; dt::Float64, reltol::Float64, kwargs::@Kwargs{})
      @ BoundaryValueDiffEqODEInterfaceExt ~/work/BoundaryValueDiffEq.jl/BoundaryValueDiffEq.jl/ext/BoundaryValueDiffEqODEInterfaceExt.jl:85
    [4] __solve
      @ ~/work/BoundaryValueDiffEq.jl/BoundaryValueDiffEq.jl/ext/BoundaryValueDiffEqODEInterfaceExt.jl:26 [inlined]
    [5] #solve_call#44
      @ ~/.julia/packages/DiffEqBase/HW4ge/src/solve.jl:632 [inlined]
    [6] solve_call
      @ ~/.julia/packages/DiffEqBase/HW4ge/src/solve.jl:589 [inlined]
    [7] #solve_up#53
      @ ~/.julia/packages/DiffEqBase/HW4ge/src/solve.jl:1120 [inlined]
    [8] solve_up
      @ ~/.julia/packages/DiffEqBase/HW4ge/src/solve.jl:1099 [inlined]
    [9] #solve#51
      @ ~/.julia/packages/DiffEqBase/HW4ge/src/solve.jl:1036 [inlined]
   [10] top-level scope
      @ ~/work/BoundaryValueDiffEq.jl/BoundaryValueDiffEq.jl/test/wrappers/odeinterface_tests.jl:38
   [11] eval
      @ ./boot.jl:430 [inlined]
   [12] #93
      @ ~/.julia/packages/ReTestItems/ecp6j/src/ReTestItems.jl:1067 [inlined]
   [13] with_source_path(f::ReTestItems.var"#93#97"{Expr}, path::String)
      @ ReTestItems ~/.julia/packages/ReTestItems/ecp6j/src/ReTestItems.jl:885
   [14] (::ReTestItems.var"#92#96"{TestItem, String, Expr, Expr})()
      @ ReTestItems ~/.julia/packages/ReTestItems/ecp6j/src/ReTestItems.jl:1067
   [15] redirect_stdio(f::ReTestItems.var"#92#96"{TestItem, String, Expr, Expr}; stdin::Nothing, stderr::IOContext{IOStream}, stdout::IOContext{IOStream})
      @ Base ./stream.jl:1439
   [16] redirect_stdio
      @ ./stream.jl:1402 [inlined]
   [17] _redirect_logs(f::ReTestItems.var"#92#96"{TestItem, String, Expr, Expr}, target::IOStream)
      @ ReTestItems ~/.julia/packages/ReTestItems/ecp6j/src/log_capture.jl:124
   [18] #31
      @ ~/.julia/packages/ReTestItems/ecp6j/src/log_capture.jl:107 [inlined]
   [19] open(::ReTestItems.var"#31#32"{ReTestItems.var"#92#96"{TestItem, String, Expr, Expr}}, ::String, ::Vararg{String}; kwargs::@Kwargs{})
      @ Base ./io.jl:410
   [20] open
      @ ./io.jl:407 [inlined]
   [21] _redirect_logs
      @ ~/.julia/packages/ReTestItems/ecp6j/src/log_capture.jl:107 [inlined]
   [22] macro expansion
      @ ~/.julia/packages/ReTestItems/ecp6j/src/macros.jl:82 [inlined]
   [23] runtestitem(ti::TestItem, ctx::ReTestItems.TestContext; test_end_expr::Expr, logs::Symbol, verbose_results::Bool, finish_test::Bool, catch_test_error::Bool, failfast::Bool)
      @ ReTestItems ~/.julia/packages/ReTestItems/ecp6j/src/ReTestItems.jl:1064
   [24] top-level scope
      @ none:1
   [25] eval
      @ ./boot.jl:430 [inlined]
   [26] execute
      @ ~/.julia/packages/ReTestItems/ecp6j/src/workers.jl:332 [inlined]
   [27] (::ReTestItems.Workers.var"#22#23"{Sockets.TCPSocket, ReentrantLock, ReTestItems.Workers.Request})()
      @ ReTestItems.Workers ~/.julia/packages/ReTestItems/ecp6j/src/workers.jl:346

while the wrappers algorithms have not been touched, I am not sure where this problem come from, also this error can't be reproduced in a local environment🤔

@ChrisRackauckas
Copy link
Member

Expanded seem to fail?

@ErikQQY
Copy link
Member Author

ErikQQY commented Nov 16, 2024

Should be ready now

@ChrisRackauckas ChrisRackauckas merged commit 501766c into SciML:master Nov 16, 2024
30 of 36 checks passed
@ChrisRackauckas
Copy link
Member

Remember to tag

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants