Skip to content

Commit 7ee9482

Browse files
authored
up compat (#395)
1 parent 4aefe4c commit 7ee9482

File tree

3 files changed

+10
-23
lines changed

3 files changed

+10
-23
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ CTSolveExtMadNLP = ["MadNLP"]
2525

2626
[compat]
2727
ADNLPModels = "0.8"
28-
CTBase = "0.15"
29-
CTModels = "0.2"
28+
CTBase = "0.16"
29+
CTModels = "0.3"
3030
CTParser = "0.2"
3131
DocStringExtensions = "0.9"
3232
HSL = "0.5"

src/solution.jl

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,14 @@ function build_OCP_solution(docp, docp_solution)
3636
DOCP_constraints!(constraints, solution, docp)
3737

3838
# costate and constraints multipliers
39-
P, path_constraints, boundary_constraints, path_constraints_dual, boundary_constraints_dual = parse_DOCP_solution_dual(docp, docp_solution.multipliers, constraints)
39+
P, path_constraints_dual, boundary_constraints_dual = parse_DOCP_solution_dual(docp, docp_solution.multipliers)
4040

4141
return CTModels.build_solution(
4242
ocp,
4343
T, X, U, v, P;
4444
objective=objective, iterations=iterations, constraints_violation=constraints_violation,
4545
message=message, stopping=stopping, success=success,
46-
path_constraints=path_constraints,
4746
path_constraints_dual=path_constraints_dual,
48-
boundary_constraints=boundary_constraints,
4947
boundary_constraints_dual=boundary_constraints_dual,
5048
state_constraints_lb_dual=box_multipliers[1],
5149
state_constraints_ub_dual=box_multipliers[2],
@@ -114,16 +112,14 @@ function build_OCP_solution(docp; primal, dual=nothing, mult_LB=nothing, mult_UB
114112
DOCP_constraints!(constraints, solution, docp)
115113

116114
# costate and constraints multipliers
117-
P, path_constraints, boundary_constraints, path_constraints_dual, boundary_constraints_dual = parse_DOCP_solution_dual(docp, dual, constraints)
115+
P, path_constraints_dual, boundary_constraints_dual = parse_DOCP_solution_dual(docp, dual)
118116

119117
return CTModels.build_solution(
120118
ocp,
121119
T, X, U, v, P;
122120
objective=objective, iterations=iterations, constraints_violation=constraints_violation,
123121
message=message, stopping=stopping, success=success,
124-
path_constraints=path_constraints,
125122
path_constraints_dual=path_constraints_dual,
126-
boundary_constraints=boundary_constraints,
127123
boundary_constraints_dual=boundary_constraints_dual,
128124
state_constraints_lb_dual=box_multipliers[1],
129125
state_constraints_ub_dual=box_multipliers[2],
@@ -196,7 +192,7 @@ $(TYPEDSIGNATURES)
196192
197193
Recover OCP costate and constraints multipliers from DOCP multipliers
198194
"""
199-
function parse_DOCP_solution_dual(docp, multipliers, constraints)
195+
function parse_DOCP_solution_dual(docp, multipliers)
200196

201197
# if called with multipliers = nothing, fill with zeros
202198
if isnothing(multipliers)
@@ -206,47 +202,38 @@ function parse_DOCP_solution_dual(docp, multipliers, constraints)
206202
# costate
207203
N = docp.time.steps
208204
P = zeros(N, docp.dims.NLP_x)
209-
ocp = docp.ocp
210205

211-
# constraints
206+
# dimensions
212207
dpc = docp.dims.path_cons
213208
dbc = docp.dims.boundary_cons
214-
sol_path_constraints = zeros(N + 1, dpc)
215-
sol_boundary_constraints = zeros(dbc)
216209

217210
# constraints multipliers
218-
mul_path_constraints = zeros(size(sol_path_constraints))
219-
mul_boundary_constraints = zeros(size(sol_boundary_constraints))
211+
mul_path_constraints = zeros(N + 1, dpc)
212+
mul_boundary_constraints = zeros(dbc)
220213

221214
# loop over time steps
222-
i_c = 1
223215
i_m = 1
224216
for i = 1:(N+1)
225217

226218
# state equation multiplier for costate
227219
if i <= N
228220
P[i, :] = multipliers[i_m:(i_m+docp.dims.NLP_x-1)]
229221
# skip state / stage constraints
230-
i_c += docp.discretization._state_stage_eqs_block
231222
i_m += docp.discretization._state_stage_eqs_block
232223
end
233224

234225
# path constraints and multipliers
235226
if dpc > 0
236-
sol_path_constraints[i, :] = constraints[i_c:(i_c+dpc-1)]
237227
mul_path_constraints[i, :] = multipliers[i_m:(i_m+dpc-1)]
238-
i_c += dpc
239228
i_m += dpc
240229
end
241230
end
242231

243232
# pointwise constraints: boundary then variables
244233
if dbc > 0
245-
sol_boundary_constraints[:] = constraints[i_c:(i_c+dbc-1)]
246234
mul_boundary_constraints[:] = multipliers[i_m:(i_m+dbc-1)]
247-
i_c += dbc
248235
i_m += dbc
249236
end
250237

251-
return P, sol_path_constraints, sol_boundary_constraints, mul_path_constraints, mul_boundary_constraints
238+
return P, mul_path_constraints, mul_boundary_constraints
252239
end

src/solve.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ function solve(
4848
)
4949

5050
# get solver choice
51-
method = CTBase.getFullDescription(description, available_methods())
51+
method = CTBase.complete(description; descriptions=available_methods())
5252
if :ipopt method
5353
solver_backend = CTDirect.IpoptBackend()
5454
elseif :madnlp method

0 commit comments

Comments
 (0)