Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f8c2bd0

Browse files
authored
Merge pull request #2726 from devitocodes/patch-sparse-pos
api: fix sparse positon match with -1
2 parents f8cc3ee + 9e7763d commit f8c2bd0

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

devito/types/sparse.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ def __shape_setup__(cls, **kwargs):
112112
loc_shape = []
113113
assert len(dimensions) == len(shape)
114114
for i, (d, s) in enumerate(zip(dimensions, shape)):
115-
if i == cls._sparse_position:
115+
if i == cls._sparse_position or \
116+
(cls._sparse_position == -1 and i == len(dimensions)-1):
116117
loc_shape.append(glb_npoint[grid.distributor.myrank])
117118
elif d in grid.dimensions:
118119
loc_shape.append(grid.size_map[d].loc)
@@ -741,7 +742,7 @@ def time_dim(self):
741742

742743
@classmethod
743744
def __shape_setup__(cls, **kwargs):
744-
shape = list(AbstractSparseFunction.__shape_setup__(**kwargs))
745+
shape = list(super().__shape_setup__(**kwargs))
745746
dimensions = as_tuple(kwargs.get('dimensions'))
746747
if dimensions is None or len(shape) == len(dimensions):
747748
# Shape has already been setup, for example via rebuild

0 commit comments

Comments
 (0)