Skip to content

Commit 20e4799

Browse files
update constructor and format repo
1 parent fe9f6f6 commit 20e4799

File tree

3 files changed

+76
-41
lines changed

3 files changed

+76
-41
lines changed

src/problems/bvp_problems.jl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,8 @@ struct SecondOrderBVProblem{uType, tType, isinplace, nlls, P, F, PT, K} <:
320320
problem_type::PT
321321
kwargs::K
322322

323-
@add_kwonly function SecondOrderBVProblem{iip}(f::DynamicalBVPFunction{iip, TP}, u0, tspan,
323+
@add_kwonly function SecondOrderBVProblem{iip}(
324+
f::DynamicalBVPFunction{iip, TP}, u0, tspan,
324325
p = NullParameters(); problem_type = nothing, nlls = nothing,
325326
kwargs...) where {iip, TP}
326327
_u0 = prepare_initial_state(u0)
@@ -331,16 +332,19 @@ struct SecondOrderBVProblem{uType, tType, isinplace, nlls, P, F, PT, K} <:
331332
typeof(problem_type), typeof(kwargs)}(f, _u0, _tspan, p, problem_type, kwargs)
332333
end
333334

334-
function SecondOrderBVProblem{iip}(f, bc, u0, tspan, p = NullParameters(); kwargs...) where {iip}
335+
function SecondOrderBVProblem{iip}(
336+
f, bc, u0, tspan, p = NullParameters(); kwargs...) where {iip}
335337
SecondOrderBVProblem(DynamicalBVPFunction{iip}(f, bc), u0, tspan, p; kwargs...)
336338
end
337339
end
338340

339341
function SecondOrderBVProblem(f, bc, u0, tspan, p = NullParameters(); kwargs...)
340342
iip = isinplace(f, 5)
341-
return SecondOrderBVProblem{iip}(DynamicalBVPFunction{iip}(f, bc), u0, tspan, p; kwargs...)
343+
return SecondOrderBVProblem{iip}(
344+
DynamicalBVPFunction{iip}(f, bc), u0, tspan, p; kwargs...)
342345
end
343346

344-
function SecondOrderBVProblem(f::DynamicalBVPFunction, u0, tspan, p = NullParameters(); kwargs...)
347+
function SecondOrderBVProblem(
348+
f::DynamicalBVPFunction, u0, tspan, p = NullParameters(); kwargs...)
345349
return SecondOrderBVProblem{isinplace(f)}(f, u0, tspan, p; kwargs...)
346-
end
350+
end

