Solution
Index
CTDirect.SolverInfos
CTDirect.build_OCP_solution
CTDirect.build_OCP_solution
CTDirect.parse_DOCP_solution_dual
CTDirect.parse_DOCP_solution_primal
Documentation
CTDirect.SolverInfos
— MethodSolverInfos() -> 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
CTDirect.build_OCP_solution
— Methodbuild_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)
CTDirect.build_OCP_solution
— Methodbuild_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)
CTDirect.parse_DOCP_solution_dual
— Methodparse_DOCP_solution_dual(
docp,
multipliers
) -> Tuple{Any, Any, Any}
Recover OCP costate and constraints multipliers from DOCP dual variables.
CTDirect.parse_DOCP_solution_primal
— Methodparse_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.