Skip to content

Commit 16620ff

Browse files
committed
Drop sumpy.kernel.DirectionalTargetDerivative
Closes gh-228
1 parent 5731120 commit 16620ff

5 files changed

Lines changed: 4 additions & 82 deletions

File tree

examples/curve-pot.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@ def process_kernel(knl, what_operator):
3636
elif what_operator == "D":
3737
from sumpy.kernel import DirectionalSourceDerivative
3838
source_knl = DirectionalSourceDerivative(knl)
39-
# DirectionalTargetDerivative (temporarily?) removed
40-
# elif what_operator == "S'":
41-
# from sumpy.kernel import DirectionalTargetDerivative
42-
# knl = DirectionalTargetDerivative(knl)
4339
else:
4440
raise RuntimeError(f"unrecognized operator '{what_operator}'")
4541

sumpy/expansion/multipole.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,9 @@ def evaluate(self, kernel, coeffs, bvec, rscale, sac=None):
100100
rscale = 1
101101

102102
base_taker = kernel.get_derivative_taker(bvec, rscale, sac)
103-
# Following is a no-op, but AxisTargetDerivative.postprocess_at_target and
104-
# DirectionalTargetDerivative.postprocess_at_target only handles
105-
# DifferentiatedExprDerivativeTaker and sympy expressions, so we need to
106-
# make the taker a DifferentitatedExprDerivativeTaker instance.
103+
# Following is a no-op, but AxisTargetDerivative.postprocess_at_target
104+
# only handles DifferentiatedExprDerivativeTaker and sympy expressions,
105+
# so we need to make the taker a DifferentitatedExprDerivativeTaker instance.
107106
base_taker = DifferentiatedExprDerivativeTaker(base_taker,
108107
{tuple([0]*self.dim): 1})
109108
taker = kernel.postprocess_at_target(base_taker, bvec)

sumpy/kernel.py

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@
7979
.. autoclass:: AxisTargetDerivative
8080
.. autoclass:: AxisSourceDerivative
8181
.. autoclass:: DirectionalSourceDerivative
82-
.. autoclass:: DirectionalTargetDerivative
8382
8483
Transforming kernels
8584
--------------------
@@ -1143,74 +1142,6 @@ def __repr__(self):
11431142
return f"{type(self).__name__}({self.inner_kernel!r}, {self.dir_vec_name})"
11441143

11451144

1146-
class DirectionalTargetDerivative(DirectionalDerivative):
1147-
directional_kind = "tgt"
1148-
target_array_name = "targets"
1149-
1150-
def get_code_transformer(self):
1151-
from sumpy.codegen import VectorComponentRewriter
1152-
vcr = VectorComponentRewriter([self.dir_vec_name])
1153-
from pymbolic.primitives import Variable
1154-
via = _VectorIndexAdder(self.dir_vec_name, (Variable("itgt"),))
1155-
1156-
inner_transform = self.inner_kernel.get_code_transformer()
1157-
1158-
def transform(expr):
1159-
return via(vcr(inner_transform(expr)))
1160-
1161-
return transform
1162-
1163-
def postprocess_at_target(self, expr, bvec):
1164-
from sumpy.derivative_taker import (
1165-
DifferentiatedExprDerivativeTaker,
1166-
diff_derivative_coeff_dict,
1167-
)
1168-
from sumpy.symbolic import make_sym_vector as make_sympy_vector
1169-
dir_vec = make_sympy_vector(self.dir_vec_name, self.dim)
1170-
target_vec = make_sympy_vector(self.target_array_name, self.dim)
1171-
1172-
expr = self.inner_kernel.postprocess_at_target(expr, bvec)
1173-
1174-
# bvec = tgt - center
1175-
if not isinstance(expr, DifferentiatedExprDerivativeTaker):
1176-
result = 0
1177-
for axis in range(self.dim):
1178-
# Since `bvec` and `tgt` are two different symbolic variables
1179-
# need to differentiate by both to get the correct answer
1180-
result += (expr.diff(bvec[axis]) + expr.diff(target_vec[axis])) \
1181-
* dir_vec[axis]
1182-
return result
1183-
1184-
new_transformation = defaultdict(lambda: 0)
1185-
for axis in range(self.dim):
1186-
axis_transformation = diff_derivative_coeff_dict(
1187-
expr.derivative_coeff_dict, axis, target_vec)
1188-
for mi, coeff in axis_transformation.items():
1189-
new_transformation[mi] += coeff * dir_vec[axis]
1190-
1191-
return DifferentiatedExprDerivativeTaker(expr.taker,
1192-
dict(new_transformation))
1193-
1194-
def get_args(self):
1195-
return [
1196-
KernelArgument(
1197-
loopy_arg=lp.GlobalArg(
1198-
self.dir_vec_name,
1199-
None,
1200-
shape=(self.dim, "ntargets"),
1201-
offset=lp.auto
1202-
),
1203-
),
1204-
*self.inner_kernel.get_args()
1205-
]
1206-
1207-
def prepare_loopy_kernel(self, loopy_knl):
1208-
loopy_knl = self.inner_kernel.prepare_loopy_kernel(loopy_knl)
1209-
return lp.tag_array_axes(loopy_knl, self.dir_vec_name, "sep,C")
1210-
1211-
mapper_method = "map_directional_target_derivative"
1212-
1213-
12141145
class DirectionalSourceDerivative(DirectionalDerivative):
12151146
directional_kind = "src"
12161147

sumpy/qbx.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,6 @@ def find_jump_term(kernel, arg_provider):
512512
AxisTargetDerivative,
513513
DerivativeBase,
514514
DirectionalSourceDerivative,
515-
DirectionalTargetDerivative,
516515
)
517516

518517
tgt_derivatives = []
@@ -522,9 +521,6 @@ def find_jump_term(kernel, arg_provider):
522521
if isinstance(kernel, AxisTargetDerivative):
523522
tgt_derivatives.append(kernel.axis)
524523
kernel = kernel.kernel
525-
elif isinstance(kernel, DirectionalTargetDerivative):
526-
tgt_derivatives.append(kernel.dir_vec_name)
527-
kernel = kernel.kernel
528524
elif isinstance(kernel, AxisSourceDerivative):
529525
src_derivatives.append(kernel.axis)
530526
kernel = kernel.kernel

sumpy/tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ def __init__(self, ctx: Any,
298298
device: Any | None = None) -> None:
299299
"""
300300
:arg target_kernels: list of :class:`~sumpy.kernel.Kernel` instances,
301-
with :class:`sumpy.kernel.DirectionalTargetDerivative` as
301+
with :class:`sumpy.kernel.AxisTargetDerivative` as
302302
the outermost kernel wrappers, if present.
303303
:arg source_kernels: list of :class:`~sumpy.kernel.Kernel` instances
304304
with :class:`~sumpy.kernel.DirectionalSourceDerivative` as the

0 commit comments

Comments
 (0)