src/scimlfunctions.jl

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2142,7 +2142,8 @@ For more details on this argument, see the ODEFunction documentation.
21422142
21432143
The fields of the DynamicalBVPFunction type directly match the names of the inputs.
21442144
"""
2145-
struct DynamicalBVPFunction{iip, specialize, twopoint, F, BF, TMM, Ta, Tt, TJ, BCTJ, JVP, VJP,
2145+
struct DynamicalBVPFunction{
2146+
iip, specialize, twopoint, F, BF, TMM, Ta, Tt, TJ, BCTJ, JVP, VJP,
21462147
JP, BCJP, BCRP, SP, TW, TWt, TPJ, O, TCV, BCTCV,
21472148
SYS} <: AbstractBVPFunction{iip, twopoint}
21482149
f::F
@@ -3763,7 +3764,8 @@ OptimizationFunction(args...; kwargs...) = OptimizationFunction{true}(args...; k
37633764

37643765
function OptimizationFunction{iip}(f, adtype::AbstractADType = NoAD();
37653766
grad = nothing, hess = nothing, hv = nothing,
3766-
cons = nothing, cons_j = nothing, cons_h = nothing,
3767+
cons = nothing, cons_j = nothing, cons_jvp = nothing,
3768+
cons_vjp = nothing, cons_h = nothing,
37673769
hess_prototype = nothing,
37683770
cons_jac_prototype = __has_jac_prototype(f) ?
37693771
f.jac_prototype : nothing,
@@ -3785,7 +3787,8 @@ function OptimizationFunction{iip}(f, adtype::AbstractADType = NoAD();
37853787
sys = sys_or_symbolcache(sys, syms, paramsyms)
37863788
OptimizationFunction{iip, typeof(adtype), typeof(f), typeof(grad), typeof(hess),
37873789
typeof(hv),
3788-
typeof(cons), typeof(cons_j), typeof(cons_h),
3790+
typeof(cons), typeof(cons_j), typeof(cons_jvp),
3791+
typeof(cons_vjp), typeof(cons_h),
37893792
typeof(hess_prototype),
37903793
typeof(cons_jac_prototype), typeof(cons_hess_prototype),
37913794
typeof(observed),
@@ -3794,7 +3797,8 @@ function OptimizationFunction{iip}(f, adtype::AbstractADType = NoAD();
37943797
typeof(cons_jac_colorvec), typeof(cons_hess_colorvec),
37953798
typeof(lag_hess_colorvec)
37963799
}(f, adtype, grad, hess,
3797-
hv, cons, cons_j, cons_h,
3800+
hv, cons, cons_j, cons_jvp,
3801+
cons_vjp, cons_h,
37983802
hess_prototype, cons_jac_prototype,
37993803
cons_hess_prototype, observed, expr, cons_expr, sys,
38003804
lag_h, lag_hess_prototype, hess_colorvec, cons_jac_colorvec,
@@ -3992,7 +3996,6 @@ function DynamicalBVPFunction{iip, specialize, twopoint}(f, bc;
39923996
colorvec = __has_colorvec(f) ? f.colorvec : nothing,
39933997
bccolorvec = __has_colorvec(bc) ? bc.colorvec : nothing,
39943998
sys = __has_sys(f) ? f.sys : nothing) where {iip, specialize, twopoint}
3995-
39963999
if mass_matrix === I && f isa Tuple
39974000
mass_matrix = ((I for i in 1:length(f))...,)
39984001
end
@@ -4100,7 +4103,7 @@ function DynamicalBVPFunction{iip, specialize, twopoint}(f, bc;
41004103
_f = prepare_function(f)
41014104

41024105
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))
4103-
4106+
41044107
if specialize === NoSpecialize
41054108
DynamicalBVPFunction{iip, specialize, twopoint, Any, Any, Any, Any, Any,
41064109
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any,
@@ -4132,11 +4135,11 @@ function DynamicalBVPFunction{iip}(f, bc; twopoint::Union{Val, Bool} = Val(false
41324135
end
41334136
DynamicalBVPFunction{iip}(f::DynamicalBVPFunction, bc; kwargs...) where {iip} = f
41344137
function DynamicalBVPFunction(f, bc; twopoint::Union{Val, Bool} = Val(false), kwargs...)
4135-
DynamicalBVPFunction{isinplace(f, 5), FullSpecialize, _unwrap_val(twopoint)}(f, bc; kwargs...)
4138+
DynamicalBVPFunction{isinplace(f, 5), FullSpecialize, _unwrap_val(twopoint)}(
4139+
f, bc; kwargs...)
41364140
end
41374141
DynamicalBVPFunction(f::DynamicalBVPFunction; kwargs...) = f
41384142

4139-
41404143
function IntegralFunction{iip, specialize}(f, integrand_prototype) where {iip, specialize}
41414144
_f = prepare_function(f)
41424145
IntegralFunction{iip, specialize, typeof(_f), typeof(integrand_prototype)}(_f,

test/function_building_error_messages.jl

Lines changed: 56 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -706,24 +706,35 @@ DynamicalBVPFunction(dbfiip, dbciip, jac = dbjac, bcjac = dbcjac)
706706
DynamicalBVPFunction(dbfoop, dbcoop, jac = dbjac, bcjac = dbcjac)
707707

708708
dbWfact(du, u, t) = [1.0]
709-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, Wfact = dbWfact)
710-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, Wfact = dbWfact)
709+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
710+
dbfiip, dbciip, Wfact = dbWfact)
711+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
712+
dbfoop, dbciip, Wfact = dbWfact)
711713
dbWfact(du, u, p, t) = [1.0]
712-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, Wfact = dbWfact)
713-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, Wfact = dbWfact)
714+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
715+
dbfiip, dbciip, Wfact = dbWfact)
716+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
717+
dbfoop, dbciip, Wfact = dbWfact)
714718
dbWfact(du, u, p, gamma, t) = [1.0]
715-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfiip, dbciip, Wfact = dbWfact)
716-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, Wfact = dbWfact)
719+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
720+
dbfiip, dbciip, Wfact = dbWfact)
721+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
722+
dbfoop, dbciip, Wfact = dbWfact)
717723
dbWfact(ddu, du, u, p, gamma, t) = [1.0]
718724
DynamicalBVPFunction(dbfiip, dbciip, Wfact = dbWfact)
719-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, Wfact = dbWfact)
725+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
726+
dbfoop, dbciip, Wfact = dbWfact)
720727

721728
dbWfact_t(du, u, t) = [1.0]
722-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, Wfact_t = dbWfact_t)
723-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, Wfact_t = dbWfact_t)
729+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
730+
dbfiip, dbciip, Wfact_t = dbWfact_t)
731+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
732+
dbfoop, dbciip, Wfact_t = dbWfact_t)
724733
dbWfact_t(du, u, p, t) = [1.0]
725-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, Wfact_t = dbWfact_t)
726-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, Wfact_t = dbWfact_t)
734+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
735+
dbfiip, dbciip, Wfact_t = dbWfact_t)
736+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
737+
dbfoop, dbciip, Wfact_t = dbWfact_t)
727738
dbWfact_t(du, u, p, gamma, t) = [1.0]
728739
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfiip,
729740
dbciip,
@@ -738,18 +749,25 @@ DynamicalBVPFunction(dbfiip, dbciip, Wfact_t = dbWfact_t)
738749
Wfact_t = dbWfact_t)
739750

740751
dbtgrad(du, u, t) = [1.0]
741-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, tgrad = dbtgrad)
742-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, tgrad = dbtgrad)
752+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
753+
dbfiip, dbciip, tgrad = dbtgrad)
754+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
755+
dbfoop, dbciip, tgrad = dbtgrad)
743756
dbtgrad(du, u, p, t) = [1.0]
744-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfiip, dbciip, tgrad = dbtgrad)
745-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, tgrad = dbtgrad)
757+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
758+
dbfiip, dbciip, tgrad = dbtgrad)
759+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
760+
dbfoop, dbciip, tgrad = dbtgrad)
746761
dbtgrad(ddu, du, u, p, t) = [1.0]
747762
DynamicalBVPFunction(dbfiip, dbciip, tgrad = dbtgrad)
748-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, tgrad = dbtgrad)
763+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
764+
dbfoop, dbciip, tgrad = dbtgrad)
749765

750766
dbparamjac(du, u, t) = [1.0]
751-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, paramjac = dbparamjac)
752-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, paramjac = dbparamjac)
767+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
768+
dbfiip, dbciip, paramjac = dbparamjac)
769+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
770+
dbfoop, dbciip, paramjac = dbparamjac)
753771
dbparamjac(du, u, p, t) = [1.0]
754772
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfiip,
755773
dbciip,
@@ -764,25 +782,35 @@ DynamicalBVPFunction(dbfiip, dbciip, paramjac = dbparamjac)
764782
paramjac = dbparamjac)
765783

766784
dbjvp(du, u, p, t) = [1.0]
767-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, jvp = dbjvp)
768-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, jvp = dbjvp)
785+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
786+
dbfiip, dbciip, jvp = dbjvp)
787+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
788+
dbfoop, dbciip, jvp = dbjvp)
769789
dbjvp(du, u, v, p, t) = [1.0]
770-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfiip, dbciip, jvp = dbjvp)
771-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, jvp = dbjvp)
790+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
791+
dbfiip, dbciip, jvp = dbjvp)
792+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
793+
dbfoop, dbciip, jvp = dbjvp)
772794
dbjvp(ddu, du, u, v, p, t) = [1.0]
773795
DynamicalBVPFunction(dbfiip, dbciip, jvp = dbjvp)
774-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, jvp = dbjvp)
796+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
797+
dbfoop, dbciip, jvp = dbjvp)
775798

776799
dbvjp(du, u, p, t) = [1.0]
777-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfiip, dbciip, vjp = dbvjp)
778-
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(dbfoop, dbciip, vjp = dbvjp)
800+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
801+
dbfiip, dbciip, vjp = dbvjp)
802+
@test_throws SciMLBase.TooFewArgumentsError DynamicalBVPFunction(
803+
dbfoop, dbciip, vjp = dbvjp)
779804
dbvjp(du, u, v, p, t) = [1.0]
780-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfiip, dbciip, vjp = dbvjp)
781-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, vjp = dbvjp)
805+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
806+
dbfiip, dbciip, vjp = dbvjp)
807+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
808+
dbfoop, dbciip, vjp = dbvjp)
782809
dbvjp(ddu, du, u, v, p, t) = [1.0]
783810
DynamicalBVPFunction(dbfiip, dbciip, vjp = dbvjp)
784811

785-
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(dbfoop, dbciip, vjp = dbvjp)
812+
@test_throws SciMLBase.NonconformingFunctionsError DynamicalBVPFunction(
813+
dbfoop, dbciip, vjp = dbvjp)
786814

787815
# IntegralFunction
788816

0 commit comments

Comments
 (0)