Skip to content

Commit 6414a31

Browse files
Remove restored Shooting blanket reexports
Restore the focused Shooting API and direct owner imports in docs. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
1 parent d29391e commit 6414a31

5 files changed

Lines changed: 14 additions & 158 deletions

File tree

docs/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1616
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
1717
OptimizationIpopt = "43fad042-7963-4b32-ab19-e2a4f9a67124"
1818
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
19+
OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a"
1920
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
2021
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
2122
SimpleBoundaryValueDiffEq = "be0294bd-f90f-4760-ac4e-3421ce2b2da0"
@@ -38,6 +39,7 @@ LinearAlgebra = "1.10"
3839
LinearSolve = "2.36.2, 3, 4.2, 5.0"
3940
OptimizationIpopt = "0.2.0, 1.0"
4041
OrdinaryDiffEq = "7"
42+
OrdinaryDiffEqTsit5 = "1, 2"
4143
Plots = "1"
4244
SciMLBase = "2.60.0, 3"
4345
SimpleBoundaryValueDiffEq = "1.1.0"

docs/src/solvers/shooting.md

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,16 @@ using Pkg
77
Pkg.add("BoundaryValueDiffEqShooting")
88
```
99

10-
!!! note "Require OrdinaryDiffEq"
11-
12-
Shooting methods require OrdinaryDiffEq.jl loaded to use the ODE solvers
10+
Shooting algorithms operate on problem definitions and solver functions owned by SciMLBase,
11+
and require an ODE algorithm from its owning solver package:
1312

1413
```julia
15-
solve(prob::BVProblem, alg; kwargs...)
16-
solve(prob::TwoPointBVProblem, alg; kwargs...)
17-
```
18-
19-
Shooting methods should be use together with ODE solvers:
14+
using BoundaryValueDiffEqShooting: MultipleShooting, Shooting
15+
using OrdinaryDiffEqTsit5: Tsit5
16+
using SciMLBase: BVProblem, TwoPointBVProblem, solve
2017

21-
```
22-
BoundaryValueDiffEqShooting.Shooting
23-
BoundaryValueDiffEqShooting.MultipleShooting
18+
# `prob` is a BVProblem or TwoPointBVProblem defined with SciMLBase.
19+
sol = solve(prob, Shooting(Tsit5()))
2420
```
2521

2622
## Full List of Methods

lib/BoundaryValueDiffEqShooting/src/BoundaryValueDiffEqShooting.jl

Lines changed: 0 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -37,71 +37,6 @@ using OrdinaryDiffEqTsit5: Tsit5
3737
using PrecompileTools: @compile_workload, @setup_workload
3838
using Preferences: Preferences
3939

40-
# The public API that BoundaryValueDiffEqShooting re-exports (see the second `export`
41-
# below), so that `using BoundaryValueDiffEqShooting` on its own is enough to pick an AD
42-
# backend, build a `BVProblem`, choose the inner nonlinear solver, and inspect the
43-
# solution. These names stay owned and documented by ADTypes, BoundaryValueDiffEqCore and
44-
# SciMLBase; the set is the one the previous `@reexport using ADTypes,
45-
# BoundaryValueDiffEqCore, SciMLBase` made public.
46-
using ADTypes: AbstractADType, AbstractColoringAlgorithm, AbstractSparsityDetector,
47-
AutoChainRules, AutoDiffractor, AutoEnzyme, AutoFastDifferentiation, AutoFiniteDiff,
48-
AutoFiniteDifferences, AutoGTPSA, AutoHyperHessians, AutoModelingToolkit, AutoMooncake,
49-
AutoMooncakeForward, AutoPolyesterForwardDiff, AutoReactant, AutoReverseDiff,
50-
AutoSparseFastDifferentiation, AutoSparseFiniteDiff, AutoSparseForwardDiff,
51-
AutoSparsePolyesterForwardDiff, AutoSparseReverseDiff, AutoSparseZygote, AutoSymbolics,
52-
AutoTapir, AutoTaylorDiff, AutoTracker, AutoZygote, NoAutoDiff, NoAutoDiffSelectedError,
53-
column_coloring, hessian_sparsity, jacobian_sparsity, row_coloring, symmetric_coloring
54-
using SciMLBase: AbstractAnalyticalProblem, AddVector, AffineOperator, AllObserved,
55-
AnalyticalProblem, BVPFunction, BatchIntegralFunction, BlockDiagonalOperator,
56-
CallbackSet, CheckInit, Clocks, ContinuousCallback, ConvexOptimizationProblem,
57-
DAEFunction, DAEProblem, DAESolution, DDEFunction, DDEProblem, DiagonalOperator,
58-
DiscreteCallback, DiscreteFunction, DiscreteProblem, DynamicalBVPFunction,
59-
DynamicalDDEFunction, DynamicalDDEProblem, DynamicalODEFunction, DynamicalODEProblem,
60-
DynamicalSDEFunction, DynamicalSDEProblem, EigenvalueProblem, EigenvalueSolution,
61-
EigenvalueTarget, EnsembleAnalysis, EnsembleContext, EnsembleDistributed,
62-
EnsembleProblem, EnsembleSolution, EnsembleSplitThreads, EnsembleSummary,
63-
EnsembleTestSolution, FunctionOperator, HomotopyNonlinearFunction, HomotopyProblem,
64-
IdentityOperator, ImplicitDiscreteFunction, ImplicitDiscreteProblem,
65-
IncrementingODEFunction, IncrementingODEProblem, IntegralFunction, IntegralProblem,
66-
IntegralSolution, IntervalNonlinearFunction, IntervalNonlinearProblem,
67-
InvertibleOperator, LinearAliasSpecifier, LinearProblem, LinearSolution, MatrixOperator,
68-
MultiObjectiveOptimizationFunction, NoiseProblem, NonlinearLeastSquaresProblem,
69-
NonlinearProblem, NonlinearSolution, NullOperator, ODEAliasSpecifier, ODEFunction,
70-
ODEInputFunction, ODESolution, OptimizationFunction, OptimizationProblem,
71-
OptimizationSolution, PDENoTimeSolution, PDEProblem, PDETimeSeriesSolution,
72-
RODEFunction, RODEProblem, RODESolution, ReturnCode, SCCNonlinearProblem, SDDEFunction,
73-
SDDEProblem, SDEFunction, SDEProblem, SampledIntegralProblem, ScalarOperator,
74-
SciMLOperators, SecondOrderBVProblem, SecondOrderDDEProblem, SecondOrderODEProblem,
75-
SplitFunction, SplitODEProblem, SplitSDEFunction, SplitSDEProblem, StaticWOperator,
76-
SteadyStateProblem, SteadyStateSolution, TensorProductOperator, TensorSumOperator,
77-
TimeDomain, TwoPointBVPFunction, TwoPointDynamicalBVPFunction,
78-
TwoPointSecondOrderBVProblem, VectorContinuousCallback, WOperator, add_saveat!,
79-
add_tstop!, addat!, addat_non_user_cache!, addsteps!, auto_dt_reset!, cache_operator,
80-
change_t_via_interpolation!, check_error, check_keywords, concretize, deleteat!,
81-
deleteat_non_user_cache!, derivative_discontinuity!, discretize, du_cache, first_tstop,
82-
full_cache, get_dt, get_du, get_du!, get_proposed_dt, get_rng, get_tmp_cache,
83-
has_adjoint, has_concretization, has_exp, has_expmv, has_expmv!, has_ldiv, has_ldiv!,
84-
has_mul, has_mul!, has_rng, has_tstop, init, is_discrete_time_domain, iscached, isclock,
85-
isconstant, iscontinuous, isconvertible, isdiscrete, islinear, issolverstepclock,
86-
issquare, kronsum, pop_tstop!, rand_cache, ratenoise_cache,
87-
reeval_internals_due_to_modification!, reinit!, resize_non_user_cache!, savevalues!,
88-
set_abstol!, set_proposed_dt!, set_reltol!, set_rng!, set_t!, set_u!, step!,
89-
supports_solve_rng, symbolic_discretize, terminate!, u_cache, u_modified!,
90-
update_coefficients, update_coefficients!, user_cache, warn_compat
91-
using BoundaryValueDiffEqCore: AbsNormSafeBestTerminationMode, AbsNormSafeTerminationMode,
92-
AbsNormTerminationMode, AbsTerminationMode, ArcLengthContinuation, BVPVerbosity,
93-
DEFAULT_VERBOSE, DampedNewtonDescent, DefectControl, DescentResult, Dogleg,
94-
EisenstatWalkerForcing2, FastShortcutNLLSPolyalg, GaussNewton,
95-
GeneralizedFirstOrderAlgorithm, GeodesicAcceleration, GlobalErrorControl,
96-
HOErrorControl, HomotopyPolyAlgorithm, HomotopySweep, HybridErrorControl,
97-
KantorovichHomotopy, LevenbergMarquardt, NewtonDescent, NewtonRaphson, NoErrorControl,
98-
NonlinearSolveBase, NonlinearSolveFirstOrder, NonlinearSolvePolyAlgorithm,
99-
NonlinearVerbosity, NormTerminationMode, PseudoTransient, REErrorControl,
100-
RadiusUpdateSchemes, RelNormSafeBestTerminationMode, RelNormSafeTerminationMode,
101-
RelNormTerminationMode, RelTerminationMode, RobustMultiNewton, SequentialErrorControl,
102-
SteepestDescent, TraceAll, TraceMinimal, TraceWithJacobianConditionNumber, TrustRegion,
103-
integral
104-
10540
const DI = DifferentiationInterface
10641

