Skip to content

Commit 2a69385

Browse files
add logmgr_verify_steptime
1 parent 833fdc1 commit 2a69385

2 files changed

Lines changed: 26 additions & 4 deletions

File tree

examples/pulse.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,14 +244,13 @@ def my_health_check(pressure):
244244
return health_error
245245

246246
def my_pre_step(step, t, dt, state):
247+
if logmgr:
248+
logmgr.tick_before()
249+
247250
fluid_state = make_fluid_state(state, gas_model)
248251
dv = fluid_state.dv
249252

250253
try:
251-
252-
if logmgr:
253-
logmgr.tick_before()
254-
255254
from mirgecom.simutil import check_step
256255
do_viz = check_step(step=step, interval=nviz)
257256
do_restart = check_step(step=step, interval=nrestart)
@@ -288,6 +287,10 @@ def my_post_step(step, t, dt, state):
288287
set_dt(logmgr, dt)
289288
set_sim_state(logmgr, dim, state, eos)
290289
logmgr.tick_after()
290+
291+
from mirgecom.logging_quantities import logmgr_verify_steptime
292+
logmgr_verify_steptime(logmgr)
293+
291294
return state, dt
292295

293296
def my_rhs(t, state):

mirgecom/logging_quantities.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
.. autofunction:: logmgr_add_device_memory_usage
3838
.. autofunction:: logmgr_add_many_discretization_quantities
3939
.. autofunction:: logmgr_add_mempool_usage
40+
.. autofunction:: logmgr_verify_steptime
4041
.. autofunction:: add_package_versions
4142
.. autofunction:: set_sim_state
4243
.. autofunction:: logmgr_set_time
@@ -170,6 +171,24 @@ def logmgr_add_many_discretization_quantities(logmgr: LogManager, dcoll, dim,
170171
units_for_logging, axis=d, dd=dd))
171172

172173

174+
def logmgr_verify_steptime(logmgr: LogManager, tolerance: float = 1.1) -> None:
175+
"""Verify that the step time is within *tolerance* of t_2step.
176+
177+
Call this function after :meth:`logmgr.tick_after`.
178+
179+
:arg tolerance: tolerance factor for the step time.
180+
"""
181+
182+
t_step = logmgr.last_values.get("t_step", 0.0)
183+
t_2step = logmgr.last_values.get("t_2step", 0.0)
184+
t_log = logmgr.last_values.get("t_log", 0.0)
185+
186+
if (t_step + t_log) * tolerance < t_2step:
187+
from warnings import warn
188+
warn("warning: (t_step + t_log) * tolerance is less than t_2step: "
189+
f"{t_step=}, {t_log=}, {t_2step=}", stacklevel=2)
190+
191+
173192
# {{{ Package versions
174193

175194
def add_package_versions(mgr: LogManager, path_to_version_sh: Optional[str] = None) \

0 commit comments

Comments
 (0)