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;
    nlp_model
) -> 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"#98#120", CTModels.StateModelSolution{TS} where TS<:CTModels.var"#99#121"}, ControlModelType<:Union{CTModels.ControlModelSolution{TS} where TS<:CTModels.var"#100#122", CTModels.ControlModelSolution{TS} where TS<:CTModels.var"#101#123"}, VariableModelType<:Union{CTModels.VariableModelSolution{Vector{Float64}}, CTModels.VariableModelSolution{Float64}}, CostateModelType<:Union{CTModels.var"#102#124", CTModels.var"#103#125"}, 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"#105#127", CTModels.var"#106#128"}, BC_Dual<:Union{Nothing, Vector{Float64}}, SC_LB_Dual<:Union{Nothing, CTModels.var"#108#130", CTModels.var"#109#131"}, SC_UB_Dual<:Union{Nothing, CTModels.var"#111#133", CTModels.var"#112#134"}, CC_LB_Dual<:Union{Nothing, CTModels.var"#114#136", CTModels.var"#115#137"}, CC_UB_Dual<:Union{Nothing, CTModels.var"#117#139", CTModels.var"#118#140"}, 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,
    nlp_model,
    docp_solution
)

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_dualMethod
parse_DOCP_solution_dual(
    docp,
    multipliers;
    nlp_model,
    docp_solution
)

Recover OCP costate and constraints multipliers from DOCP dual variables.

source
CTDirect.parse_DOCP_solution_primalMethod
parse_DOCP_solution_primal(
    docp,
    solution;
    mult_LB,
    mult_UB,
    nlp_model,
    docp_solution
)

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

source