Skip to content
Snippets Groups Projects

fix minor regressions introduced with !86

Merged Michael Kuron requested to merge staggered into master
Compare and Show latest version
1 file
+ 11
1
Preferences
Compare changes
+ 11
1
@@ -466,6 +466,7 @@ class Field(AbstractField):
"""
assert FieldType.is_staggered(self)
offset_orig = offset
if type(offset) is np.ndarray:
offset = tuple(offset)
if type(offset) is str:
@@ -484,7 +485,11 @@ class Field(AbstractField):
offset[i] += sp.Rational(1, 2)
neighbor[i] = 1
neighbor = offset_to_direction_string(neighbor)
idx = self.staggered_stencil.index(neighbor)
try:
idx = self.staggered_stencil.index(neighbor)
except ValueError:
raise ValueError("{} is not a valid neighbor for the {} stencil".format(offset_orig,
self.staggered_stencil_name))
offset = tuple(offset)
if self.index_dimensions == 1: # this field stores a scalar value at each staggered position
@@ -524,6 +529,11 @@ class Field(AbstractField):
raise ValueError("No known stencil has {} staggered points".format(self.index_shape[0]))
return stencils[self.spatial_dimensions][self.index_shape[0]]
@property
def staggered_stencil_name(self):
assert FieldType.is_staggered(self)
return "D%dQ%d" % (self.spatial_dimensions, self.index_shape[0] * 2 + 1)
def __call__(self, *args, **kwargs):
center = tuple([0] * self.spatial_dimensions)
return Field.Access(self, center)(*args, **kwargs)