10742
include("algorithms.jl")
@@ -173,68 +108,4 @@ end
173108

174109
export Shooting, MultipleShooting
175110

176-
# Re-exported ADTypes / BoundaryValueDiffEqCore / SciMLBase public API; approved via
177-
# `reexports_allow` in test/qa/qa.jl.
178-
export ADTypes, AbsNormSafeBestTerminationMode, AbsNormSafeTerminationMode,
179-
AbsNormTerminationMode, AbsTerminationMode, AbstractADType, AbstractAnalyticalProblem,
180-
AbstractBoundaryValueDiffEqAlgorithm, AbstractColoringAlgorithm,
181-
AbstractSparsityDetector, AddVector, AffineOperator, AllObserved, AnalyticalProblem,
182-
ArcLengthContinuation, AutoChainRules, AutoDiffractor, AutoEnzyme,
183-
AutoFastDifferentiation, AutoFiniteDiff, AutoFiniteDifferences, AutoForwardDiff,
184-
AutoGTPSA, AutoHyperHessians, AutoModelingToolkit, AutoMooncake, AutoMooncakeForward,
185-
AutoPolyesterForwardDiff, AutoReactant, AutoReverseDiff, AutoSparse,
186-
AutoSparseFastDifferentiation, AutoSparseFiniteDiff, AutoSparseForwardDiff,
187-
AutoSparsePolyesterForwardDiff, AutoSparseReverseDiff, AutoSparseZygote, AutoSymbolics,
188-
AutoTapir, AutoTaylorDiff, AutoTracker, AutoZygote, BVPFunction, BVPJacobianAlgorithm,
189-
BVPVerbosity, BVProblem, BatchIntegralFunction, BlockDiagonalOperator,
190-
BoundaryValueDiffEqCore, CallbackSet, CheckInit, Clocks, ContinuousCallback,
191-
ConvexOptimizationProblem, DAEFunction, DAEProblem, DAESolution, DDEFunction,
192-
DDEProblem, DEFAULT_VERBOSE, DampedNewtonDescent, DefectControl, DescentResult,
193-
DiagonalOperator, DiscreteCallback, DiscreteFunction, DiscreteProblem, Dogleg,
194-
DynamicalBVPFunction, DynamicalDDEFunction, DynamicalDDEProblem, DynamicalODEFunction,
195-
DynamicalODEProblem, DynamicalSDEFunction, DynamicalSDEProblem, EigenvalueProblem,
196-
EigenvalueSolution, EigenvalueTarget, EisenstatWalkerForcing2, EnsembleAnalysis,
197-
EnsembleContext, EnsembleDistributed, EnsembleProblem, EnsembleSerial, EnsembleSolution,
198-
EnsembleSplitThreads, EnsembleSummary, EnsembleTestSolution, EnsembleThreads,
199-
FastShortcutNLLSPolyalg, FunctionOperator, GaussNewton, GeneralizedFirstOrderAlgorithm,
200-
GeodesicAcceleration, GlobalErrorControl, HOErrorControl, HomotopyNonlinearFunction,
201-
HomotopyPolyAlgorithm, HomotopyProblem, HomotopySweep, HybridErrorControl,
202-
IdentityOperator, ImplicitDiscreteFunction, ImplicitDiscreteProblem,
203-
IncrementingODEFunction, IncrementingODEProblem, IntegralFunction, IntegralProblem,
204-
IntegralSolution, IntervalNonlinearFunction, IntervalNonlinearProblem,
205-
InvertibleOperator, KantorovichHomotopy, LevenbergMarquardt, LinearAliasSpecifier,
206-
LinearProblem, LinearSolution, MatrixOperator, MultiObjectiveOptimizationFunction,
207-
NewtonDescent, NewtonRaphson, NoAutoDiff, NoAutoDiffSelectedError, NoErrorControl,
208-
NoiseProblem, NonlinearFunction, NonlinearLeastSquaresProblem, NonlinearProblem,
209-
NonlinearSolution, NonlinearSolveBase, NonlinearSolveFirstOrder,
210-
NonlinearSolvePolyAlgorithm, NonlinearVerbosity, NormTerminationMode, NullOperator,
211-
ODEAliasSpecifier, ODEFunction, ODEInputFunction, ODEProblem, ODESolution,
212-
OptimizationFunction, OptimizationProblem, OptimizationSolution, PDENoTimeSolution,
213-
PDEProblem, PDETimeSeriesSolution, PseudoTransient, REErrorControl, RODEFunction,
214-
RODEProblem, RODESolution, RadiusUpdateSchemes, RelNormSafeBestTerminationMode,
215-
RelNormSafeTerminationMode, RelNormTerminationMode, RelTerminationMode, ReturnCode,
216-
RobustMultiNewton, SCCNonlinearProblem, SDDEFunction, SDDEProblem, SDEFunction,
217-
SDEProblem, SampledIntegralProblem, ScalarOperator, SciMLBase, SciMLOperators,
218-
SecondOrderBVProblem, SecondOrderDDEProblem, SecondOrderODEProblem,
219-
SequentialErrorControl, SplitFunction, SplitODEProblem, SplitSDEFunction,
220-
SplitSDEProblem, StaticWOperator, SteadyStateProblem, SteadyStateSolution,
221-
SteepestDescent, TensorProductOperator, TensorSumOperator, TimeDomain, TraceAll,
222-
TraceMinimal, TraceWithJacobianConditionNumber, TrustRegion, TwoPointBVPFunction,
223-
TwoPointBVProblem, TwoPointDynamicalBVPFunction, TwoPointSecondOrderBVProblem,
224-
VectorContinuousCallback, WOperator, _process_verbose_param, add_saveat!, add_tstop!,
225-
addat!, addat_non_user_cache!, addsteps!, auto_dt_reset!, cache_operator,
226-
change_t_via_interpolation!, check_error, check_keywords, column_coloring, concretize,
227-
deleteat!, deleteat_non_user_cache!, derivative_discontinuity!, discretize, du_cache,
228-
first_tstop, full_cache, get_dt, get_du, get_du!, get_proposed_dt, get_rng,
229-
get_tmp_cache, has_adjoint, has_concretization, has_exp, has_expmv, has_expmv!,
230-
has_ldiv, has_ldiv!, has_mul, has_mul!, has_rng, has_tstop, hessian_sparsity, init,
231-
integral, is_discrete_time_domain, iscached, isclock, isconstant, iscontinuous,
232-
isconvertible, isdiscrete, isinplace, islinear, issolverstepclock, issquare,
233-
jacobian_sparsity, kronsum, pickchunksize, pop_tstop!, rand_cache, ratenoise_cache,
234-
reeval_internals_due_to_modification!, reinit!, remake, resize_non_user_cache!,
235-
row_coloring, savevalues!, set_abstol!, set_proposed_dt!, set_reltol!, set_rng!, set_t!,
236-
set_u!, solve, solve!, step!, supports_solve_rng, symbolic_discretize,
237-
symmetric_coloring, terminate!, u_cache, u_modified!, update_coefficients,
238-
update_coefficients!, user_cache, warn_compat
239-
240111
end # module BoundaryValueDiffEqShooting

