Skip to content

Commit

Permalink
Merge 3e054df into 107ff7c
Browse files Browse the repository at this point in the history
  • Loading branch information
YingboMa committed Mar 18, 2019
2 parents 107ff7c + 3e054df commit 0790f1c
Show file tree
Hide file tree
Showing 5 changed files with 130 additions and 190 deletions.
147 changes: 38 additions & 109 deletions src/algorithms.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ abstract type OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD} <: OrdinaryDiffEq
abstract type OrdinaryDiffEqImplicitAlgorithm{CS,AD} <: OrdinaryDiffEqAlgorithm end
abstract type OrdinaryDiffEqNewtonAlgorithm{CS,AD} <: OrdinaryDiffEqImplicitAlgorithm{CS,AD} end
abstract type OrdinaryDiffEqRosenbrockAlgorithm{CS,AD} <: OrdinaryDiffEqImplicitAlgorithm{CS,AD} end
const NewtonAlgorithm = Union{OrdinaryDiffEqNewtonAlgorithm,OrdinaryDiffEqNewtonAdaptiveAlgorithm}
const RosenbrockAlgorithm = Union{OrdinaryDiffEqRosenbrockAlgorithm,OrdinaryDiffEqRosenbrockAdaptiveAlgorithm}

abstract type OrdinaryDiffEqExponentialAlgorithm <: OrdinaryDiffEqAlgorithm end
abstract type OrdinaryDiffEqAdaptiveExponentialAlgorithm <: OrdinaryDiffEqAdaptiveAlgorithm end
Expand Down Expand Up @@ -293,7 +295,7 @@ struct CNAB2{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAlgorithm{CS,AD}
extrapolant::Symbol
new_jac_conv_bound::T2
end
CNAB2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
CNAB2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:linear,new_jac_conv_bound = 1e-3) =
CNAB2{chunk_size,autodiff,typeof(linsolve),typeof(nlsolve),typeof(diff_type),
Expand All @@ -307,7 +309,7 @@ struct CNLF2{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAlgorithm{CS,AD}
extrapolant::Symbol
new_jac_conv_bound::T2
end
CNLF2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
CNLF2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:linear,new_jac_conv_bound = 1e-3) =
CNLF2{chunk_size,autodiff,typeof(linsolve),typeof(nlsolve),typeof(diff_type),
Expand All @@ -323,7 +325,7 @@ struct QNDF1{CS,AD,F,F2,FDT,T2,κType} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{
kappa::κType
controller::Symbol
end
QNDF1(;chunk_size=0,autodiff=true,diff_type=Val{:central},
QNDF1(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:linear,new_jac_conv_bound = 1e-3,kappa = -0.1850,
controller = :PI) =
Expand All @@ -342,7 +344,7 @@ struct QNDF2{CS,AD,F,F2,FDT,T2,κType} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{
kappa::κType
controller::Symbol
end
QNDF2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
QNDF2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:linear,new_jac_conv_bound = 1e-3,kappa = -1//9,
controller = :PI) =
Expand All @@ -364,7 +366,7 @@ struct QNDF{CS,AD,F,F2,FDT,K,T,T2,κType} <: OrdinaryDiffEqNewtonAdaptiveAlgorit
kappa::κType
controller::Symbol
end
Base.@pure QNDF(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Base.@pure QNDF(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),κ=nothing,tol=nothing,
extrapolant=:linear,new_jac_conv_bound = 1e-3,kappa=promote(-0.1850,-1//9,-0.0823,-0.0415,0),
controller = :Standard) =
Expand All @@ -384,7 +386,7 @@ struct SBDF{CS,AD,F,F2,FDT,K,T,T2} <: OrdinaryDiffEqNewtonAlgorithm{CS,AD}
new_jac_conv_bound::T2
order::Int
end
SBDF(order;chunk_size=0,autodiff=true,diff_type=Val{:central},
SBDF(order;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),κ=nothing,tol=nothing,
extrapolant=:linear,new_jac_conv_bound = 1e-3) =
SBDF{chunk_size,autodiff,typeof(linsolve),typeof(nlsolve),typeof(diff_type),
Expand Down Expand Up @@ -429,7 +431,7 @@ struct IRKC{CS,AD,F,F2,FDT,K,T,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
IRKC(;chunk_size=0,autodiff=true,diff_type=Val{:central},
IRKC(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),κ=nothing,tol=nothing,
extrapolant=:linear,new_jac_conv_bound = 1e-3,controller = :PI) =
IRKC{chunk_size,autodiff,typeof(linsolve),typeof(nlsolve),typeof(diff_type),typeof(κ),typeof(tol),
Expand Down Expand Up @@ -485,7 +487,7 @@ struct RadauIIA5{CS,AD,F,FDT,T2,Tol} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS
min_iter::Int
controller::Symbol
end
RadauIIA5(;chunk_size=0,autodiff=true,diff_type=Val{:central},
RadauIIA5(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,
extrapolant=:dense,new_jac_conv_bound=1e-3,
controller=:Predictive=nothing,
Expand All @@ -509,7 +511,7 @@ struct ImplicitEuler{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm
new_jac_conv_bound::T2
controller::Symbol
end
ImplicitEuler(;chunk_size=0,autodiff=true,diff_type=Val{:central},
ImplicitEuler(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:constant,new_jac_conv_bound=1e-3,
controller=:PI) =
Expand All @@ -525,7 +527,7 @@ struct ImplicitMidpoint{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAlgorithm{CS,A
extrapolant::Symbol
new_jac_conv_bound::T2
end
ImplicitMidpoint(;chunk_size=0,autodiff=true,diff_type=Val{:central},
ImplicitMidpoint(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:linear,new_jac_conv_bound=1e-3) =
ImplicitMidpoint{chunk_size,autodiff,typeof(linsolve),typeof(nlsolve),typeof(diff_type),
Expand All @@ -540,7 +542,7 @@ struct Trapezoid{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,
new_jac_conv_bound::T2
controller::Symbol
end
Trapezoid(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Trapezoid(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -557,7 +559,7 @@ struct TRBDF2{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,AD}
new_jac_conv_bound::T2
controller::Symbol
end
TRBDF2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
TRBDF2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -574,7 +576,7 @@ struct SDIRK2{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,AD}
new_jac_conv_bound::T2
controller::Symbol
end
SDIRK2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
SDIRK2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -591,7 +593,7 @@ struct SSPSDIRK2{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAlgorithm{CS,AD} # No
new_jac_conv_bound::T2
controller::Symbol
end
SSPSDIRK2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
SSPSDIRK2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:constant,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -608,7 +610,7 @@ struct Kvaerno3{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
Kvaerno3(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Kvaerno3(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -625,7 +627,7 @@ struct KenCarp3{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
KenCarp3(;chunk_size=0,autodiff=true,diff_type=Val{:central},
KenCarp3(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -644,7 +646,7 @@ struct Cash4{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,AD}
embedding::Int
controller::Symbol
end
Cash4(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Cash4(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI,embedding=3) =
Expand All @@ -661,7 +663,7 @@ struct Hairer4{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,AD
new_jac_conv_bound::T2
controller::Symbol
end
Hairer4(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Hairer4(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -678,7 +680,7 @@ struct Hairer42{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
Hairer42(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Hairer42(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -695,7 +697,7 @@ struct Kvaerno4{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
Kvaerno4(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Kvaerno4(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -712,7 +714,7 @@ struct Kvaerno5{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
Kvaerno5(;chunk_size=0,autodiff=true,diff_type=Val{:central},
Kvaerno5(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -729,7 +731,7 @@ struct KenCarp4{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
KenCarp4(;chunk_size=0,autodiff=true,diff_type=Val{:central},
KenCarp4(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -746,7 +748,7 @@ struct KenCarp5{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,A
new_jac_conv_bound::T2
controller::Symbol
end
KenCarp5(;chunk_size=0,autodiff=true,diff_type=Val{:central},
KenCarp5(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
Expand All @@ -761,101 +763,28 @@ struct ESDIRK54I8L2SA{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorith
diff_type::FDT
extrapolant::Symbol
new_jac_conv_bound::T2
controller::Symbol
end
ESDIRK54I8L2SA(;chunk_size=0,autodiff=true,diff_type=Val{:central},
ESDIRK54I8L2SA(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:linear,new_jac_conv_bound = 1e-3,
controller = :PI) =
ESDIRK54I8L2SA{chunk_size,autodiff,typeof(linsolve),typeof(nlsolve),typeof(diff_type),
typeof(new_jac_conv_bound)}(linsolve,nlsolve,diff_type,extrapolant,new_jac_conv_bound)
typeof(new_jac_conv_bound)}(linsolve,nlsolve,diff_type,extrapolant,new_jac_conv_bound,controller)

################################################################################

# Rosenbrock Methods

struct Rosenbrock23{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Rosenbrock23(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Rosenbrock23{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Rosenbrock32{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Rosenbrock32(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Rosenbrock32{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct ROS3P{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
ROS3P(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = ROS3P{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Rodas3{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Rodas3(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Rodas3{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct RosShamp4{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
RosShamp4(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = RosShamp4{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Veldd4{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Veldd4(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Veldd4{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Velds4{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Velds4(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Velds4{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct GRK4T{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
GRK4T(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = GRK4T{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct GRK4A{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
GRK4A(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = GRK4A{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Ros4LStab{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Ros4LStab(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Ros4LStab{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Rodas4{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Rodas4(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Rodas4{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Rodas42{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Rodas42(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Rodas42{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Rodas4P{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
Rodas4P(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Rodas4P{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct Rodas5{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
for Alg in [:Rosenbrock23, :Rosenbrock32, :ROS3P, :Rodas3, :RosShamp4, :Veldd4, :Velds4, :GRK4T, :GRK4A, :Ros4LStab, :Rodas4, :Rodas42, :Rodas4P, :Rodas5]
@eval begin
struct $Alg{CS,AD,F,FDT} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
linsolve::F
diff_type::FDT
end
$Alg(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = $Alg{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)
end
end
Rodas5(;chunk_size=0,autodiff=true,diff_type=Val{:central},linsolve=DEFAULT_LINSOLVE) = Rodas5{chunk_size,autodiff,typeof(linsolve),typeof(diff_type)}(linsolve,diff_type)

struct GeneralRosenbrock{CS,AD,F,TabType} <: OrdinaryDiffEqRosenbrockAdaptiveAlgorithm{CS,AD}
tableau::TabType
Expand Down Expand Up @@ -929,7 +858,7 @@ struct ABDF2{CS,AD,F,F2,FDT,K,T,T2} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS,
new_jac_conv_bound::T2
controller::Symbol
end
ABDF2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
ABDF2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
κ=nothing,tol=nothing,linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
smooth_est=true,extrapolant=:linear,new_jac_conv_bound=1e-3,
controller=:PI) =
Expand All @@ -953,7 +882,7 @@ struct MEBDF2{CS,AD,F,F2,FDT,T2} <: OrdinaryDiffEqNewtonAlgorithm{CS,AD}
extrapolant::Symbol
new_jac_conv_bound::T2
end
MEBDF2(;chunk_size=0,autodiff=true,diff_type=Val{:central},
MEBDF2(;chunk_size=0,autodiff=true,diff_type=Val{:forward},
linsolve=DEFAULT_LINSOLVE,nlsolve=NLNewton(),
extrapolant=:constant,new_jac_conv_bound=1e-3) =
MEBDF2{chunk_size,autodiff,typeof(linsolve),typeof(nlsolve),typeof(diff_type),
Expand Down

0 comments on commit 0790f1c

Please sign in to comment.