@@ -198,6 +198,7 @@ mutable struct Optimizer <: MOI.AbstractOptimizer
198198 stdin :: Any
199199 stdout :: Any
200200 results:: _NLResults
201+ solve_time:: Float64
201202 # Store MOI.Name().
202203 name:: String
203204 # The objective expression.
@@ -295,6 +296,7 @@ function Optimizer(
295296 Dict {MOI.VariableIndex,Float64} (),
296297 Dict {MOI.VariableIndex,Float64} (),
297298 ),
299+ NaN ,
298300 " " ,
299301 _NLExpr (false , _NLTerm[], Dict {MOI.VariableIndex,Float64} (), 0.0 ),
300302 MOI. FEASIBILITY_SENSE,
@@ -328,6 +330,7 @@ function MOI.empty!(model::Optimizer)
328330 Dict {MOI.VariableIndex,Float64} (),
329331 Dict {MOI.VariableIndex,Float64} (),
330332 )
333+ model. solve_time = NaN
331334 model. f = _NLExpr (false , _NLTerm[], Dict {MOI.VariableIndex,Float64} (), 0.0 )
332335 empty! (model. g)
333336 model. nlpblock_dim = 0
@@ -1130,6 +1133,7 @@ function _read_sol(io::IO, model::Optimizer)
11301133end
11311134
11321135function MOI. optimize! (model:: Optimizer )
1136+ start_time = time ()
11331137 temp_dir = mktempdir ()
11341138 nl_file = joinpath (temp_dir, " model.nl" )
11351139 open (io -> write (io, model), nl_file, " w" )
@@ -1155,6 +1159,7 @@ function MOI.optimize!(model::Optimizer)
11551159 Dict {MOI.VariableIndex,Float64} (),
11561160 )
11571161 end
1162+ model. solve_time = time () - start_time
11581163 return
11591164end
11601165
@@ -1172,6 +1177,8 @@ function MOI.get(
11721177 return model. results. primal_solution[x]
11731178end
11741179
1180+ MOI. get (model:: Optimizer , :: MOI.SolveTime ) = model. solve_time
1181+
11751182function MOI. get (model:: Optimizer , :: MOI.TerminationStatus )
11761183 return model. results. termination_status
11771184end
0 commit comments