|
6 | 6 | from parcels.loggers import logger |
7 | 7 | import numpy as np |
8 | 8 | import progressbar |
| 9 | +import time as time_module |
9 | 10 | from collections import Iterable |
10 | 11 | from datetime import timedelta as delta |
11 | 12 | from datetime import datetime, date |
@@ -228,7 +229,7 @@ def remove(self, indices): |
228 | 229 |
|
229 | 230 | def execute(self, pyfunc=AdvectionRK4, endtime=None, runtime=None, dt=1., |
230 | 231 | moviedt=None, recovery=None, output_file=None, movie_background_field=None, |
231 | | - verbose_progress=True): |
| 232 | + verbose_progress=None): |
232 | 233 | """Execute a given kernel function over the particle set for |
233 | 234 | multiple timesteps. Optionally also provide sub-timestepping |
234 | 235 | for particle output. |
@@ -340,9 +341,15 @@ def execute(self, pyfunc=AdvectionRK4, endtime=None, runtime=None, dt=1., |
340 | 341 | next_input = self.fieldset.computeTimeChunk(time, np.sign(dt)) |
341 | 342 |
|
342 | 343 | tol = 1e-12 |
| 344 | + if verbose_progress is None: |
| 345 | + walltime_start = time_module.time() |
343 | 346 | if verbose_progress: |
344 | | - pbar = progressbar.ProgressBar(max_value=abs(endtime - _starttime)) |
| 347 | + pbar = progressbar.ProgressBar(max_value=abs(endtime - _starttime)).start() |
345 | 348 | while (time < endtime and dt > 0) or (time > endtime and dt < 0) or dt == 0: |
| 349 | + if verbose_progress is None and time_module.time() - walltime_start > 10: |
| 350 | + # Showing progressbar if runtime > 10 seconds |
| 351 | + pbar = progressbar.ProgressBar(max_value=abs(endtime - _starttime)).start() |
| 352 | + verbose_progress = True |
346 | 353 | if dt > 0: |
347 | 354 | time = min(next_prelease, next_input, next_output, next_movie, endtime) |
348 | 355 | else: |
|
0 commit comments