Solution

Index

Documentation

CTDirect.SolverInfosMethod
SolverInfos() -> Tuple{Int64, Float64, String, Symbol, Bool}

Retrieve convergence information from NLP solution

  • iterations [Integer]: number of iterations
  • constraints_violations [Real]: primal feasibility
  • status [Symbol]: termination status from the NLP solver
  • successful [Boolean]: indicates successful convergence (first order)
  • message [String]: optional solver dependent message
source
CTDirect.build_OCP_solutionMethod
build_OCP_solution(
    docp,
    docp_solution
) -> CTModels.Solution{TimeGridModelType, TimesModelType, StateModelType, ControlModelType, VariableModelType, CostateModelType, Float64, DualModelType, CTModels.SolverInfos{Dict{Symbol, Any}}, ModelType} where {TimeGridModelType<:CTModels.TimeGridModel, TimesModelType<:CTModels.TimesModel, StateModelType<:Union{CTModels.StateModelSolution{TS} where TS<:CTModels.var"#114#136", CTModels.StateModelSolution{TS} where TS<:CTModels.var"#115#137"}, ControlModelType<:Union{CTModels.ControlModelSolution{TS} where TS<:CTModels.var"#116#138", CTModels.ControlModelSolution{TS} where TS<:CTModels.var"#117#139"}, VariableModelType<:Union{CTModels.VariableModelSolution{Vector{Float64}}, CTModels.VariableModelSolution{Float64}}, CostateModelType<:Union{CTModels.var"#118#140", CTModels.var"#119#141"}, DualModelType<:(CTModels.DualModel{PC_Dual, BC_Dual, SC_LB_Dual, SC_UB_Dual, CC_LB_Dual, CC_UB_Dual, VC_LB_Dual, VC_UB_Dual} where {PC_Dual<:Union{Nothing, CTModels.var"#121#143", CTModels.var"#122#144"}, BC_Dual<:Union{Nothing, Vector{Float64}}, SC_LB_Dual<:Union{Nothing, CTModels.var"#124#146", CTModels.var"#125#147"}, SC_UB_Dual<:Union{Nothing, CTModels.var"#127#149", CTModels.var"#128#150"}, CC_LB_Dual<:Union{Nothing, CTModels.var"#130#152", CTModels.var"#131#153"}, CC_UB_Dual<:Union{Nothing, CTModels.var"#133#155", CTModels.var"#134#156"}, VC_LB_Dual<:Union{Nothing, Vector{Float64}}, VC_UB_Dual<:Union{Nothing, Vector{Float64}}}), ModelType<:CTModels.Model}

Build OCP functional solution from DOCP discrete solution (given as a SolverCore.GenericExecutionStats)

source
CTDirect.build_OCP_solutionMethod
build_OCP_solution(docp; primal, dual, mult_LB, mult_UB)

Build OCP functional solution from DOCP discrete solution (given as array for primal variables, optionally dual variables and bounds multipliers)

source
CTDirect.parse_DOCP_solution_primalMethod
parse_DOCP_solution_primal(
    docp,
    solution;
    mult_LB,
    mult_UB
) -> Tuple{Any, Any, Any, NTuple{6, Any}}

Recover OCP state, control and optimization variables from DOCP primal variables. Bounds multipliers will be parsed as well if present.

source