Skip to content

Commit 4e29c22

Browse files
authored
Merge pull request #99 from dlcole3/dc/set_optimizer_attribute-for-nodes
Added get and set optimizer attribute for nodes
2 parents a68e5ad + 352ac97 commit 4e29c22

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/optimizer_interface.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,16 @@ function JuMP.set_optimizer_attribute(
329329
return MOI.set(graph, attr, value)
330330
end
331331

332+
function JuMP.set_optimizer_attribute(node::OptiNode, name::String, value)
333+
return JuMP.set_optimizer_attribute(node, MOI.RawOptimizerAttribute(name), value)
334+
end
335+
336+
function JuMP.set_optimizer_attribute(
337+
node::OptiNode, attr::MOI.AbstractOptimizerAttribute, value
338+
)
339+
return MOI.set(node, attr, value)
340+
end
341+
332342
function JuMP.get_optimizer_attribute(graph::OptiGraph, name::String)
333343
return JuMP.get_optimizer_attribute(graph, MOI.RawOptimizerAttribute(name))
334344
end
@@ -339,6 +349,16 @@ function JuMP.get_optimizer_attribute(
339349
return MOI.get(graph, attr)
340350
end
341351

352+
function JuMP.get_optimizer_attribute(node::OptiNode, name::String)
353+
return JuMP.get_optimizer_attribute(node, MOI.RawOptimizerAttribute(name))
354+
end
355+
356+
function JuMP.get_optimizer_attribute(
357+
node::OptiNode, attr::MOI.AbstractOptimizerAttribute
358+
)
359+
return MOI.get(node, attr)
360+
end
361+
342362
function MOI.get(graph::OptiGraph, attr::MOI.AbstractOptimizerAttribute)
343363
return MOI.get(backend(graph), attr)
344364
end

test/optinode.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,14 @@ function test_optinode_set_solution()
141141
@test JuMP.termination_status(n1) == MOI.OPTIMAL
142142
end
143143

144+
function test_optinode_set_optimizer_attributes()
145+
graph = OptiGraph()
146+
n1 = add_node!(graph)
147+
set_optimizer(n1, optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0))
148+
JuMP.set_optimizer_attribute(n1, "max_cpu_time", 1e2)
149+
@test JuMP.get_optimizer_attribute(n1, "max_cpu_time") == 100.0
150+
end
151+
144152
function run_tests()
145153
for name in names(@__MODULE__; all=true)
146154
if !startswith("$(name)", "test_")

0 commit comments

Comments
 (0)