diff --git a/hysop/problem.py b/hysop/problem.py index 9bf70d4dc07e80c87997f10dcf453134fd0f61b5..6962118c644600ddef8ce960c9c2cd3d1dba7603 100644 --- a/hysop/problem.py +++ b/hysop/problem.py @@ -1,4 +1,5 @@ -import sys, datetime +import sys +import datetime from hysop.constants import Backend, MemoryOrdering from hysop.tools.types import check_instance, first_not_None, to_tuple, to_list @@ -15,7 +16,7 @@ class Problem(ComputationalGraph): def __init__(self, name=None, method=None, mpi_params=None, check_unique_clenv=True, **kwds): - mpi_params = first_not_None(mpi_params, MPIParams()) # enforce mpi params for problems + mpi_params = first_not_None(mpi_params, MPIParams()) # enforce mpi params for problems super(Problem, self).__init__(name=name, method=method, mpi_params=mpi_params, **kwds) self._do_check_unique_clenv = check_unique_clenv @@ -138,8 +139,9 @@ class Problem(ComputationalGraph): simu.initialize() check_instance(checkpoint_handler, CheckpointHandler, allow_none=True) - checkpoint_handler.create_checkpoint_template(self, simu) - checkpoint_handler.load_checkpoint(self, simu) + if checkpoint_handler: + checkpoint_handler.create_checkpoint_template(self, simu) + checkpoint_handler.load_checkpoint(self, simu) vprint('\nSolving problem...') with Timer() as tm: @@ -147,7 +149,7 @@ class Problem(ComputationalGraph): vprint() simu.print_state() self.apply(simulation=simu, dbg=dbg, **kwds) - should_dump_checkpoint = checkpoint_handler.should_dump(simu) # determined before simu advance + should_dump_checkpoint = checkpoint_handler and checkpoint_handler.should_dump(simu) # determined before simu advance simu.advance(dbg=dbg, plot_freq=plot_freq) if should_dump_checkpoint: checkpoint_handler.save_checkpoint(self, simu) @@ -166,7 +168,8 @@ class Problem(ComputationalGraph): vprint_banner(msg, spacing=True, at_border=2) simu.finalize() - checkpoint_handler.finalize(self.mpi_params) + if checkpoint_handler: + checkpoint_handler.finalize(self.mpi_params) self.final_report() if (dbg is not None): @@ -179,4 +182,3 @@ class Problem(ComputationalGraph): def finalize(self): vprint('Finalizing problem...') super(Problem, self).finalize() -