@@ -438,3 +438,39 @@ 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+
443+ struct BVPAliasSpecifier <: AbstractAliasSpecifier
444+ alias_p:: Union{Bool, Nothing}
445+ alias_f:: Union{Bool, Nothing}
446+ alias_u0:: Union{Bool, Nothing}
447+ alias_du0:: Union{Bool, Nothing}
448+ alias_tstops:: Union{Bool, Nothing}
449+ end
450+
451+
452+ @doc doc"""
453+
454+ Holds information on what variables to alias
455+ when solving an BVP. Conforms to the AbstractAliasSpecifier interface.
456+ BVPAliasSpecifier(;alias_p = nothing, alias_f = nothing, alias_u0 = nothing, alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
457+
458+ ### Keywords
459+ * `alias_p::Union{Bool, Nothing}`
460+ * `alias_f::Union{Bool, Nothing}`
461+ * `alias_u0::Union{Bool, Nothing}`: alias the u0 array. Defaults to false .
462+ * `alias_du0::Union{Bool, Nothing}`: alias the du0 array for DAEs. Defaults to false.
463+ * `alias_tstops::Union{Bool, Nothing}`: alias the tstops array
464+ * `alias::Union{Bool, Nothing}`: sets all fields of the `BVPAliasSpecifier` to `alias`
465+
466+ """
467+ function BVPAliasSpecifier (; alias_p = nothing , alias_f = nothing , alias_u0 = nothing ,
468+ alias_du0 = nothing , alias_tstops = nothing , alias = nothing )
469+ if alias == true
470+ BVPAliasSpecifier (true , true , true , true , true )
471+ elseif alias == false
472+ BVPAliasSpecifier (false , false , false , false , false )
473+ elseif isnothing (alias)
474+ BVPAliasSpecifier (alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
475+ end
476+ end
0 commit comments