|
1 |
| -""" |
2 |
| -```julia |
3 |
| -SciMLBase.BVProblem{iip}(sys::AbstractSystem, u0map, tspan, |
4 |
| - parammap = DiffEqBase.NullParameters(); |
5 |
| - constraints = nothing, guesses = nothing, |
6 |
| - version = nothing, tgrad = false, |
7 |
| - jac = true, sparse = true, |
8 |
| - simplify = false, |
9 |
| - kwargs...) where {iip} |
10 |
| -``` |
11 |
| -
|
12 |
| -Create a boundary value problem from the [`System`](@ref). |
13 |
| -
|
14 |
| -`u0map` is used to specify fixed initial values for the states. Every variable |
15 |
| -must have either an initial guess supplied using `guesses` or a fixed initial |
16 |
| -value specified using `u0map`. |
17 |
| -
|
18 |
| -Boundary value conditions are supplied to Systems in the form of a list of constraints. |
19 |
| -These equations should specify values that state variables should take at specific points, |
20 |
| -as in `x(0.5) ~ 1`). More general constraints that should hold over the entire solution, |
21 |
| -such as `x(t)^2 + y(t)^2`, should be specified as one of the equations used to build the |
22 |
| -`System`. |
23 |
| -
|
24 |
| -If a `System` without `constraints` is specified, it will be treated as an initial value problem. |
25 |
| -
|
26 |
| -```julia |
27 |
| - @parameters g t_c = 0.5 |
28 |
| - @variables x(..) y(t) λ(t) |
29 |
| - eqs = [D(D(x(t))) ~ λ * x(t) |
30 |
| - D(D(y)) ~ λ * y - g |
31 |
| - x(t)^2 + y^2 ~ 1] |
32 |
| - cstr = [x(0.5) ~ 1] |
33 |
| - @mtkcompile pend = System(eqs, t; constraints = cstrs) |
34 |
| -
|
35 |
| - tspan = (0.0, 1.5) |
36 |
| - u0map = [x(t) => 0.6, y => 0.8] |
37 |
| - parammap = [g => 1] |
38 |
| - guesses = [λ => 1] |
39 |
| -
|
40 |
| - bvp = SciMLBase.BVProblem{true, SciMLBase.AutoSpecialize}(pend, u0map, tspan, parammap; guesses, check_length = false) |
41 |
| -``` |
42 |
| -
|
43 |
| -If the `System` has algebraic equations, like `x(t)^2 + y(t)^2`, the resulting |
44 |
| -`BVProblem` must be solved using BVDAE solvers, such as Ascher. |
45 |
| -""" |
46 | 1 | @fallback_iip_specialize function SciMLBase.BVProblem{iip, spec}(
|
47 | 2 | sys::System, op, tspan;
|
48 | 3 | check_compatibility = true, cse = true,
|
|
0 commit comments