diff --git a/src/CelerisLab/lbm/blocks.py b/src/CelerisLab/lbm/blocks.py index f0fab2c..8869fe2 100644 --- a/src/CelerisLab/lbm/blocks.py +++ b/src/CelerisLab/lbm/blocks.py @@ -330,7 +330,8 @@ class BlockLayout2D: raise ValueError("a layout with holes unpacks floating arrays only (holes are NaN)") ob, oc = np.divmod(self.owner.ravel()[owned].astype(np.intp), flat.shape[2]) dense = np.empty((NQ, owned.size), dtype=blocked.dtype) - dense[:, ~owned] = np.nan + if not owned.all(): # even an empty NaN assignment fails for integer dtypes + dense[:, ~owned] = np.nan dense[:, owned] = flat[ob, :, oc].T return dense.reshape(NQ, *self.shape)