# HG changeset patch # User paugier <pierre.augier@ens-lyon.org> # Date 1540476605 -7200 # Thu Oct 25 16:10:05 2018 +0200 # Node ID 8afa4454ac9fbe9d917927230a1b34d94ba9d943 # Parent c6bb9b9b3aeafd19ad71c511a2a701e42847673a Fix a bug with parallel h5py + 0d solver diff --git a/fluidsim/base/output/phys_fields.py b/fluidsim/base/output/phys_fields.py --- a/fluidsim/base/output/phys_fields.py +++ b/fluidsim/base/output/phys_fields.py @@ -205,10 +205,13 @@ _create_variable(group_state_phys, k, field_seq) else: h5file.atomic = False - if len(self.oper.shapeX_loc) == 2: + ndim = len(self.oper.shapeX_loc) + if ndim == 2: xstart, ystart = self.oper.seq_indices_first_X - if len(self.oper.shapeX_loc) == 3: + elif ndim == 3: xstart, ystart, zstart = self.oper.seq_indices_first_X + else: + raise NotImplementedError xend = xstart + self.oper.shapeX_loc[0] yend = ystart + self.oper.shapeX_loc[1] for k in state_phys.keys: diff --git a/fluidsim/base/test/test_base_solver.py b/fluidsim/base/test/test_base_solver.py --- a/fluidsim/base/test/test_base_solver.py +++ b/fluidsim/base/test/test_base_solver.py @@ -2,8 +2,7 @@ import shutil import fluiddyn as fld -from fluiddyn.io import stdout_redirected -import fluiddyn.util.mpi as mpi +from fluiddyn.util import mpi # to get fld.show import fluiddyn.output @@ -21,8 +20,7 @@ params.time_stepping.it_end = 4 params.time_stepping.deltat0 = 0.1 - with stdout_redirected(): - self.sim = Simul(params) + self.sim = Simul(params) def tearDown(self): # clean by removing the directory @@ -30,10 +28,10 @@ if hasattr(self, "sim"): shutil.rmtree(self.sim.output.path_run) + @unittest.skipIf(mpi.nb_proc > 1, "Od solvers do not work with mpi") def test_simul(self): """Should be able to run a base experiment.""" - with stdout_redirected(): - self.sim.time_stepping.start() + self.sim.time_stepping.start() fld.show() diff --git a/fluidsim/operators/operators0d.py b/fluidsim/operators/operators0d.py --- a/fluidsim/operators/operators0d.py +++ b/fluidsim/operators/operators0d.py @@ -9,9 +9,7 @@ """ -from __future__ import division - -from builtins import object +from fluiddyn.util import mpi class Operators0D(object): @@ -26,6 +24,8 @@ params._set_child("oper") def __init__(self, params=None, SEQUENTIAL=None): + if mpi.nb_proc > 1: + raise ValueError self.params = params self.axes = tuple()