Skip to content

Commit 4869320

Browse files
author
Pepijn de Vos
committed
respect progress_steps
1 parent 36b3f8c commit 4869320

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

src/common_interface/integrator_types.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ mutable struct DEOptions{SType, TstopType, SType2, TstopType2, SIX, CType, relto
2020
advance_to_tstop::Bool
2121
stop_at_next_tstop::Bool
2222
progress::Bool
23+
progress_steps::Int
2324
progress_name::String
2425
progress_message::F5
2526
progress_id::Symbol
@@ -173,6 +174,7 @@ mutable struct IDAIntegrator{N,
173174
tmp::Array{Float64, N}
174175
uprev::Array{Float64, N}
175176
flag::Cint
177+
iter::Int
176178
just_hit_tstop::Bool
177179
event_last_time::Int
178180
vector_event_last_time::Int

src/common_interface/solve.jl

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractODEProblem{uType, tupType, i
102102
prob.tspan[2] in saveat,
103103
dense = save_everystep && isempty(saveat),
104104
progress = false,
105+
progress_steps=1000,
105106
progress_name = "ODE",
106107
progress_message = DiffEqBase.ODE_DEFAULT_PROG_MESSAGE,
107108
progress_id = gensym("Sundials"),
@@ -131,7 +132,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractODEProblem{uType, tupType, i
131132
error("Sundials requires at least one state variable.")
132133
end
133134

134-
progress && Logging.@logmsg(-1, progress_name, _id=progress_id, progress=0)
135+
progress && Logging.@logmsg(Logging.LogLevel(-1), progress_name, _id=progress_id, progress=0)
135136

136137
callbacks_internal = DiffEqBase.CallbackSet(callback)
137138

@@ -413,6 +414,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractODEProblem{uType, tupType, i
413414
advance_to_tstop,
414415
stop_at_next_tstop,
415416
progress,
417+
progress_steps,
416418
progress_name,
417419
progress_message,
418420
progress_id,
@@ -470,6 +472,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractODEProblem{uType, tupType, i
470472
save_end = true,
471473
save_timeseries = nothing,
472474
progress = false,
475+
progress_steps = 1000,
473476
progress_name = "ODE",
474477
progress_message = DiffEqBase.ODE_DEFAULT_PROG_MESSAGE,
475478
progress_id = gensym("Sundials"),
@@ -495,7 +498,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractODEProblem{uType, tupType, i
495498
error("Sundials requires at least one state variable.")
496499
end
497500

498-
progress && Logging.@logmsg(-1, progress_name, _id=progress_id, progress=0)
501+
progress && Logging.@logmsg(Logging.LogLevel(-1), progress_name, _id=progress_id, progress=0)
499502

500503
callbacks_internal = DiffEqBase.CallbackSet(callback)
501504

@@ -891,6 +894,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractODEProblem{uType, tupType, i
891894
advance_to_tstop,
892895
stop_at_next_tstop,
893896
progress,
897+
progress_steps,
894898
progress_name,
895899
progress_message,
896900
progress_id,
@@ -995,6 +999,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractDAEProblem{uType, duType, tu
995999
save_timeseries = nothing,
9961000
save_end = true,
9971001
progress = false,
1002+
progress_steps = 1000,
9981003
progress_name = "DAE IDA",
9991004
progress_message = DiffEqBase.ODE_DEFAULT_PROG_MESSAGE,
10001005
progress_id = gensym("Sundials"),
@@ -1019,7 +1024,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractDAEProblem{uType, duType, tu
10191024
error("Sundials requires at least one state variable.")
10201025
end
10211026

1022-
progress && Logging.@logmsg(-1, progress_name, _id=progress_id, progress=0)
1027+
progress && Logging.@logmsg(Logging.LogLevel(-1), progress_name, _id=progress_id, progress=0)
10231028

10241029
callbacks_internal = DiffEqBase.CallbackSet(callback)
10251030

@@ -1271,6 +1276,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractDAEProblem{uType, duType, tu
12711276
advance_to_tstop,
12721277
stop_at_next_tstop,
12731278
progress,
1279+
progress_steps,
12741280
progress_name,
12751281
progress_message,
12761282
progress_id,
@@ -1296,6 +1302,7 @@ function DiffEqBase.__init(prob::DiffEqBase.AbstractDAEProblem{uType, duType, tu
12961302
tmp,
12971303
uprev,
12981304
Cint(flag),
1305+
0,
12991306
false,
13001307
0,
13011308
1,
@@ -1331,7 +1338,7 @@ function solver_step(integrator::CVODEIntegrator, tstop)
13311338
integrator.flag = CVode(integrator.mem, tstop, integrator.u_nvec, integrator.tout,
13321339
CV_ONE_STEP)
13331340
if integrator.opts.progress
1334-
Logging.@logmsg(-1,
1341+
Logging.@logmsg(Logging.LogLevel(-1),
13351342
integrator.opts.progress_name,
13361343
_id=integrator.opts.progress_id,
13371344
message=integrator.opts.progress_message(integrator.dt,
@@ -1345,7 +1352,7 @@ function solver_step(integrator::ARKODEIntegrator, tstop)
13451352
integrator.flag = ARKStepEvolve(integrator.mem, tstop, integrator.u_nvec,
13461353
integrator.tout, ARK_ONE_STEP)
13471354
if integrator.opts.progress
1348-
Logging.@logmsg(-1,
1355+
Logging.@logmsg(Logging.LogLevel(-1),
13491356
integrator.opts.progress_name,
13501357
_id=integrator.opts.progress_id,
13511358
message=integrator.opts.progress_message(integrator.dt,
@@ -1362,8 +1369,10 @@ function solver_step(integrator::IDAIntegrator, tstop)
13621369
integrator.u_nvec,
13631370
integrator.du_nvec,
13641371
IDA_ONE_STEP)
1365-
if integrator.opts.progress
1366-
Logging.@logmsg(-1,
1372+
integrator.iter += 1
1373+
if integrator.opts.progress && integrator.iter % integrator.opts.progress_steps == 0
1374+
println("logging progress")
1375+
Logging.@logmsg(Logging.LogLevel(-1),
13671376
integrator.opts.progress_name,
13681377
_id=integrator.opts.progress_id,
13691378
message=integrator.opts.progress_message(integrator.dt,
@@ -1444,7 +1453,7 @@ function DiffEqBase.solve!(integrator::AbstractSundialsIntegrator; early_free =
14441453
end
14451454

14461455
if integrator.opts.progress
1447-
Logging.@logmsg(-1,
1456+
Logging.@logmsg(Logging.LogLevel(-1),
14481457
integrator.opts.progress_name,
14491458
_id=integrator.opts.progress_id,
14501459
message=integrator.opts.progress_message(integrator.dt,

0 commit comments

Comments
 (0)