lib/BoundaryValueDiffEqShooting/src/algorithms.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ boundary conditions.
4343
## Examples
4444
4545
```julia
46-
using BoundaryValueDiffEqShooting, OrdinaryDiffEqTsit5
46+
using BoundaryValueDiffEqShooting: Shooting
47+
using OrdinaryDiffEqTsit5: Tsit5
4748
4849
alg = Shooting(Tsit5())
4950
```
@@ -131,7 +132,8 @@ it is generally more stable than [`Shooting`](@ref).
131132
## Examples
132133
133134
```julia
134-
using BoundaryValueDiffEqShooting, OrdinaryDiffEqTsit5
135+
using BoundaryValueDiffEqShooting: MultipleShooting
136+
using OrdinaryDiffEqTsit5: Tsit5
135137
136138
alg = MultipleShooting(8, Tsit5(); grid_coarsening = true)
137139
```

lib/BoundaryValueDiffEqShooting/test/qa/qa.jl

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,12 @@ using SciMLTesting
22
using BoundaryValueDiffEqShooting
33
using Test
44

5-
const DOCS_SRC = normpath(joinpath(@__DIR__, "..", "..", "..", "..", "docs", "src"))
6-
# `SHOOTING_REEXPORTS` is the audited set of ADTypes / BoundaryValueDiffEqCore /
7-
# SciMLBase names that BoundaryValueDiffEqShooting deliberately re-exports; it is kept
8-
# in sync with the re-export `export` block in src/BoundaryValueDiffEqShooting.jl.
9-
include(joinpath(@__DIR__, "..", "..", "..", "..", "test", "qa", "reexports.jl"))
10-
115
run_qa(
126
BoundaryValueDiffEqShooting;
137
aqua_kwargs = (; persistent_tasks = false),
148
ei_kwargs = (;
15-
# All external internals with no public replacement:
16-
# - StandardBVProblem: SciMLBase-owned BVP problem type, not public.
17-
# - overloaded_input_type: DifferentiationInterface internal.
18-
# - pickchunksize: ForwardDiff internal.
199
all_explicit_imports_are_public = (;
20-
ignore = (:StandardBVProblem, :overloaded_input_type, :pickchunksize),
10+
ignore = (:overloaded_input_type, :pickchunksize),
2111
),
2212
),
23-
reexports_allow = SHOOTING_REEXPORTS,
24-
api_docs_kwargs = (;
25-
docs_src = DOCS_SRC, ignore = SHOOTING_REEXPORTS,
26-
rendered_ignore = SHOOTING_REEXPORTS,
27-
),
2813
)

0 commit comments

Comments
 (0)