1
1
from functools import wraps
2
2
3
- from devito .types import NODE
4
3
from devito .types .dimension import StencilDimension
5
4
from .differentiable import Weights , DiffDerivative
6
5
from .tools import generate_indices , fd_weights_registry
@@ -101,12 +100,7 @@ def check_staggering(func):
101
100
def wrapper (expr , dim , x0 = None , expand = True ):
102
101
grid = expr .grid
103
102
x0 = {k : v for k , v in x0 .items () if k .is_Space }
104
- if expr .staggered is NODE or expr .staggered is None :
105
- cond = x0 == {} or x0 == all_staggered (grid ) or x0 == grid_node (grid )
106
- elif expr .staggered == grid .dimensions :
107
- cond = x0 == {} or x0 == all_staggered (grid ) or x0 == grid_node (grid )
108
- else :
109
- cond = False
103
+ cond = x0 == {} or x0 == all_staggered (grid ) or x0 == grid_node (grid )
110
104
if cond :
111
105
return func (expr , dim , x0 = x0 , expand = expand )
112
106
else :
@@ -117,7 +111,8 @@ def wrapper(expr, dim, x0=None, expand=True):
117
111
@check_staggering
118
112
def d45 (expr , dim , x0 = None , expand = True ):
119
113
"""
120
- RSFD approximation of the derivative of `expr` along `dim` at point `x0`.
114
+ Rotated staggered grid finite-differences (RSFD) discretization
115
+ of the derivative of `expr` along `dim` at point `x0`.
121
116
122
117
Parameters
123
118
----------
@@ -132,7 +127,8 @@ def d45(expr, dim, x0=None, expand=True):
132
127
"""
133
128
# Make sure the grid supports RSFD
134
129
if expr .grid .dim not in [2 , 3 ]:
135
- raise ValueError ('RSFD only supported in 2D and 3D' )
130
+ raise ValueError ('Rotated staggered grid finite-differences (RSFD)'
131
+ ' only supported in 2D and 3D' )
136
132
137
133
# Diagonals weights
138
134
w = dir_weights [(dim .name , expr .grid .dim )]
0 commit comments