Boundary Functions

Initial & Final

Linkage

Nonlinear

DynOptInterface.NonlinearBoundaryFunctionType
NonlinearBoundaryFunction(head::Symbol, args::Vector{Any})

Represents a general boundary function $b(\boldsymbol{y}(t_0), \boldsymbol{y}(t_f), t_0, t_f, x)$.

It is a subtype of AbstractBoundaryFunction.

Similar to MOI.ScalarNonlinearFunction, this function is represented by an expression tree, using the following fields:

head

The symbol head must be an operator that is supported by the model. The model attribute MOI.ListOfSupportedNonlinearOperators provides a list of supported operators. If the optimizer does not support head, an MOI.UnsupportedNonlinearOperator error is thrown.

args

The vector args contains the arguments to the nonlinear operator. The arguments must be subtypes of:

Additionally, the optimizer must indicate support of argument types through the supports_objective_argument and supports_constraint_argument functions. Otherwise UnsupportedObjectiveArgument and UnsupportedConstraintArgument errors are thrown.

source

Integrals

DynOptInterface.IntegralType
Integral{DF}(dyn_fun::DF) where {DF<:AbstractDynamicFunction}

Represent the expression $\int_{t_0^{(i)}}^{t_f^{(i)}} d(\dot{\boldsymbol{y}}(t^{(i)}), \boldsymbol{y}(t^{(i)}), t^{(i)}, x) \mathrm{d}t^{(i)}$.

It is a sub-type of AbstractBoundaryFunction.

source
DynOptInterface.MultiPhaseIntegralType
MultiPhaseIntegral{DF}(dyn_funs::Vector{DF}) where {DF<:AbstractDynamicFunction}

Represent the sum of integrals $\sum_i \big[ \int_{t_0^{(i)}}^{t_f^{(i)}} d(\dot{\boldsymbol{y}}(t^{(i)}), \boldsymbol{y}(t^{(i)}), t^{(i)}, x) \mathrm{d}t^{(i)} \big]$.

It is a subtype of AbstractBoundaryFunction.

source
DynOptInterface.BolzaType
Bolza{BF,IF}(
    bou_fun::BF,
    integral::IF,
) where {BF<:AbstractBoundaryFunction,IF<:Union{Integral,MultiPhaseIntegral}}

Represent the expression $b(\boldsymbol{y}(t_0), \boldsymbol{y}(t_f), t_0, t_f, x) + \sum_i \big[ \int_{t_0^{(i)}}^{t_f^{(i)}} d(\dot{\boldsymbol{y}}(t^{(i)}), \boldsymbol{y}(t^{(i)}), t^{(i)}, x) \mathrm{d}t^{(i)} \big]$

That is, the sum of an AbstractBoundaryFunction with either an Integral or a MultiPhaseIntegral. It is a subtype of AbstractBoundaryFunction.

source