Skip to content

Commit

Permalink
Merge pull request #99 from dlcole3/dc/set_optimizer_attribute-for-nodes
Browse files Browse the repository at this point in the history
Added get and set optimizer attribute for nodes
  • Loading branch information
jalving authored Dec 12, 2023
2 parents a68e5ad + 352ac97 commit 4e29c22
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/optimizer_interface.jl
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,16 @@ function JuMP.set_optimizer_attribute(
return MOI.set(graph, attr, value)
end

function JuMP.set_optimizer_attribute(node::OptiNode, name::String, value)
return JuMP.set_optimizer_attribute(node, MOI.RawOptimizerAttribute(name), value)
end

function JuMP.set_optimizer_attribute(
node::OptiNode, attr::MOI.AbstractOptimizerAttribute, value
)
return MOI.set(node, attr, value)
end

function JuMP.get_optimizer_attribute(graph::OptiGraph, name::String)
return JuMP.get_optimizer_attribute(graph, MOI.RawOptimizerAttribute(name))
end
Expand All @@ -339,6 +349,16 @@ function JuMP.get_optimizer_attribute(
return MOI.get(graph, attr)
end

function JuMP.get_optimizer_attribute(node::OptiNode, name::String)
return JuMP.get_optimizer_attribute(node, MOI.RawOptimizerAttribute(name))
end

function JuMP.get_optimizer_attribute(
node::OptiNode, attr::MOI.AbstractOptimizerAttribute
)
return MOI.get(node, attr)
end

function MOI.get(graph::OptiGraph, attr::MOI.AbstractOptimizerAttribute)
return MOI.get(backend(graph), attr)
end
Expand Down
8 changes: 8 additions & 0 deletions test/optinode.jl
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,14 @@ function test_optinode_set_solution()
@test JuMP.termination_status(n1) == MOI.OPTIMAL
end

function test_optinode_set_optimizer_attributes()
graph = OptiGraph()
n1 = add_node!(graph)
set_optimizer(n1, optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0))
JuMP.set_optimizer_attribute(n1, "max_cpu_time", 1e2)
@test JuMP.get_optimizer_attribute(n1, "max_cpu_time") == 100.0
end

function run_tests()
for name in names(@__MODULE__; all=true)
if !startswith("$(name)", "test_")
Expand Down

0 comments on commit 4e29c22

Please sign in to comment.