@@ -41,17 +41,15 @@ function default_algorithm(prob::DiffEqBase.AbstractODEProblem{uType,tType,inpla
41
41
alg = BS3 ()
42
42
end
43
43
elseif :stiff ∈ alg_hints || mm # The problem is stiff
44
- if length (prob. u0) > 2000
44
+ if length (prob. u0) > 500
45
45
# Use Krylov method when huge!
46
- if callbacks && ! m
46
+ if ! mm
47
47
alg = CVODE_BDF (linear_solver= :GMRES )
48
- elseif ! callbacks
49
- alg = QNDF (autodiff= false ,linsolve= IterativeSolversJL_GMRES ())
50
- else
51
- alg = Rodas4 (autodiff= false )
48
+ elseif mm
49
+ alg = Rodas4 (autodiff= false ,linsolve= LinearSolve. KrylovJL_GMRES ())
52
50
end
53
- elseif length (prob. u0) > 100
54
- if callbacks && ! m
51
+ elseif length (prob. u0) > 50
52
+ if callbacks && ! mm
55
53
alg = CVODE_BDF ()
56
54
elseif ! callbacks
57
55
alg = QNDF (autodiff= false )
@@ -72,7 +70,9 @@ function default_algorithm(prob::DiffEqBase.AbstractODEProblem{uType,tType,inpla
72
70
alg = AutoVern9 (Rodas5 (autodiff= false ),lazy= ! callbacks)
73
71
end
74
72
elseif tol_level == :low_tol
75
- if length (prob. u0) > 100
73
+ if length (prob. u0) > 500
74
+ alg = AutoVern7 (Rodas4 (autodiff= false ,linsolve= LinearSolve. KrylovJL_GMRES ()),lazy= ! callbacks)
75
+ elseif length (prob. u0) > 50
76
76
alg = AutoVern7 (TRBDF2 (autodiff= false ),lazy= ! callbacks)
77
77
else
78
78
alg = AutoVern7 (Rodas4 (autodiff= false ),lazy= ! callbacks)
0 commit comments