@@ -438,3 +438,42 @@ function TwoPointSecondOrderBVProblem(
438438 u0 = [initialGuess (i) for i in tspan]
439439 return TwoPointSecondOrderBVProblem (f, bc, u0, (tspan[1 ], tspan[end ]), p; kwargs... )
440440end
441+
442+ @doc doc"""
443+
444+ Holds information on what variables to alias
445+ when solving an BVP. Conforms to the AbstractAliasSpecifier interface.
446+ `BVPAliasSpecifier(;alias_p = nothing, alias_f = nothing, alias_u0 = nothing, alias_du0 = nothing, alias_tstops = nothing, alias = nothing)`
447+
448+ When a keyword argument is `nothing`, the default behaviour of the solver is used.
449+
450+ ### Keywords
451+ * `alias_p::Union{Bool, Nothing}`
452+ * `alias_f::Union{Bool, Nothing}`
453+ * `alias_u0::Union{Bool, Nothing}`: alias the u0 array. Defaults to false .
454+ * `alias_du0::Union{Bool, Nothing}`: alias the du0 array for DAEs. Defaults to false.
455+ * `alias_tstops::Union{Bool, Nothing}`: alias the tstops array
456+ * `alias::Union{Bool, Nothing}`: sets all fields of the `BVPAliasSpecifier` to `alias`
457+
458+ """
459+ struct BVPAliasSpecifier <: AbstractAliasSpecifier
460+ alias_p:: Union{Bool, Nothing}
461+ alias_f:: Union{Bool, Nothing}
462+ alias_u0:: Union{Bool, Nothing}
463+ alias_du0:: Union{Bool, Nothing}
464+ alias_tstops:: Union{Bool, Nothing}
465+
466+ function BVPAliasSpecifier (; alias_p = nothing , alias_f = nothing , alias_u0 = nothing ,
467+ alias_du0 = nothing , alias_tstops = nothing , alias = nothing )
468+ if alias == true
469+ new (true , true , true , true , true )
470+ elseif alias == false
471+ new (false , false , false , false , false )
472+ elseif isnothing (alias)
473+ new (alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
474+ end
475+ end
476+ end
477+
478+
479+
0 commit comments