Skip to content

Commit b0b67a1

Browse files
committed
api: fix interp of params inside derivatives
1 parent 3169bb5 commit b0b67a1

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

devito/finite_differences/differentiable.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1133,7 +1133,9 @@ def _(expr, x0, **kwargs):
11331133
def _(expr, x0, **kwargs):
11341134
from devito.finite_differences.derivative import Derivative
11351135
x0_expr = {d: v for d, v in x0.items() if v is not expr.indices_ref[d]}
1136-
if x0_expr:
1136+
if expr.is_parameter:
1137+
return expr._evaluate(**kwargs)
1138+
elif x0_expr:
11371139
dims = tuple((d, 0) for d in x0_expr)
11381140
fd_o = tuple([expr.interp_order]*len(dims))
11391141
return Derivative(expr, *dims, fd_order=fd_o, x0=x0_expr)

devito/types/dense.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,8 @@ def shape_global(self):
301301

302302
@property
303303
def symbolic_shape(self):
304-
return tuple(self._C_get_field(FULL, d).size for d in self.dimensions)
304+
return DimensionTuple(*[self._C_get_field(FULL, d).size for d in self.dimensions],
305+
getters=self.dimensions)
305306

306307
@property
307308
def size_global(self):
@@ -1018,7 +1019,7 @@ class Function(DiscreteFunction):
10181019
is_autopaddable = True
10191020

10201021
__rkwargs__ = (DiscreteFunction.__rkwargs__ +
1021-
('space_order', 'interp_order', 'dimensions'))
1022+
('space_order', 'interp_order', 'dimensions', 'is_parameter'))
10221023

10231024
def _cache_meta(self):
10241025
# Attach additional metadata to self's cache entry
@@ -1063,7 +1064,7 @@ def __init_finalize__(self, *args, **kwargs):
10631064
# Used at operator evaluation to evaluate the Function at the
10641065
# variable location (i.e. if the variable is staggered in x the
10651066
# parameter has to be computed at x + hx/2)
1066-
self._is_parameter = kwargs.get('parameter', False)
1067+
self._is_parameter = kwargs.get('parameter', kwargs.get('is_parameter', False))
10671068

10681069
def __fd_setup__(self):
10691070
"""

0 commit comments

Comments
 (0)