From ac45c22b81554a682255381df7e559ed7f31c72b Mon Sep 17 00:00:00 2001 From: Oliver Hennigh Date: Thu, 11 Jun 2026 10:41:23 -0700 Subject: [PATCH 1/2] Add uniform grid vector calculus functionals --- .../physicsnemo/nn/functional/registry.py | 10 + docs/api/nn/functionals/derivatives.rst | 21 + .../derivatives/uniform_grid_curl.png | Bin 0 -> 194147 bytes .../derivatives/uniform_grid_divergence.png | Bin 0 -> 281333 bytes .../derivatives/uniform_grid_laplacian.png | Bin 0 -> 279217 bytes physicsnemo/nn/functional/__init__.py | 6 + .../nn/functional/derivatives/__init__.py | 9 + .../derivatives/uniform_grid_curl/__init__.py | 19 + .../uniform_grid_curl/_torch_impl.py | 51 ++ .../uniform_grid_curl/_warp_impl.py | 448 ++++++++++++++ .../uniform_grid_curl/uniform_grid_curl.py | 177 ++++++ .../derivatives/uniform_grid_curl/utils.py | 36 ++ .../uniform_grid_divergence/__init__.py | 19 + .../uniform_grid_divergence/_torch_impl.py | 45 ++ .../uniform_grid_divergence/_warp_impl.py | 549 ++++++++++++++++++ .../uniform_grid_divergence.py | 184 ++++++ .../uniform_grid_divergence/utils.py | 36 ++ .../uniform_grid_laplacian/__init__.py | 19 + .../uniform_grid_laplacian/_torch_impl.py | 41 ++ .../uniform_grid_laplacian/_warp_impl.py | 356 ++++++++++++ .../uniform_grid_laplacian.py | 181 ++++++ .../uniform_grid_laplacian/utils.py | 28 + .../derivatives/test_uniform_grid_curl.py | 225 +++++++ .../test_uniform_grid_divergence.py | 227 ++++++++ .../test_uniform_grid_laplacian.py | 211 +++++++ 25 files changed, 2898 insertions(+) create mode 100644 docs/img/nn/functional/derivatives/uniform_grid_curl.png create mode 100644 docs/img/nn/functional/derivatives/uniform_grid_divergence.png create mode 100644 docs/img/nn/functional/derivatives/uniform_grid_laplacian.png create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_curl/__init__.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_curl/uniform_grid_curl.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_curl/utils.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_divergence/__init__.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_divergence/uniform_grid_divergence.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_divergence/utils.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/__init__.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/uniform_grid_laplacian.py create mode 100644 physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/utils.py create mode 100644 test/nn/functional/derivatives/test_uniform_grid_curl.py create mode 100644 test/nn/functional/derivatives/test_uniform_grid_divergence.py create mode 100644 test/nn/functional/derivatives/test_uniform_grid_laplacian.py diff --git a/benchmarks/physicsnemo/nn/functional/registry.py b/benchmarks/physicsnemo/nn/functional/registry.py index 3e62c775c1..6c170851c7 100644 --- a/benchmarks/physicsnemo/nn/functional/registry.py +++ b/benchmarks/physicsnemo/nn/functional/registry.py @@ -23,7 +23,10 @@ MeshLSQGradient, RectilinearGridGradient, SpectralGridGradient, + UniformGridCurl, + UniformGridDivergence, UniformGridGradient, + UniformGridLaplacian, ) from physicsnemo.nn.functional.fourier_spectral import ( IRFFT, @@ -36,6 +39,8 @@ ) from physicsnemo.nn.functional.geometry import ( FarthestPointSampling, + MeshPoissonDiskSample, + MeshToVoxelFraction, SignedDistanceField, ) from physicsnemo.nn.functional.interpolation import ( @@ -64,8 +69,13 @@ MeshGreenGaussGradient, SpectralGridGradient, MeshlessFDDerivatives, + UniformGridDivergence, + UniformGridCurl, + UniformGridLaplacian, # Geometry. FarthestPointSampling, + MeshPoissonDiskSample, + MeshToVoxelFraction, SignedDistanceField, # Interpolation. GridToPointInterpolation, diff --git a/docs/api/nn/functionals/derivatives.rst b/docs/api/nn/functionals/derivatives.rst index 0e132c76a7..ef543934cc 100644 --- a/docs/api/nn/functionals/derivatives.rst +++ b/docs/api/nn/functionals/derivatives.rst @@ -32,3 +32,24 @@ Derivative Functionals :width: 100% .. autofunction:: physicsnemo.nn.functional.meshless_fd_derivatives + +Uniform Grid Vector Calculus +---------------------------- + +.. autofunction:: physicsnemo.nn.functional.uniform_grid_divergence + +.. figure:: /img/nn/functional/derivatives/uniform_grid_divergence.png + :alt: Uniform grid divergence example + :width: 100% + +.. autofunction:: physicsnemo.nn.functional.uniform_grid_curl + +.. figure:: /img/nn/functional/derivatives/uniform_grid_curl.png + :alt: Uniform grid curl example + :width: 100% + +.. autofunction:: physicsnemo.nn.functional.uniform_grid_laplacian + +.. figure:: /img/nn/functional/derivatives/uniform_grid_laplacian.png + :alt: Uniform grid Laplacian example + :width: 100% diff --git a/docs/img/nn/functional/derivatives/uniform_grid_curl.png b/docs/img/nn/functional/derivatives/uniform_grid_curl.png new file mode 100644 index 0000000000000000000000000000000000000000..78db06b1e3606c0f6879a6102d3d22554db92172 GIT binary patch literal 194147 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 yN!u;(few zwTXyGnuv%lUb#vPwCoo-9}-<4B2s?(_@!UkZqVf>Sw$pnzy8e!QhCkbci*z<dkOz_w}*njXAW8$$+nq zuMhBA47Xbd$`3rPrzPC|zrG@}L!SKC7U0w6&+Gr*_U*z5!@swQJW9FvZ*6a`Joo&! zCZZuCha3OicK03(c-;T;dUP>Y^1n0yAMD?Vkoml5vT_3W2kY>MP>==QhE z6r4=+ydk49N~9r&Tos2P_t4De!>my3UM3!ME<7lMSXL1j5S^SOgP?RH`D&-o34w#X zJf-KI9SaY81}j)y8;}!0r}$jbOpl}RlJZ)|Ixgpi4lxRu^PHz2!ow#RJezi@1;EG> zGi-6k!U4)g9+Ne$XNZh15A1j_$M`26qb~mw{ZUdlR2_7$x{pa7jTG3;*sztw&zWbq z4LZITJUdK>2gBzO0;mCBsJ?Ez#Ifr8Mcn?GFBqFa1$jN94L3fb0_`1UQSj^ZKj=>x z4=!ts17mjv!MMm&xB9*AoM=!&Vee4nZBV$LrC&~)Do+08fc`bO?JBz_}PLsoR$ zke&~-oCuw9Pn69FJnC`PXhO~G;Ey-D2Bp!*lIux1Nv-Fzi+IQm6Epru+1$W8K0aSc z;Lm*?#{Ywh4?FxOr56uV&E*)RQK?Ey6-#_#v(|ll)n&);%7agGS6yWe&`Qknj;V|p zxJl^dKwXpnA+^52{(I*0mh8wT9|&?i)u~Jpj~oQc;SxC@`1i~U?i=$IvKSqD1c`jp znQ&M7>#^7{3b>^DwXz0`6Wnll-f}}lp!s;ta}bYZ#-Go_!GxSDg$FTRp^Jy7_|%c6D9#KpF2vLqFJaS9YmQN~ zOLy<(6E_331fv7b6`1|zcW8pvc+3USyHx@|f4@^{LYp@3RgQ}4n+5C}76>$KvYdWZ z;cr~#pnzS~_B)-n0|UJ)rs&O}%SU~T0Yh&Wf1*!oCXL#dg7%Rc6mrKOeHvx+{Qtz; zo1#m9@(wVp?}k;*egl%`VtM{|w9@=fC4ngN_3=E>)vrJ8Rna#Iu0J;H3-X%g5okQ; zb2Bq>(bM(bcCe!nrYQI8=!1GKUrTkVjGaeRW#X4Z>D@9$RR4MSm&8ZBf3M!fP6Z15 zaV1Y#!`T8F*dylb?CdmwCnbyM1-1zztCO`vboYa=CmO*=Lwt4f?(m>9Jo2zBGZ5D4Ht-sUl%S=X8|bi(y# z!G|5R@TQ%e$@$kSZcNC%I1SthAxfW+HQR=)CC)m>k<*&IetdUtViw-C)R`KLNL`de zPC^HS&*mcePDA7MOkS1ni3K71%oh+?93m4hgPud|t&=49;}ao%znrUVPCU$OT8KF^ zUe9%j&8Wgu0}-=}!ACtD4jE|P
lmOhEJGzVktY0>LLG1(~=>e82eOjyb-eX2K*0 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 RWAl=xP(YqJnhn>#yM&pJuYP2B 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

  • y2yI;>YMRs9!Gzr%+_38SHcq*s(J17jewK&KL* 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%0DA5#vj=?cbw$ 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 literal 0 HcmV?d00001 diff --git a/docs/img/nn/functional/derivatives/uniform_grid_laplacian.png b/docs/img/nn/functional/derivatives/uniform_grid_laplacian.png new file mode 100644 index 0000000000000000000000000000000000000000..6e554d651f53a5563bcc6841afb09baf1370450c GIT binary patch literal 279217 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 z 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

    hU7fG5F(Ubig4AfOY8DZj$|8&;Duv4D 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 literal 0 HcmV?d00001 diff --git a/physicsnemo/nn/functional/__init__.py b/physicsnemo/nn/functional/__init__.py index 4d952d8fba..00affd78ae 100644 --- a/physicsnemo/nn/functional/__init__.py +++ b/physicsnemo/nn/functional/__init__.py @@ -20,7 +20,10 @@ meshless_fd_derivatives, rectilinear_grid_gradient, spectral_grid_gradient, + uniform_grid_curl, + uniform_grid_divergence, uniform_grid_gradient, + uniform_grid_laplacian, ) from .equivariant_ops import ( legendre_polynomials, @@ -60,6 +63,9 @@ "irfft2", "drop_path", "farthest_point_sampling", + "uniform_grid_curl", + "uniform_grid_divergence", + "uniform_grid_laplacian", "grid_to_point_interpolation", "imag", "interpolation", diff --git a/physicsnemo/nn/functional/derivatives/__init__.py b/physicsnemo/nn/functional/derivatives/__init__.py index 0306f0e6c8..de046588e0 100644 --- a/physicsnemo/nn/functional/derivatives/__init__.py +++ b/physicsnemo/nn/functional/derivatives/__init__.py @@ -25,15 +25,24 @@ rectilinear_grid_gradient, ) from .spectral_grid_gradient import SpectralGridGradient, spectral_grid_gradient +from .uniform_grid_curl import UniformGridCurl, uniform_grid_curl +from .uniform_grid_divergence import UniformGridDivergence, uniform_grid_divergence from .uniform_grid_gradient import UniformGridGradient, uniform_grid_gradient +from .uniform_grid_laplacian import UniformGridLaplacian, uniform_grid_laplacian __all__ = [ + "UniformGridCurl", + "UniformGridDivergence", + "UniformGridLaplacian", "MeshGreenGaussGradient", "MeshlessFDDerivatives", "MeshLSQGradient", "RectilinearGridGradient", "SpectralGridGradient", "UniformGridGradient", + "uniform_grid_curl", + "uniform_grid_divergence", + "uniform_grid_laplacian", "mesh_green_gauss_gradient", "meshless_fd_derivatives", "mesh_lsq_gradient", diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/__init__.py b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/__init__.py new file mode 100644 index 0000000000..5dc6907ce8 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/__init__.py @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .uniform_grid_curl import UniformGridCurl, uniform_grid_curl + +__all__ = ["UniformGridCurl", "uniform_grid_curl"] diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py new file mode 100644 index 0000000000..49c163f439 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py @@ -0,0 +1,51 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from ..uniform_grid_gradient._torch_impl import uniform_grid_gradient_torch_multi +from .utils import validate_vector_field + + +def uniform_grid_curl_torch( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, +) -> torch.Tensor: + """Compute periodic uniform-grid curl with PyTorch tensor ops.""" + grid_ndim = validate_vector_field(vector_field) + jacobian_rows = [ + uniform_grid_gradient_torch_multi( + field=vector_field[component], + spacing=spacing, + order=order, + derivative_orders=1, + include_mixed=False, + ) + for component in range(grid_ndim) + ] + + if grid_ndim == 2: + return jacobian_rows[1][0] - jacobian_rows[0][1] + + curl_x = jacobian_rows[2][1] - jacobian_rows[1][2] + curl_y = jacobian_rows[0][2] - jacobian_rows[2][0] + curl_z = jacobian_rows[1][0] - jacobian_rows[0][1] + return torch.stack((curl_x, curl_y, curl_z), dim=0) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py new file mode 100644 index 0000000000..b1df305737 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py @@ -0,0 +1,448 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from .utils import validate_vector_field + +try: + import warp as wp + + from ..uniform_grid_gradient._warp_impl.utils import ( + _launch_dim, + _normalize_spacing, + _to_wp_tensor, + _warp_launch_context, + _wp_launch, + ) + + _HAS_WARP = True +except ImportError as import_error: + _HAS_WARP = False + _WARP_IMPORT_ERROR = import_error + + +_SUPPORTED_ORDERS = (2, 4) + + +def _validate_order(order: int) -> int: + if not isinstance(order, int): + raise TypeError(f"order must be an integer, got {type(order)}") + if order not in _SUPPORTED_ORDERS: + raise ValueError( + "uniform_grid_curl supports central orders " + f"{list(_SUPPORTED_ORDERS)}, got order={order}" + ) + return order + + +def _validate_positive_spacing(spacing_tuple: tuple[float, ...]) -> None: + for dx in spacing_tuple: + if dx <= 0.0: + raise ValueError("all spacing entries must be strictly positive") + + +def _to_fp32_contiguous(tensor: torch.Tensor) -> torch.Tensor: + if tensor.dtype == torch.float32 and tensor.is_contiguous(): + return tensor + return tensor.to(dtype=torch.float32).contiguous() + + +def _restore_dtype(tensor: torch.Tensor, target_dtype: torch.dtype) -> torch.Tensor: + if tensor.dtype == target_dtype: + return tensor + return tensor.to(dtype=target_dtype) + + +if _HAS_WARP: + + @wp.func + def _wrap_plus1(i: int, n: int) -> int: + return (i + 1) % n + + @wp.func + def _wrap_minus1(i: int, n: int) -> int: + return (i + n - 1) % n + + @wp.func + def _wrap_plus2(i: int, n: int) -> int: + return (i + 2) % n + + @wp.func + def _wrap_minus2(i: int, n: int) -> int: + return (i + n - 2) % n + + @wp.kernel + def _curl_2d_order2_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + d_v1_dx = (vector_field[1, ip, j] - vector_field[1, im, j]) * (0.5 * inv_dx0) + d_v0_dy = (vector_field[0, i, jp] - vector_field[0, i, jm]) * (0.5 * inv_dx1) + output[i, j] = d_v1_dx - d_v0_dy + + @wp.kernel + def _curl_2d_order4_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + d_v1_dx = ( + -vector_field[1, ip2, j] + + 8.0 * vector_field[1, ip1, j] + - 8.0 * vector_field[1, im1, j] + + vector_field[1, im2, j] + ) * (inv_dx0 / 12.0) + d_v0_dy = ( + -vector_field[0, i, jp2] + + 8.0 * vector_field[0, i, jp1] + - 8.0 * vector_field[0, i, jm1] + + vector_field[0, i, jm2] + ) * (inv_dx1 / 12.0) + output[i, j] = d_v1_dx - d_v0_dy + + @wp.kernel + def _curl_3d_order2_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array4d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = output.shape[1] + n1 = output.shape[2] + n2 = output.shape[3] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + output[0, i, j, k] = (vector_field[2, i, jp, k] - vector_field[2, i, jm, k]) * ( + 0.5 * inv_dx1 + ) - (vector_field[1, i, j, kp] - vector_field[1, i, j, km]) * (0.5 * inv_dx2) + output[1, i, j, k] = (vector_field[0, i, j, kp] - vector_field[0, i, j, km]) * ( + 0.5 * inv_dx2 + ) - (vector_field[2, ip, j, k] - vector_field[2, im, j, k]) * (0.5 * inv_dx0) + output[2, i, j, k] = (vector_field[1, ip, j, k] - vector_field[1, im, j, k]) * ( + 0.5 * inv_dx0 + ) - (vector_field[0, i, jp, k] - vector_field[0, i, jm, k]) * (0.5 * inv_dx1) + + @wp.kernel + def _curl_3d_order4_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array4d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = output.shape[1] + n1 = output.shape[2] + n2 = output.shape[3] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + d_v2_dy = ( + -vector_field[2, i, jp2, k] + + 8.0 * vector_field[2, i, jp1, k] + - 8.0 * vector_field[2, i, jm1, k] + + vector_field[2, i, jm2, k] + ) * (inv_dx1 / 12.0) + d_v1_dz = ( + -vector_field[1, i, j, kp2] + + 8.0 * vector_field[1, i, j, kp1] + - 8.0 * vector_field[1, i, j, km1] + + vector_field[1, i, j, km2] + ) * (inv_dx2 / 12.0) + d_v0_dz = ( + -vector_field[0, i, j, kp2] + + 8.0 * vector_field[0, i, j, kp1] + - 8.0 * vector_field[0, i, j, km1] + + vector_field[0, i, j, km2] + ) * (inv_dx2 / 12.0) + d_v2_dx = ( + -vector_field[2, ip2, j, k] + + 8.0 * vector_field[2, ip1, j, k] + - 8.0 * vector_field[2, im1, j, k] + + vector_field[2, im2, j, k] + ) * (inv_dx0 / 12.0) + d_v1_dx = ( + -vector_field[1, ip2, j, k] + + 8.0 * vector_field[1, ip1, j, k] + - 8.0 * vector_field[1, im1, j, k] + + vector_field[1, im2, j, k] + ) * (inv_dx0 / 12.0) + d_v0_dy = ( + -vector_field[0, i, jp2, k] + + 8.0 * vector_field[0, i, jp1, k] + - 8.0 * vector_field[0, i, jm1, k] + + vector_field[0, i, jm2, k] + ) * (inv_dx1 / 12.0) + output[0, i, j, k] = d_v2_dy - d_v1_dz + output[1, i, j, k] = d_v0_dz - d_v2_dx + output[2, i, j, k] = d_v1_dx - d_v0_dy + + @wp.kernel + def _curl_backward_2d_order2_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + grad_vector[0, i, j] = (grad_output[i, jp] - grad_output[i, jm]) * ( + 0.5 * inv_dx1 + ) + grad_vector[1, i, j] = (grad_output[im, j] - grad_output[ip, j]) * ( + 0.5 * inv_dx0 + ) + + @wp.kernel + def _curl_backward_2d_order4_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + grad_vector[0, i, j] = ( + -grad_output[i, jp2] + + 8.0 * grad_output[i, jp1] + - 8.0 * grad_output[i, jm1] + + grad_output[i, jm2] + ) * (inv_dx1 / 12.0) + grad_vector[1, i, j] = ( + grad_output[ip2, j] + - 8.0 * grad_output[ip1, j] + + 8.0 * grad_output[im1, j] + - grad_output[im2, j] + ) * (inv_dx0 / 12.0) + + _FORWARD_KERNELS = { + (2, 2): _curl_2d_order2_kernel, + (2, 4): _curl_2d_order4_kernel, + (3, 2): _curl_3d_order2_kernel, + (3, 4): _curl_3d_order4_kernel, + } + _BACKWARD_2D_KERNELS = { + 2: _curl_backward_2d_order2_kernel, + 4: _curl_backward_2d_order4_kernel, + } + + def _launch_curl_forward( + *, + vector_field_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + output_fp32: torch.Tensor, + ) -> None: + wp_device, wp_stream = _warp_launch_context(vector_field_fp32) + launch_shape = ( + output_fp32.shape if output_fp32.ndim == 2 else output_fp32.shape[1:] + ) + _wp_launch( + kernel=_FORWARD_KERNELS[(vector_field_fp32.ndim - 1, order)], + dim=_launch_dim(launch_shape), + inputs=[ + _to_wp_tensor(vector_field_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(output_fp32), + ], + device=wp_device, + stream=wp_stream, + ) + + def _launch_curl_backward_2d( + *, + grad_output_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + grad_vector_fp32: torch.Tensor, + ) -> None: + wp_device, wp_stream = _warp_launch_context(grad_output_fp32) + _wp_launch( + kernel=_BACKWARD_2D_KERNELS[order], + dim=_launch_dim(grad_output_fp32.shape), + inputs=[ + _to_wp_tensor(grad_output_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(grad_vector_fp32), + ], + device=wp_device, + stream=wp_stream, + ) + + @torch.library.custom_op( + "physicsnemo::uniform_grid_curl_warp_impl", mutates_args=() + ) + def uniform_grid_curl_impl( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, + ) -> torch.Tensor: + grid_ndim = validate_vector_field(vector_field) + spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(int(order)) + orig_dtype = vector_field.dtype + vector_field_fp32 = _to_fp32_contiguous(vector_field) + output_shape = ( + vector_field_fp32.shape[1:] if grid_ndim == 2 else vector_field_fp32.shape + ) + output_fp32 = torch.empty( + output_shape, + device=vector_field_fp32.device, + dtype=torch.float32, + ) + _launch_curl_forward( + vector_field_fp32=vector_field_fp32, + spacing_tuple=spacing_tuple[:grid_ndim], + order=order, + output_fp32=output_fp32, + ) + return _restore_dtype(output_fp32, orig_dtype) + + @uniform_grid_curl_impl.register_fake + def _uniform_grid_curl_impl_fake( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, + ) -> torch.Tensor: + _ = (spacing_meta, order) + output_shape = ( + vector_field.shape[1:] if vector_field.ndim == 3 else vector_field.shape + ) + return torch.empty( + output_shape, + device=vector_field.device, + dtype=vector_field.dtype, + ) + + def setup_uniform_grid_curl_context( + ctx: torch.autograd.function.FunctionCtx, + inputs: tuple, + output: torch.Tensor, + ) -> None: + vector_field, spacing_meta, order = inputs + _ = output + ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + ctx.order = int(order) + ctx.orig_dtype = vector_field.dtype + ctx.grid_ndim = vector_field.ndim - 1 + + def backward_uniform_grid_curl( + ctx: torch.autograd.function.FunctionCtx, + grad_output: torch.Tensor, + ) -> tuple[torch.Tensor | None, None, None]: + if grad_output is None or not ctx.needs_input_grad[0]: + return None, None, None + grad_output_fp32 = _to_fp32_contiguous(grad_output) + if ctx.grid_ndim == 2: + grad_vector_fp32 = torch.empty( + (2, *grad_output_fp32.shape), + device=grad_output_fp32.device, + dtype=torch.float32, + ) + _launch_curl_backward_2d( + grad_output_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple[:2], + order=ctx.order, + grad_vector_fp32=grad_vector_fp32, + ) + else: + grad_vector_fp32 = torch.empty_like(grad_output_fp32) + _launch_curl_forward( + vector_field_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple[:3], + order=ctx.order, + output_fp32=grad_vector_fp32, + ) + return _restore_dtype(grad_vector_fp32, ctx.orig_dtype), None, None + + uniform_grid_curl_impl.register_autograd( + backward_uniform_grid_curl, + setup_context=setup_uniform_grid_curl_context, + ) + + +def uniform_grid_curl_warp( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, +) -> torch.Tensor: + """Compute periodic uniform-grid curl with a fused Warp custom op.""" + if not _HAS_WARP: + raise ImportError( + "uniform_grid_curl requires the Warp backend; install warp>=0.6.0" + ) from _WARP_IMPORT_ERROR + grid_ndim = validate_vector_field(vector_field) + spacing_tuple = _normalize_spacing(spacing, grid_ndim) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(order) + spacing_meta = torch.tensor(spacing_tuple, dtype=torch.float32, device="cpu") + return uniform_grid_curl_impl(vector_field, spacing_meta, int(order)) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/uniform_grid_curl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/uniform_grid_curl.py new file mode 100644 index 0000000000..48d6b2a923 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/uniform_grid_curl.py @@ -0,0 +1,177 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from physicsnemo.core.function_spec import FunctionSpec + +from ._torch_impl import uniform_grid_curl_torch +from ._warp_impl import uniform_grid_curl_warp + + +class UniformGridCurl(FunctionSpec): + r"""Compute periodic curl on a uniform grid. + + This functional accepts channel-first vector fields with shape + ``(dim, *grid_shape)`` for 2D or 3D uniform grids. For 2D inputs, it + returns scalar vorticity. For 3D inputs, it returns the channel-first + vector curl. + + Parameters + ---------- + vector_field : torch.Tensor + Channel-first vector field with shape ``(2, n0, n1)`` or + ``(3, n0, n1, n2)``. + spacing : float | Sequence[float], optional + Uniform spacing per grid axis. A scalar applies the same spacing to + every axis. + order : int, optional + Central-difference accuracy order. Supported values match + :func:`physicsnemo.nn.functional.uniform_grid_gradient`. + implementation : {"warp", "torch"} or None + Explicit backend selection. When ``None``, rank-based backend dispatch + is used. + + Returns + ------- + torch.Tensor + Scalar curl with shape ``grid_shape`` for 2D inputs, or vector curl + with shape ``(3, *grid_shape)`` for 3D inputs. + """ + + _BENCHMARK_CASES = ( + ("2d-512x512-o2", (512, 512), (0.01, 0.02), 2), + ("2d-384x384-o4", (384, 384), (0.01, 0.02), 4), + ("3d-96x96x96-o2", (96, 96, 96), 0.02, 2), + ("3d-80x80x80-o4", (80, 80, 80), 0.02, 4), + ) + + _BACKWARD_CASES = ( + ("2d-grad-256x256-o2", (256, 256), (0.01, 0.02), 2), + ("2d-grad-192x192-o4", (192, 192), (0.01, 0.02), 4), + ("3d-grad-64x64x64-o2", (64, 64, 64), 0.02, 2), + ) + + _COMPARE_ATOL = 1e-5 + _COMPARE_RTOL = 1e-5 + + @FunctionSpec.register(name="warp", required_imports=("warp>=0.6.0",), rank=0) + def warp_forward( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, + ) -> torch.Tensor: + """Dispatch uniform-grid curl to the Warp backend.""" + return uniform_grid_curl_warp( + vector_field=vector_field, + spacing=spacing, + order=order, + ) + + @FunctionSpec.register(name="torch", rank=1, baseline=True) + def torch_forward( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, + ) -> torch.Tensor: + """Dispatch uniform-grid curl to eager PyTorch.""" + return uniform_grid_curl_torch( + vector_field=vector_field, + spacing=spacing, + order=order, + ) + + @classmethod + def make_inputs_forward(cls, device: torch.device | str = "cpu"): + """Yield representative forward benchmark and parity input cases.""" + device = torch.device(device) + for label, shape, spacing, order in cls._BENCHMARK_CASES: + vector_field = _make_periodic_vector_field(shape, device=device) + yield label, (vector_field,), {"spacing": spacing, "order": order} + + @classmethod + def make_inputs_backward(cls, device: torch.device | str = "cpu"): + """Yield representative backward benchmark and parity input cases.""" + device = torch.device(device) + for label, shape, spacing, order in cls._BACKWARD_CASES: + vector_field = ( + _make_periodic_vector_field(shape, device=device) + .detach() + .clone() + .requires_grad_(True) + ) + yield label, (vector_field,), {"spacing": spacing, "order": order} + + @classmethod + def compare_forward(cls, output: torch.Tensor, reference: torch.Tensor) -> None: + """Compare forward outputs across implementations.""" + torch.testing.assert_close( + output, + reference, + atol=cls._COMPARE_ATOL, + rtol=cls._COMPARE_RTOL, + ) + + @classmethod + def compare_backward(cls, output: torch.Tensor, reference: torch.Tensor) -> None: + """Compare backward gradients across implementations.""" + torch.testing.assert_close( + output, + reference, + atol=cls._COMPARE_ATOL, + rtol=cls._COMPARE_RTOL, + ) + + +def _make_periodic_vector_field( + shape: tuple[int, ...], + *, + device: torch.device, +) -> torch.Tensor: + """Construct smooth periodic vector fields for benchmark cases.""" + axes = tuple( + torch.arange(n, device=device, dtype=torch.float32) / float(n) for n in shape + ) + if len(shape) == 2: + x0, x1 = axes + xx, yy = torch.meshgrid(x0, x1, indexing="ij") + return torch.stack( + ( + torch.sin(2.0 * torch.pi * yy), + torch.cos(2.0 * torch.pi * xx), + ), + dim=0, + ) + + x0, x1, x2 = axes + xx, yy, zz = torch.meshgrid(x0, x1, x2, indexing="ij") + return torch.stack( + ( + torch.sin(2.0 * torch.pi * yy), + torch.cos(2.0 * torch.pi * zz), + torch.sin(2.0 * torch.pi * xx), + ), + dim=0, + ) + + +uniform_grid_curl = UniformGridCurl.make_function("uniform_grid_curl") + +__all__ = ["UniformGridCurl", "uniform_grid_curl"] diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/utils.py b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/utils.py new file mode 100644 index 0000000000..464eceaac4 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/utils.py @@ -0,0 +1,36 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch + + +def validate_vector_field(vector_field: torch.Tensor) -> int: + """Validate a channel-first 2D/3D vector field.""" + if not torch.is_floating_point(vector_field): + raise TypeError("vector_field must be a floating-point tensor") + if vector_field.ndim not in (3, 4): + raise ValueError( + "uniform_grid_curl expects a channel-first 2D or 3D vector field with " + "shape (dim, *grid_shape)" + ) + + grid_ndim = vector_field.ndim - 1 + if vector_field.shape[0] != grid_ndim: + raise ValueError( + "vector_field.shape[0] must match grid dimensionality " + f"({grid_ndim}), got {vector_field.shape[0]}" + ) + return grid_ndim diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/__init__.py b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/__init__.py new file mode 100644 index 0000000000..75f417e589 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/__init__.py @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .uniform_grid_divergence import UniformGridDivergence, uniform_grid_divergence + +__all__ = ["UniformGridDivergence", "uniform_grid_divergence"] diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py new file mode 100644 index 0000000000..5a37a69e2c --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py @@ -0,0 +1,45 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from ..uniform_grid_gradient._torch_impl import uniform_grid_gradient_torch_multi +from .utils import validate_vector_field + + +def uniform_grid_divergence_torch( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, +) -> torch.Tensor: + """Compute periodic uniform-grid divergence with PyTorch tensor ops.""" + grid_ndim = validate_vector_field(vector_field) + + divergence = torch.zeros_like(vector_field[0]) + for axis in range(grid_ndim): + derivatives = uniform_grid_gradient_torch_multi( + field=vector_field[axis], + spacing=spacing, + order=order, + derivative_orders=1, + include_mixed=False, + ) + divergence = divergence + derivatives[axis] + return divergence diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py new file mode 100644 index 0000000000..7b63153bf5 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py @@ -0,0 +1,549 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from .utils import validate_vector_field + +try: + import warp as wp + + from ..uniform_grid_gradient._warp_impl.utils import ( + _launch_dim, + _normalize_spacing, + _to_wp_tensor, + _warp_launch_context, + _wp_launch, + ) + + _HAS_WARP = True +except ImportError as import_error: + _HAS_WARP = False + _WARP_IMPORT_ERROR = import_error + + +_SUPPORTED_ORDERS = (2, 4) + + +def _validate_order(order: int) -> int: + if not isinstance(order, int): + raise TypeError(f"order must be an integer, got {type(order)}") + if order not in _SUPPORTED_ORDERS: + raise ValueError( + "uniform_grid_divergence supports central orders " + f"{list(_SUPPORTED_ORDERS)}, got order={order}" + ) + return order + + +def _validate_positive_spacing(spacing_tuple: tuple[float, ...]) -> None: + for dx in spacing_tuple: + if dx <= 0.0: + raise ValueError("all spacing entries must be strictly positive") + + +def _to_fp32_contiguous(tensor: torch.Tensor) -> torch.Tensor: + if tensor.dtype == torch.float32 and tensor.is_contiguous(): + return tensor + return tensor.to(dtype=torch.float32).contiguous() + + +def _restore_dtype(tensor: torch.Tensor, target_dtype: torch.dtype) -> torch.Tensor: + if tensor.dtype == target_dtype: + return tensor + return tensor.to(dtype=target_dtype) + + +if _HAS_WARP: + + @wp.func + def _wrap_plus1(i: int, n: int) -> int: + return (i + 1) % n + + @wp.func + def _wrap_minus1(i: int, n: int) -> int: + return (i + n - 1) % n + + @wp.func + def _wrap_plus2(i: int, n: int) -> int: + return (i + 2) % n + + @wp.func + def _wrap_minus2(i: int, n: int) -> int: + return (i + n - 2) % n + + @wp.kernel + def _divergence_1d_order2_kernel( + vector_field: wp.array2d(dtype=wp.float32), + inv_dx0: float, + output: wp.array(dtype=wp.float32), + ): + i = wp.tid() + n0 = output.shape[0] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + output[i] = (vector_field[0, ip] - vector_field[0, im]) * (0.5 * inv_dx0) + + @wp.kernel + def _divergence_1d_order4_kernel( + vector_field: wp.array2d(dtype=wp.float32), + inv_dx0: float, + output: wp.array(dtype=wp.float32), + ): + i = wp.tid() + n0 = output.shape[0] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + output[i] = ( + -vector_field[0, ip2] + + 8.0 * vector_field[0, ip1] + - 8.0 * vector_field[0, im1] + + vector_field[0, im2] + ) * (inv_dx0 / 12.0) + + @wp.kernel + def _divergence_2d_order2_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + div_x = (vector_field[0, ip, j] - vector_field[0, im, j]) * (0.5 * inv_dx0) + div_y = (vector_field[1, i, jp] - vector_field[1, i, jm]) * (0.5 * inv_dx1) + output[i, j] = div_x + div_y + + @wp.kernel + def _divergence_2d_order4_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + div_x = ( + -vector_field[0, ip2, j] + + 8.0 * vector_field[0, ip1, j] + - 8.0 * vector_field[0, im1, j] + + vector_field[0, im2, j] + ) * (inv_dx0 / 12.0) + div_y = ( + -vector_field[1, i, jp2] + + 8.0 * vector_field[1, i, jp1] + - 8.0 * vector_field[1, i, jm1] + + vector_field[1, i, jm2] + ) * (inv_dx1 / 12.0) + output[i, j] = div_x + div_y + + @wp.kernel + def _divergence_3d_order2_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array3d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + n2 = output.shape[2] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + div_x = (vector_field[0, ip, j, k] - vector_field[0, im, j, k]) * ( + 0.5 * inv_dx0 + ) + div_y = (vector_field[1, i, jp, k] - vector_field[1, i, jm, k]) * ( + 0.5 * inv_dx1 + ) + div_z = (vector_field[2, i, j, kp] - vector_field[2, i, j, km]) * ( + 0.5 * inv_dx2 + ) + output[i, j, k] = div_x + div_y + div_z + + @wp.kernel + def _divergence_3d_order4_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array3d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + n2 = output.shape[2] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + div_x = ( + -vector_field[0, ip2, j, k] + + 8.0 * vector_field[0, ip1, j, k] + - 8.0 * vector_field[0, im1, j, k] + + vector_field[0, im2, j, k] + ) * (inv_dx0 / 12.0) + div_y = ( + -vector_field[1, i, jp2, k] + + 8.0 * vector_field[1, i, jp1, k] + - 8.0 * vector_field[1, i, jm1, k] + + vector_field[1, i, jm2, k] + ) * (inv_dx1 / 12.0) + div_z = ( + -vector_field[2, i, j, kp2] + + 8.0 * vector_field[2, i, j, kp1] + - 8.0 * vector_field[2, i, j, km1] + + vector_field[2, i, j, km2] + ) * (inv_dx2 / 12.0) + output[i, j, k] = div_x + div_y + div_z + + @wp.kernel + def _divergence_backward_1d_order2_kernel( + grad_output: wp.array(dtype=wp.float32), + inv_dx0: float, + grad_vector: wp.array2d(dtype=wp.float32), + ): + i = wp.tid() + n0 = grad_output.shape[0] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + grad_vector[0, i] = (grad_output[im] - grad_output[ip]) * (0.5 * inv_dx0) + + @wp.kernel + def _divergence_backward_1d_order4_kernel( + grad_output: wp.array(dtype=wp.float32), + inv_dx0: float, + grad_vector: wp.array2d(dtype=wp.float32), + ): + i = wp.tid() + n0 = grad_output.shape[0] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + grad_vector[0, i] = ( + grad_output[ip2] + - 8.0 * grad_output[ip1] + + 8.0 * grad_output[im1] + - grad_output[im2] + ) * (inv_dx0 / 12.0) + + @wp.kernel + def _divergence_backward_2d_order2_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + grad_vector[0, i, j] = (grad_output[im, j] - grad_output[ip, j]) * ( + 0.5 * inv_dx0 + ) + grad_vector[1, i, j] = (grad_output[i, jm] - grad_output[i, jp]) * ( + 0.5 * inv_dx1 + ) + + @wp.kernel + def _divergence_backward_2d_order4_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + grad_vector[0, i, j] = ( + grad_output[ip2, j] + - 8.0 * grad_output[ip1, j] + + 8.0 * grad_output[im1, j] + - grad_output[im2, j] + ) * (inv_dx0 / 12.0) + grad_vector[1, i, j] = ( + grad_output[i, jp2] + - 8.0 * grad_output[i, jp1] + + 8.0 * grad_output[i, jm1] + - grad_output[i, jm2] + ) * (inv_dx1 / 12.0) + + @wp.kernel + def _divergence_backward_3d_order2_kernel( + grad_output: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + grad_vector: wp.array4d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + n2 = grad_output.shape[2] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + grad_vector[0, i, j, k] = (grad_output[im, j, k] - grad_output[ip, j, k]) * ( + 0.5 * inv_dx0 + ) + grad_vector[1, i, j, k] = (grad_output[i, jm, k] - grad_output[i, jp, k]) * ( + 0.5 * inv_dx1 + ) + grad_vector[2, i, j, k] = (grad_output[i, j, km] - grad_output[i, j, kp]) * ( + 0.5 * inv_dx2 + ) + + @wp.kernel + def _divergence_backward_3d_order4_kernel( + grad_output: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + grad_vector: wp.array4d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + n2 = grad_output.shape[2] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + grad_vector[0, i, j, k] = ( + grad_output[ip2, j, k] + - 8.0 * grad_output[ip1, j, k] + + 8.0 * grad_output[im1, j, k] + - grad_output[im2, j, k] + ) * (inv_dx0 / 12.0) + grad_vector[1, i, j, k] = ( + grad_output[i, jp2, k] + - 8.0 * grad_output[i, jp1, k] + + 8.0 * grad_output[i, jm1, k] + - grad_output[i, jm2, k] + ) * (inv_dx1 / 12.0) + grad_vector[2, i, j, k] = ( + grad_output[i, j, kp2] + - 8.0 * grad_output[i, j, kp1] + + 8.0 * grad_output[i, j, km1] + - grad_output[i, j, km2] + ) * (inv_dx2 / 12.0) + + _FORWARD_KERNELS = { + (1, 2): _divergence_1d_order2_kernel, + (1, 4): _divergence_1d_order4_kernel, + (2, 2): _divergence_2d_order2_kernel, + (2, 4): _divergence_2d_order4_kernel, + (3, 2): _divergence_3d_order2_kernel, + (3, 4): _divergence_3d_order4_kernel, + } + _BACKWARD_KERNELS = { + (1, 2): _divergence_backward_1d_order2_kernel, + (1, 4): _divergence_backward_1d_order4_kernel, + (2, 2): _divergence_backward_2d_order2_kernel, + (2, 4): _divergence_backward_2d_order4_kernel, + (3, 2): _divergence_backward_3d_order2_kernel, + (3, 4): _divergence_backward_3d_order4_kernel, + } + + def _launch_divergence_forward( + *, + vector_field_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + output_fp32: torch.Tensor, + ) -> None: + wp_device, wp_stream = _warp_launch_context(vector_field_fp32) + _wp_launch( + kernel=_FORWARD_KERNELS[(vector_field_fp32.ndim - 1, order)], + dim=_launch_dim(output_fp32.shape), + inputs=[ + _to_wp_tensor(vector_field_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(output_fp32), + ], + device=wp_device, + stream=wp_stream, + ) + + def _launch_divergence_backward( + *, + grad_output_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + grad_vector_fp32: torch.Tensor, + ) -> None: + wp_device, wp_stream = _warp_launch_context(grad_output_fp32) + _wp_launch( + kernel=_BACKWARD_KERNELS[(grad_output_fp32.ndim, order)], + dim=_launch_dim(grad_output_fp32.shape), + inputs=[ + _to_wp_tensor(grad_output_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(grad_vector_fp32), + ], + device=wp_device, + stream=wp_stream, + ) + + @torch.library.custom_op( + "physicsnemo::uniform_grid_divergence_warp_impl", mutates_args=() + ) + def uniform_grid_divergence_impl( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, + ) -> torch.Tensor: + grid_ndim = validate_vector_field(vector_field) + spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(int(order)) + orig_dtype = vector_field.dtype + vector_field_fp32 = _to_fp32_contiguous(vector_field) + output_fp32 = torch.empty( + vector_field_fp32.shape[1:], + device=vector_field_fp32.device, + dtype=torch.float32, + ) + _launch_divergence_forward( + vector_field_fp32=vector_field_fp32, + spacing_tuple=spacing_tuple[:grid_ndim], + order=order, + output_fp32=output_fp32, + ) + return _restore_dtype(output_fp32, orig_dtype) + + @uniform_grid_divergence_impl.register_fake + def _uniform_grid_divergence_impl_fake( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, + ) -> torch.Tensor: + _ = (spacing_meta, order) + return torch.empty( + vector_field.shape[1:], + device=vector_field.device, + dtype=vector_field.dtype, + ) + + def setup_uniform_grid_divergence_context( + ctx: torch.autograd.function.FunctionCtx, + inputs: tuple, + output: torch.Tensor, + ) -> None: + vector_field, spacing_meta, order = inputs + _ = output + ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + ctx.order = int(order) + ctx.orig_dtype = vector_field.dtype + + def backward_uniform_grid_divergence( + ctx: torch.autograd.function.FunctionCtx, + grad_output: torch.Tensor, + ) -> tuple[torch.Tensor | None, None, None]: + if grad_output is None or not ctx.needs_input_grad[0]: + return None, None, None + grad_output_fp32 = _to_fp32_contiguous(grad_output) + grad_vector_fp32 = torch.empty( + (grad_output_fp32.ndim, *grad_output_fp32.shape), + device=grad_output_fp32.device, + dtype=torch.float32, + ) + _launch_divergence_backward( + grad_output_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple[: grad_output_fp32.ndim], + order=ctx.order, + grad_vector_fp32=grad_vector_fp32, + ) + return _restore_dtype(grad_vector_fp32, ctx.orig_dtype), None, None + + uniform_grid_divergence_impl.register_autograd( + backward_uniform_grid_divergence, + setup_context=setup_uniform_grid_divergence_context, + ) + + +def uniform_grid_divergence_warp( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, +) -> torch.Tensor: + """Compute periodic uniform-grid divergence with a fused Warp custom op.""" + if not _HAS_WARP: + raise ImportError( + "uniform_grid_divergence requires the Warp backend; install warp>=0.6.0" + ) from _WARP_IMPORT_ERROR + grid_ndim = validate_vector_field(vector_field) + spacing_tuple = _normalize_spacing(spacing, grid_ndim) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(order) + spacing_meta = torch.tensor(spacing_tuple, dtype=torch.float32, device="cpu") + return uniform_grid_divergence_impl(vector_field, spacing_meta, int(order)) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/uniform_grid_divergence.py b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/uniform_grid_divergence.py new file mode 100644 index 0000000000..08c21f21cd --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/uniform_grid_divergence.py @@ -0,0 +1,184 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from physicsnemo.core.function_spec import FunctionSpec + +from ._torch_impl import uniform_grid_divergence_torch +from ._warp_impl import uniform_grid_divergence_warp + + +class UniformGridDivergence(FunctionSpec): + r"""Compute periodic divergence on a uniform grid. + + This functional accepts channel-first vector fields with shape + ``(dim, *grid_shape)`` where ``dim`` matches the 1D/2D/3D grid + dimensionality. Divergence is computed as the trace of the Jacobian, + + .. math:: + + \nabla \cdot u = \sum_i \partial_i u_i. + + Parameters + ---------- + vector_field : torch.Tensor + Channel-first vector field with shape ``(dim, *grid_shape)``. + spacing : float | Sequence[float], optional + Uniform spacing per grid axis. A scalar applies the same spacing to + every axis. + order : int, optional + Central-difference accuracy order. Supported values match + :func:`physicsnemo.nn.functional.uniform_grid_gradient`. + implementation : {"warp", "torch"} or None + Explicit backend selection. When ``None``, rank-based backend dispatch + is used. + + Returns + ------- + torch.Tensor + Scalar divergence field with shape ``grid_shape``. + """ + + _BENCHMARK_CASES = ( + ("1d-n8192-o2", (8192,), 0.01, 2), + ("1d-n8192-o4", (8192,), 0.01, 4), + ("2d-512x512-o2", (512, 512), (0.01, 0.02), 2), + ("2d-384x384-o4", (384, 384), (0.01, 0.02), 4), + ("3d-96x96x96-o2", (96, 96, 96), 0.02, 2), + ) + + _BACKWARD_CASES = ( + ("1d-grad-n4096-o2", (4096,), 0.01, 2), + ("2d-grad-256x256-o2", (256, 256), (0.01, 0.02), 2), + ("2d-grad-192x192-o4", (192, 192), (0.01, 0.02), 4), + ("3d-grad-64x64x64-o2", (64, 64, 64), 0.02, 2), + ) + + _COMPARE_ATOL = 1e-5 + _COMPARE_RTOL = 1e-5 + + @FunctionSpec.register(name="warp", required_imports=("warp>=0.6.0",), rank=0) + def warp_forward( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, + ) -> torch.Tensor: + """Dispatch uniform-grid divergence to the Warp backend.""" + return uniform_grid_divergence_warp( + vector_field=vector_field, + spacing=spacing, + order=order, + ) + + @FunctionSpec.register(name="torch", rank=1, baseline=True) + def torch_forward( + vector_field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, + ) -> torch.Tensor: + """Dispatch uniform-grid divergence to eager PyTorch.""" + return uniform_grid_divergence_torch( + vector_field=vector_field, + spacing=spacing, + order=order, + ) + + @classmethod + def make_inputs_forward(cls, device: torch.device | str = "cpu"): + """Yield representative forward benchmark and parity input cases.""" + device = torch.device(device) + for label, shape, spacing, order in cls._BENCHMARK_CASES: + vector_field = _make_periodic_vector_field(shape, device=device) + yield label, (vector_field,), {"spacing": spacing, "order": order} + + @classmethod + def make_inputs_backward(cls, device: torch.device | str = "cpu"): + """Yield representative backward benchmark and parity input cases.""" + device = torch.device(device) + for label, shape, spacing, order in cls._BACKWARD_CASES: + vector_field = ( + _make_periodic_vector_field(shape, device=device) + .detach() + .clone() + .requires_grad_(True) + ) + yield label, (vector_field,), {"spacing": spacing, "order": order} + + @classmethod + def compare_forward(cls, output: torch.Tensor, reference: torch.Tensor) -> None: + """Compare forward outputs across implementations.""" + torch.testing.assert_close( + output, + reference, + atol=cls._COMPARE_ATOL, + rtol=cls._COMPARE_RTOL, + ) + + @classmethod + def compare_backward(cls, output: torch.Tensor, reference: torch.Tensor) -> None: + """Compare backward gradients across implementations.""" + torch.testing.assert_close( + output, + reference, + atol=cls._COMPARE_ATOL, + rtol=cls._COMPARE_RTOL, + ) + + +def _make_periodic_vector_field( + shape: tuple[int, ...], + *, + device: torch.device, +) -> torch.Tensor: + """Construct smooth periodic vector fields for benchmark cases.""" + axes = tuple( + torch.arange(n, device=device, dtype=torch.float32) / float(n) for n in shape + ) + if len(shape) == 1: + (x0,) = axes + return torch.sin(2.0 * torch.pi * x0).unsqueeze(0) + + if len(shape) == 2: + x0, x1 = axes + xx, yy = torch.meshgrid(x0, x1, indexing="ij") + return torch.stack( + ( + torch.sin(2.0 * torch.pi * xx), + torch.cos(2.0 * torch.pi * yy), + ), + dim=0, + ) + + x0, x1, x2 = axes + xx, yy, zz = torch.meshgrid(x0, x1, x2, indexing="ij") + return torch.stack( + ( + torch.sin(2.0 * torch.pi * xx), + torch.cos(2.0 * torch.pi * yy), + 0.5 * torch.sin(2.0 * torch.pi * zz), + ), + dim=0, + ) + + +uniform_grid_divergence = UniformGridDivergence.make_function("uniform_grid_divergence") + +__all__ = ["UniformGridDivergence", "uniform_grid_divergence"] diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/utils.py b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/utils.py new file mode 100644 index 0000000000..6d1065fbbe --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/utils.py @@ -0,0 +1,36 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch + + +def validate_vector_field(vector_field: torch.Tensor) -> int: + """Validate a channel-first vector field and return grid dimensionality.""" + if not torch.is_floating_point(vector_field): + raise TypeError("vector_field must be a floating-point tensor") + if vector_field.ndim < 2 or vector_field.ndim > 4: + raise ValueError( + "uniform_grid_divergence expects a channel-first 1D-3D vector field with " + "shape (dim, *grid_shape)" + ) + + grid_ndim = vector_field.ndim - 1 + if vector_field.shape[0] != grid_ndim: + raise ValueError( + "vector_field.shape[0] must match grid dimensionality " + f"({grid_ndim}), got {vector_field.shape[0]}" + ) + return grid_ndim diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/__init__.py b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/__init__.py new file mode 100644 index 0000000000..e909faf0ae --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/__init__.py @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .uniform_grid_laplacian import UniformGridLaplacian, uniform_grid_laplacian + +__all__ = ["UniformGridLaplacian", "uniform_grid_laplacian"] diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py new file mode 100644 index 0000000000..b5693d9902 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py @@ -0,0 +1,41 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from ..uniform_grid_gradient._torch_impl import uniform_grid_gradient_torch_multi +from .utils import validate_scalar_field + + +def uniform_grid_laplacian_torch( + field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, +) -> torch.Tensor: + """Compute periodic uniform-grid Laplacian with PyTorch tensor ops.""" + validate_scalar_field(field) + second_derivatives = uniform_grid_gradient_torch_multi( + field=field, + spacing=spacing, + order=order, + derivative_orders=2, + include_mixed=False, + ) + return second_derivatives.sum(dim=0) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py new file mode 100644 index 0000000000..6e8ee23134 --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py @@ -0,0 +1,356 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from .utils import validate_scalar_field + +try: + import warp as wp + + from ..uniform_grid_gradient._warp_impl.utils import ( + _launch_dim, + _normalize_spacing, + _to_wp_tensor, + _warp_launch_context, + _wp_launch, + ) + + _HAS_WARP = True +except ImportError as import_error: + _HAS_WARP = False + _WARP_IMPORT_ERROR = import_error + + +_SUPPORTED_ORDERS = (2, 4) + + +def _validate_order(order: int) -> int: + if not isinstance(order, int): + raise TypeError(f"order must be an integer, got {type(order)}") + if order not in _SUPPORTED_ORDERS: + raise ValueError( + "uniform_grid_laplacian supports central orders " + f"{list(_SUPPORTED_ORDERS)}, got order={order}" + ) + return order + + +def _validate_positive_spacing(spacing_tuple: tuple[float, ...]) -> None: + for dx in spacing_tuple: + if dx <= 0.0: + raise ValueError("all spacing entries must be strictly positive") + + +def _to_fp32_contiguous(tensor: torch.Tensor) -> torch.Tensor: + if tensor.dtype == torch.float32 and tensor.is_contiguous(): + return tensor + return tensor.to(dtype=torch.float32).contiguous() + + +def _restore_dtype(tensor: torch.Tensor, target_dtype: torch.dtype) -> torch.Tensor: + if tensor.dtype == target_dtype: + return tensor + return tensor.to(dtype=target_dtype) + + +if _HAS_WARP: + + @wp.func + def _wrap_plus1(i: int, n: int) -> int: + return (i + 1) % n + + @wp.func + def _wrap_minus1(i: int, n: int) -> int: + return (i + n - 1) % n + + @wp.func + def _wrap_plus2(i: int, n: int) -> int: + return (i + 2) % n + + @wp.func + def _wrap_minus2(i: int, n: int) -> int: + return (i + n - 2) % n + + @wp.kernel + def _laplacian_1d_order2_kernel( + field: wp.array(dtype=wp.float32), + inv_dx0_sq: float, + output: wp.array(dtype=wp.float32), + ): + i = wp.tid() + n0 = field.shape[0] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + output[i] = (field[ip] - 2.0 * field[i] + field[im]) * inv_dx0_sq + + @wp.kernel + def _laplacian_1d_order4_kernel( + field: wp.array(dtype=wp.float32), + inv_dx0_sq: float, + output: wp.array(dtype=wp.float32), + ): + i = wp.tid() + n0 = field.shape[0] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + output[i] = ( + -field[ip2] + + 16.0 * field[ip1] + - 30.0 * field[i] + + 16.0 * field[im1] + - field[im2] + ) * (inv_dx0_sq / 12.0) + + @wp.kernel + def _laplacian_2d_order2_kernel( + field: wp.array2d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + output: wp.array2d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + d2x = (field[ip, j] - 2.0 * field[i, j] + field[im, j]) * inv_dx0_sq + d2y = (field[i, jp] - 2.0 * field[i, j] + field[i, jm]) * inv_dx1_sq + output[i, j] = d2x + d2y + + @wp.kernel + def _laplacian_2d_order4_kernel( + field: wp.array2d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + output: wp.array2d(dtype=wp.float32), + ): + i, j = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + d2x = ( + -field[ip2, j] + + 16.0 * field[ip1, j] + - 30.0 * field[i, j] + + 16.0 * field[im1, j] + - field[im2, j] + ) * (inv_dx0_sq / 12.0) + d2y = ( + -field[i, jp2] + + 16.0 * field[i, jp1] + - 30.0 * field[i, j] + + 16.0 * field[i, jm1] + - field[i, jm2] + ) * (inv_dx1_sq / 12.0) + output[i, j] = d2x + d2y + + @wp.kernel + def _laplacian_3d_order2_kernel( + field: wp.array3d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + inv_dx2_sq: float, + output: wp.array3d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + n2 = field.shape[2] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + d2x = (field[ip, j, k] - 2.0 * field[i, j, k] + field[im, j, k]) * inv_dx0_sq + d2y = (field[i, jp, k] - 2.0 * field[i, j, k] + field[i, jm, k]) * inv_dx1_sq + d2z = (field[i, j, kp] - 2.0 * field[i, j, k] + field[i, j, km]) * inv_dx2_sq + output[i, j, k] = d2x + d2y + d2z + + @wp.kernel + def _laplacian_3d_order4_kernel( + field: wp.array3d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + inv_dx2_sq: float, + output: wp.array3d(dtype=wp.float32), + ): + i, j, k = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + n2 = field.shape[2] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + d2x = ( + -field[ip2, j, k] + + 16.0 * field[ip1, j, k] + - 30.0 * field[i, j, k] + + 16.0 * field[im1, j, k] + - field[im2, j, k] + ) * (inv_dx0_sq / 12.0) + d2y = ( + -field[i, jp2, k] + + 16.0 * field[i, jp1, k] + - 30.0 * field[i, j, k] + + 16.0 * field[i, jm1, k] + - field[i, jm2, k] + ) * (inv_dx1_sq / 12.0) + d2z = ( + -field[i, j, kp2] + + 16.0 * field[i, j, kp1] + - 30.0 * field[i, j, k] + + 16.0 * field[i, j, km1] + - field[i, j, km2] + ) * (inv_dx2_sq / 12.0) + output[i, j, k] = d2x + d2y + d2z + + _LAPLACIAN_KERNELS = { + (1, 2): _laplacian_1d_order2_kernel, + (1, 4): _laplacian_1d_order4_kernel, + (2, 2): _laplacian_2d_order2_kernel, + (2, 4): _laplacian_2d_order4_kernel, + (3, 2): _laplacian_3d_order2_kernel, + (3, 4): _laplacian_3d_order4_kernel, + } + + def _launch_laplacian( + *, + field_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + output_fp32: torch.Tensor, + ) -> None: + inv_sq = [1.0 / float(dx * dx) for dx in spacing_tuple] + wp_device, wp_stream = _warp_launch_context(field_fp32) + _wp_launch( + kernel=_LAPLACIAN_KERNELS[(field_fp32.ndim, order)], + dim=_launch_dim(field_fp32.shape), + inputs=[ + _to_wp_tensor(field_fp32), + *inv_sq, + _to_wp_tensor(output_fp32), + ], + device=wp_device, + stream=wp_stream, + ) + + @torch.library.custom_op( + "physicsnemo::uniform_grid_laplacian_warp_impl", mutates_args=() + ) + def uniform_grid_laplacian_impl( + field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, + ) -> torch.Tensor: + validate_scalar_field(field) + spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(int(order)) + orig_dtype = field.dtype + field_fp32 = _to_fp32_contiguous(field) + output_fp32 = torch.empty_like(field_fp32) + _launch_laplacian( + field_fp32=field_fp32, + spacing_tuple=spacing_tuple, + order=order, + output_fp32=output_fp32, + ) + return _restore_dtype(output_fp32, orig_dtype) + + @uniform_grid_laplacian_impl.register_fake + def _uniform_grid_laplacian_impl_fake( + field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, + ) -> torch.Tensor: + _ = (spacing_meta, order) + return torch.empty_like(field) + + def setup_uniform_grid_laplacian_context( + ctx: torch.autograd.function.FunctionCtx, + inputs: tuple, + output: torch.Tensor, + ) -> None: + field, spacing_meta, order = inputs + _ = output + ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + ctx.order = int(order) + ctx.orig_dtype = field.dtype + + def backward_uniform_grid_laplacian( + ctx: torch.autograd.function.FunctionCtx, + grad_output: torch.Tensor, + ) -> tuple[torch.Tensor | None, None, None]: + if grad_output is None or not ctx.needs_input_grad[0]: + return None, None, None + grad_output_fp32 = _to_fp32_contiguous(grad_output) + grad_field = torch.empty_like(grad_output_fp32) + _launch_laplacian( + field_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple, + order=ctx.order, + output_fp32=grad_field, + ) + return _restore_dtype(grad_field, ctx.orig_dtype), None, None + + uniform_grid_laplacian_impl.register_autograd( + backward_uniform_grid_laplacian, + setup_context=setup_uniform_grid_laplacian_context, + ) + + +def uniform_grid_laplacian_warp( + field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, +) -> torch.Tensor: + """Compute periodic uniform-grid Laplacian with a fused Warp custom op.""" + if not _HAS_WARP: + raise ImportError( + "uniform_grid_laplacian requires the Warp backend; install warp>=0.6.0" + ) from _WARP_IMPORT_ERROR + validate_scalar_field(field) + spacing_tuple = _normalize_spacing(spacing, field.ndim) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(order) + spacing_meta = torch.tensor(spacing_tuple, dtype=torch.float32, device="cpu") + return uniform_grid_laplacian_impl(field, spacing_meta, int(order)) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/uniform_grid_laplacian.py b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/uniform_grid_laplacian.py new file mode 100644 index 0000000000..13c3da6eab --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/uniform_grid_laplacian.py @@ -0,0 +1,181 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import annotations + +from collections.abc import Sequence + +import torch + +from physicsnemo.core.function_spec import FunctionSpec + +from ._torch_impl import uniform_grid_laplacian_torch +from ._warp_impl import uniform_grid_laplacian_warp + + +class UniformGridLaplacian(FunctionSpec): + r"""Compute periodic Laplacians on a uniform grid. + + This functional accepts scalar fields defined on a 1D/2D/3D uniform + Cartesian grid and computes the trace of the Hessian, + + .. math:: + + \nabla^2 f = \sum_i \partial_{ii} f. + + Parameters + ---------- + field : torch.Tensor + Scalar grid field with shape ``(n0,)``, ``(n0,n1)``, or ``(n0,n1,n2)``. + spacing : float | Sequence[float], optional + Uniform spacing per grid axis. A scalar applies the same spacing to + every axis. + order : int, optional + Central-difference accuracy order. Supported values match + :func:`physicsnemo.nn.functional.uniform_grid_gradient`. + implementation : {"warp", "torch"} or None + Explicit backend selection. When ``None``, rank-based backend dispatch + is used. + + Returns + ------- + torch.Tensor + Scalar Laplacian field with the same shape as ``field``. + """ + + _BENCHMARK_CASES = ( + ("1d-n8192-o2", (8192,), 0.01, 2), + ("1d-n8192-o4", (8192,), 0.01, 4), + ("2d-512x512-o2", (512, 512), (0.01, 0.02), 2), + ("2d-384x384-o4", (384, 384), (0.01, 0.02), 4), + ("3d-96x96x96-o2", (96, 96, 96), 0.02, 2), + ) + + _BACKWARD_CASES = ( + ("1d-grad-n4096-o2", (4096,), 0.01, 2), + ("2d-grad-256x256-o2", (256, 256), (0.01, 0.02), 2), + ("2d-grad-192x192-o4", (192, 192), (0.01, 0.02), 4), + ("3d-grad-64x64x64-o2", (64, 64, 64), 0.02, 2), + ) + + # Fourth-order second-derivative stencils subtract nearly equal values. + # The fused Warp kernel and composed Torch reference take different + # float32 rounding paths on CUDA, so Laplacian parity needs a small + # absolute tolerance while the analytic tests keep physical accuracy + # coverage separate. + _COMPARE_ATOL = 5e-3 + _COMPARE_RTOL = 1e-5 + _COMPARE_BACKWARD_ATOL = 1e-2 + _COMPARE_BACKWARD_RTOL = 1e-5 + + @FunctionSpec.register(name="warp", required_imports=("warp>=0.6.0",), rank=0) + def warp_forward( + field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, + ) -> torch.Tensor: + """Dispatch uniform-grid Laplacian to the Warp backend.""" + return uniform_grid_laplacian_warp( + field=field, + spacing=spacing, + order=order, + ) + + @FunctionSpec.register(name="torch", rank=1, baseline=True) + def torch_forward( + field: torch.Tensor, + spacing: float | Sequence[float] = 1.0, + order: int = 2, + ) -> torch.Tensor: + """Dispatch uniform-grid Laplacian to eager PyTorch.""" + return uniform_grid_laplacian_torch( + field=field, + spacing=spacing, + order=order, + ) + + @classmethod + def make_inputs_forward(cls, device: torch.device | str = "cpu"): + """Yield representative forward benchmark and parity input cases.""" + device = torch.device(device) + for label, shape, spacing, order in cls._BENCHMARK_CASES: + field = _make_periodic_scalar_field(shape, device=device) + yield label, (field,), {"spacing": spacing, "order": order} + + @classmethod + def make_inputs_backward(cls, device: torch.device | str = "cpu"): + """Yield representative backward benchmark and parity input cases.""" + device = torch.device(device) + for label, shape, spacing, order in cls._BACKWARD_CASES: + field = ( + _make_periodic_scalar_field(shape, device=device) + .detach() + .clone() + .requires_grad_(True) + ) + yield label, (field,), {"spacing": spacing, "order": order} + + @classmethod + def compare_forward(cls, output: torch.Tensor, reference: torch.Tensor) -> None: + """Compare forward outputs across implementations.""" + torch.testing.assert_close( + output, + reference, + atol=cls._COMPARE_ATOL, + rtol=cls._COMPARE_RTOL, + ) + + @classmethod + def compare_backward(cls, output: torch.Tensor, reference: torch.Tensor) -> None: + """Compare backward gradients across implementations.""" + torch.testing.assert_close( + output, + reference, + atol=cls._COMPARE_BACKWARD_ATOL, + rtol=cls._COMPARE_BACKWARD_RTOL, + ) + + +def _make_periodic_scalar_field( + shape: tuple[int, ...], + *, + device: torch.device, +) -> torch.Tensor: + """Construct smooth periodic scalar fields for benchmark cases.""" + axes = tuple( + torch.arange(n, device=device, dtype=torch.float32) / float(n) for n in shape + ) + if len(shape) == 1: + (x0,) = axes + return torch.sin(2.0 * torch.pi * x0) + + if len(shape) == 2: + x0, x1 = axes + xx, yy = torch.meshgrid(x0, x1, indexing="ij") + return torch.sin(2.0 * torch.pi * xx) + 0.5 * torch.cos(2.0 * torch.pi * yy) + + x0, x1, x2 = axes + xx, yy, zz = torch.meshgrid(x0, x1, x2, indexing="ij") + return ( + torch.sin(2.0 * torch.pi * xx) + + 0.5 * torch.cos(2.0 * torch.pi * yy) + + 0.25 * torch.sin(2.0 * torch.pi * zz) + ) + + +uniform_grid_laplacian = UniformGridLaplacian.make_function("uniform_grid_laplacian") + +__all__ = ["UniformGridLaplacian", "uniform_grid_laplacian"] diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/utils.py b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/utils.py new file mode 100644 index 0000000000..00e9770b1e --- /dev/null +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/utils.py @@ -0,0 +1,28 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch + + +def validate_scalar_field(field: torch.Tensor) -> None: + """Validate a scalar 1D/2D/3D grid field.""" + if not torch.is_floating_point(field): + raise TypeError("field must be a floating-point tensor") + if field.ndim < 1 or field.ndim > 3: + raise ValueError( + "uniform_grid_laplacian expects a scalar 1D-3D grid field with shape " + "(n0,), (n0,n1), or (n0,n1,n2)" + ) diff --git a/test/nn/functional/derivatives/test_uniform_grid_curl.py b/test/nn/functional/derivatives/test_uniform_grid_curl.py new file mode 100644 index 0000000000..3b7791febd --- /dev/null +++ b/test/nn/functional/derivatives/test_uniform_grid_curl.py @@ -0,0 +1,225 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +import torch + +from physicsnemo.nn.functional import uniform_grid_curl +from physicsnemo.nn.functional.derivatives import UniformGridCurl +from test.conftest import requires_module +from test.nn.functional._parity_utils import clone_case + + +def _make_periodic_vector_field(device: str, dims: int): + torch_device = torch.device(device) + wave_number = 2.0 * torch.pi + + if dims == 2: + n0, n1 = 160, 144 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + x1 = torch.arange(n1, device=torch_device, dtype=torch.float32) / float(n1) + xx, yy = torch.meshgrid(x0, x1, indexing="ij") + vector_field = torch.stack( + ( + torch.sin(wave_number * yy), + torch.cos(wave_number * xx), + ), + dim=0, + ) + spacing = (1.0 / float(n0), 1.0 / float(n1)) + expected = -wave_number * torch.sin(wave_number * xx) - wave_number * torch.cos( + wave_number * yy + ) + return vector_field, spacing, expected + + n0, n1, n2 = 64, 56, 48 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + x1 = torch.arange(n1, device=torch_device, dtype=torch.float32) / float(n1) + x2 = torch.arange(n2, device=torch_device, dtype=torch.float32) / float(n2) + xx, yy, zz = torch.meshgrid(x0, x1, x2, indexing="ij") + vector_field = torch.stack( + ( + torch.sin(wave_number * yy), + torch.cos(wave_number * zz), + torch.sin(wave_number * xx), + ), + dim=0, + ) + spacing = (1.0 / float(n0), 1.0 / float(n1), 1.0 / float(n2)) + expected = torch.stack( + ( + wave_number * torch.sin(wave_number * zz), + -wave_number * torch.cos(wave_number * xx), + -wave_number * torch.cos(wave_number * yy), + ), + dim=0, + ) + return vector_field, spacing, expected + + +@pytest.mark.parametrize("dims", [2, 3]) +@pytest.mark.parametrize("order", [2, 4]) +def test_uniform_grid_curl_torch(device: str, dims: int, order: int): + vector_field, spacing, expected = _make_periodic_vector_field(device, dims) + output = UniformGridCurl.dispatch( + vector_field, + spacing=spacing, + order=order, + implementation="torch", + ) + torch.testing.assert_close(output, expected, atol=8e-2, rtol=8e-2) + + +def test_uniform_grid_curl_public_function(device: str): + vector_field, spacing, expected = _make_periodic_vector_field(device, dims=2) + output = uniform_grid_curl( + vector_field, + spacing=spacing, + order=2, + implementation="torch", + ) + torch.testing.assert_close(output, expected, atol=8e-2, rtol=8e-2) + + +@requires_module("warp") +def test_uniform_grid_curl_backend_forward_parity(device: str): + for _label, args, kwargs in UniformGridCurl.make_inputs_forward(device=device): + args_torch, kwargs_torch = clone_case(args, kwargs) + args_warp, kwargs_warp = clone_case(args, kwargs) + + out_torch = UniformGridCurl.dispatch( + *args_torch, + implementation="torch", + **kwargs_torch, + ) + out_warp = UniformGridCurl.dispatch( + *args_warp, + implementation="warp", + **kwargs_warp, + ) + UniformGridCurl.compare_forward(out_warp, out_torch) + + +def test_uniform_grid_curl_compare_forward_contract(device: str): + vector_field, spacing, _expected = _make_periodic_vector_field(device, dims=2) + output = UniformGridCurl.dispatch( + vector_field, + spacing=spacing, + order=2, + implementation="torch", + ) + UniformGridCurl.compare_forward(output, output.detach().clone()) + + +@requires_module("warp") +def test_uniform_grid_curl_backend_backward_parity(device: str): + for _label, args, kwargs in UniformGridCurl.make_inputs_backward(device=device): + args_torch, kwargs_torch = clone_case(args, kwargs) + args_warp, kwargs_warp = clone_case(args, kwargs) + + out_torch = UniformGridCurl.dispatch( + *args_torch, + implementation="torch", + **kwargs_torch, + ) + out_torch.square().mean().backward() + grad_torch = args_torch[0].grad + assert grad_torch is not None + + out_warp = UniformGridCurl.dispatch( + *args_warp, + implementation="warp", + **kwargs_warp, + ) + out_warp.square().mean().backward() + grad_warp = args_warp[0].grad + assert grad_warp is not None + + UniformGridCurl.compare_backward(grad_warp, grad_torch) + + +def test_uniform_grid_curl_compare_backward_contract(device: str): + vector_field, spacing, _expected = _make_periodic_vector_field(device, dims=2) + vector_field = vector_field.detach().clone().requires_grad_(True) + output = UniformGridCurl.dispatch( + vector_field, + spacing=spacing, + order=2, + implementation="torch", + ) + output.square().mean().backward() + assert vector_field.grad is not None + UniformGridCurl.compare_backward( + vector_field.grad, + vector_field.grad.detach().clone(), + ) + + +def test_uniform_grid_curl_error_handling(device: str): + with pytest.raises(TypeError, match="floating-point"): + UniformGridCurl.dispatch( + torch.ones((2, 8, 8), device=device, dtype=torch.int64), + implementation="torch", + ) + + with pytest.raises(ValueError, match="2D or 3D"): + UniformGridCurl.dispatch( + torch.ones((1, 8), device=device), + implementation="torch", + ) + + with pytest.raises(ValueError, match="shape\\[0\\]"): + UniformGridCurl.dispatch( + torch.ones((3, 8, 8), device=device), + implementation="torch", + ) + + +def test_uniform_grid_curl_make_inputs_forward(device: str): + label, args, kwargs = next(iter(UniformGridCurl.make_inputs_forward(device=device))) + assert isinstance(label, str) + assert isinstance(args, tuple) + assert isinstance(kwargs, dict) + + vector_field = args[0] + assert vector_field.ndim in (3, 4) + assert vector_field.shape[0] == vector_field.ndim - 1 + + output = UniformGridCurl.dispatch( + *args, + implementation="torch", + **kwargs, + ) + if vector_field.ndim == 3: + assert output.shape == vector_field.shape[1:] + else: + assert output.shape == vector_field.shape + + +def test_uniform_grid_curl_make_inputs_backward(device: str): + _label, args, kwargs = next( + iter(UniformGridCurl.make_inputs_backward(device=device)) + ) + vector_field = args[0] + assert vector_field.requires_grad + + output = UniformGridCurl.dispatch( + *args, + implementation="torch", + **kwargs, + ) + output.square().mean().backward() + assert vector_field.grad is not None diff --git a/test/nn/functional/derivatives/test_uniform_grid_divergence.py b/test/nn/functional/derivatives/test_uniform_grid_divergence.py new file mode 100644 index 0000000000..e4c770b983 --- /dev/null +++ b/test/nn/functional/derivatives/test_uniform_grid_divergence.py @@ -0,0 +1,227 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +import torch + +from physicsnemo.nn.functional import uniform_grid_divergence +from physicsnemo.nn.functional.derivatives import UniformGridDivergence +from test.conftest import requires_module +from test.nn.functional._parity_utils import clone_case + + +def _make_periodic_vector_field(device: str, dims: int): + torch_device = torch.device(device) + wave_number = 2.0 * torch.pi + + if dims == 1: + n0 = 384 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + vector_field = torch.sin(wave_number * x0).unsqueeze(0) + spacing = (1.0 / float(n0),) + expected = wave_number * torch.cos(wave_number * x0) + return vector_field, spacing, expected + + if dims == 2: + n0, n1 = 160, 144 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + x1 = torch.arange(n1, device=torch_device, dtype=torch.float32) / float(n1) + xx, yy = torch.meshgrid(x0, x1, indexing="ij") + vector_field = torch.stack( + ( + torch.sin(wave_number * xx), + torch.cos(wave_number * yy), + ), + dim=0, + ) + spacing = (1.0 / float(n0), 1.0 / float(n1)) + expected = wave_number * torch.cos(wave_number * xx) - wave_number * torch.sin( + wave_number * yy + ) + return vector_field, spacing, expected + + n0, n1, n2 = 64, 56, 48 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + x1 = torch.arange(n1, device=torch_device, dtype=torch.float32) / float(n1) + x2 = torch.arange(n2, device=torch_device, dtype=torch.float32) / float(n2) + xx, yy, zz = torch.meshgrid(x0, x1, x2, indexing="ij") + vector_field = torch.stack( + ( + torch.sin(wave_number * xx), + torch.cos(wave_number * yy), + 0.5 * torch.sin(wave_number * zz), + ), + dim=0, + ) + spacing = (1.0 / float(n0), 1.0 / float(n1), 1.0 / float(n2)) + expected = ( + wave_number * torch.cos(wave_number * xx) + - wave_number * torch.sin(wave_number * yy) + + 0.5 * wave_number * torch.cos(wave_number * zz) + ) + return vector_field, spacing, expected + + +@pytest.mark.parametrize("dims", [1, 2, 3]) +@pytest.mark.parametrize("order", [2, 4]) +def test_uniform_grid_divergence_torch(device: str, dims: int, order: int): + vector_field, spacing, expected = _make_periodic_vector_field(device, dims) + output = UniformGridDivergence.dispatch( + vector_field, + spacing=spacing, + order=order, + implementation="torch", + ) + torch.testing.assert_close(output, expected, atol=8e-2, rtol=8e-2) + + +def test_uniform_grid_divergence_public_function(device: str): + vector_field, spacing, expected = _make_periodic_vector_field(device, dims=2) + output = uniform_grid_divergence( + vector_field, + spacing=spacing, + order=2, + implementation="torch", + ) + torch.testing.assert_close(output, expected, atol=8e-2, rtol=8e-2) + + +@requires_module("warp") +def test_uniform_grid_divergence_backend_forward_parity(device: str): + for _label, args, kwargs in UniformGridDivergence.make_inputs_forward( + device=device + ): + args_torch, kwargs_torch = clone_case(args, kwargs) + args_warp, kwargs_warp = clone_case(args, kwargs) + + out_torch = UniformGridDivergence.dispatch( + *args_torch, + implementation="torch", + **kwargs_torch, + ) + out_warp = UniformGridDivergence.dispatch( + *args_warp, + implementation="warp", + **kwargs_warp, + ) + UniformGridDivergence.compare_forward(out_warp, out_torch) + + +def test_uniform_grid_divergence_compare_forward_contract(device: str): + vector_field, spacing, _expected = _make_periodic_vector_field(device, dims=2) + output = UniformGridDivergence.dispatch( + vector_field, + spacing=spacing, + order=2, + implementation="torch", + ) + UniformGridDivergence.compare_forward(output, output.detach().clone()) + + +@requires_module("warp") +def test_uniform_grid_divergence_backend_backward_parity(device: str): + for _label, args, kwargs in UniformGridDivergence.make_inputs_backward( + device=device + ): + args_torch, kwargs_torch = clone_case(args, kwargs) + args_warp, kwargs_warp = clone_case(args, kwargs) + + out_torch = UniformGridDivergence.dispatch( + *args_torch, + implementation="torch", + **kwargs_torch, + ) + out_torch.square().mean().backward() + grad_torch = args_torch[0].grad + assert grad_torch is not None + + out_warp = UniformGridDivergence.dispatch( + *args_warp, + implementation="warp", + **kwargs_warp, + ) + out_warp.square().mean().backward() + grad_warp = args_warp[0].grad + assert grad_warp is not None + + UniformGridDivergence.compare_backward(grad_warp, grad_torch) + + +def test_uniform_grid_divergence_compare_backward_contract(device: str): + vector_field, spacing, _expected = _make_periodic_vector_field(device, dims=2) + vector_field = vector_field.detach().clone().requires_grad_(True) + output = UniformGridDivergence.dispatch( + vector_field, + spacing=spacing, + order=2, + implementation="torch", + ) + output.square().mean().backward() + assert vector_field.grad is not None + UniformGridDivergence.compare_backward( + vector_field.grad, + vector_field.grad.detach().clone(), + ) + + +def test_uniform_grid_divergence_error_handling(device: str): + with pytest.raises(TypeError, match="floating-point"): + UniformGridDivergence.dispatch( + torch.ones((2, 8, 8), device=device, dtype=torch.int64), + implementation="torch", + ) + + with pytest.raises(ValueError, match="shape\\[0\\]"): + UniformGridDivergence.dispatch( + torch.ones((3, 8, 8), device=device), + implementation="torch", + ) + + +def test_uniform_grid_divergence_make_inputs_forward(device: str): + label, args, kwargs = next( + iter(UniformGridDivergence.make_inputs_forward(device=device)) + ) + assert isinstance(label, str) + assert isinstance(args, tuple) + assert isinstance(kwargs, dict) + + vector_field = args[0] + assert vector_field.ndim in (2, 3, 4) + assert vector_field.shape[0] == vector_field.ndim - 1 + + output = UniformGridDivergence.dispatch( + *args, + implementation="torch", + **kwargs, + ) + assert output.shape == vector_field.shape[1:] + + +def test_uniform_grid_divergence_make_inputs_backward(device: str): + _label, args, kwargs = next( + iter(UniformGridDivergence.make_inputs_backward(device=device)) + ) + vector_field = args[0] + assert vector_field.requires_grad + + output = UniformGridDivergence.dispatch( + *args, + implementation="torch", + **kwargs, + ) + output.square().mean().backward() + assert vector_field.grad is not None diff --git a/test/nn/functional/derivatives/test_uniform_grid_laplacian.py b/test/nn/functional/derivatives/test_uniform_grid_laplacian.py new file mode 100644 index 0000000000..5a3d3fa75b --- /dev/null +++ b/test/nn/functional/derivatives/test_uniform_grid_laplacian.py @@ -0,0 +1,211 @@ +# SPDX-FileCopyrightText: Copyright (c) 2023 - 2026 NVIDIA CORPORATION & AFFILIATES. +# SPDX-FileCopyrightText: All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +import torch + +from physicsnemo.nn.functional import uniform_grid_laplacian +from physicsnemo.nn.functional.derivatives import UniformGridLaplacian +from test.conftest import requires_module +from test.nn.functional._parity_utils import clone_case + + +def _make_periodic_scalar_field(device: str, dims: int): + torch_device = torch.device(device) + wave_number = 2.0 * torch.pi + + if dims == 1: + n0 = 384 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + field = torch.sin(wave_number * x0) + spacing = (1.0 / float(n0),) + expected = -(wave_number**2) * torch.sin(wave_number * x0) + return field, spacing, expected + + if dims == 2: + n0, n1 = 128, 112 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + x1 = torch.arange(n1, device=torch_device, dtype=torch.float32) / float(n1) + xx, yy = torch.meshgrid(x0, x1, indexing="ij") + field = torch.sin(wave_number * xx) + 0.5 * torch.cos(wave_number * yy) + spacing = (1.0 / float(n0), 1.0 / float(n1)) + expected = -(wave_number**2) * ( + torch.sin(wave_number * xx) + 0.5 * torch.cos(wave_number * yy) + ) + return field, spacing, expected + + n0, n1, n2 = 56, 48, 40 + x0 = torch.arange(n0, device=torch_device, dtype=torch.float32) / float(n0) + x1 = torch.arange(n1, device=torch_device, dtype=torch.float32) / float(n1) + x2 = torch.arange(n2, device=torch_device, dtype=torch.float32) / float(n2) + xx, yy, zz = torch.meshgrid(x0, x1, x2, indexing="ij") + field = ( + torch.sin(wave_number * xx) + + 0.5 * torch.cos(wave_number * yy) + + 0.25 * torch.sin(wave_number * zz) + ) + spacing = (1.0 / float(n0), 1.0 / float(n1), 1.0 / float(n2)) + expected = -(wave_number**2) * field + return field, spacing, expected + + +@pytest.mark.parametrize("dims", [1, 2, 3]) +@pytest.mark.parametrize("order", [2, 4]) +def test_uniform_grid_laplacian_torch(device: str, dims: int, order: int): + field, spacing, expected = _make_periodic_scalar_field(device, dims) + output = UniformGridLaplacian.dispatch( + field, + spacing=spacing, + order=order, + implementation="torch", + ) + torch.testing.assert_close(output, expected, atol=2e-1, rtol=8e-2) + + +def test_uniform_grid_laplacian_public_function(device: str): + field, spacing, expected = _make_periodic_scalar_field(device, dims=2) + output = uniform_grid_laplacian( + field, + spacing=spacing, + order=2, + implementation="torch", + ) + torch.testing.assert_close(output, expected, atol=2e-1, rtol=8e-2) + + +@requires_module("warp") +def test_uniform_grid_laplacian_backend_forward_parity(device: str): + for _label, args, kwargs in UniformGridLaplacian.make_inputs_forward(device=device): + args_torch, kwargs_torch = clone_case(args, kwargs) + args_warp, kwargs_warp = clone_case(args, kwargs) + + out_torch = UniformGridLaplacian.dispatch( + *args_torch, + implementation="torch", + **kwargs_torch, + ) + out_warp = UniformGridLaplacian.dispatch( + *args_warp, + implementation="warp", + **kwargs_warp, + ) + UniformGridLaplacian.compare_forward(out_warp, out_torch) + + +def test_uniform_grid_laplacian_compare_forward_contract(device: str): + field, spacing, _expected = _make_periodic_scalar_field(device, dims=2) + output = UniformGridLaplacian.dispatch( + field, + spacing=spacing, + order=2, + implementation="torch", + ) + UniformGridLaplacian.compare_forward(output, output.detach().clone()) + + +@requires_module("warp") +def test_uniform_grid_laplacian_backend_backward_parity(device: str): + for _label, args, kwargs in UniformGridLaplacian.make_inputs_backward( + device=device + ): + args_torch, kwargs_torch = clone_case(args, kwargs) + args_warp, kwargs_warp = clone_case(args, kwargs) + + out_torch = UniformGridLaplacian.dispatch( + *args_torch, + implementation="torch", + **kwargs_torch, + ) + out_torch.square().mean().backward() + grad_torch = args_torch[0].grad + assert grad_torch is not None + + out_warp = UniformGridLaplacian.dispatch( + *args_warp, + implementation="warp", + **kwargs_warp, + ) + out_warp.square().mean().backward() + grad_warp = args_warp[0].grad + assert grad_warp is not None + + UniformGridLaplacian.compare_backward(grad_warp, grad_torch) + + +def test_uniform_grid_laplacian_compare_backward_contract(device: str): + field, spacing, _expected = _make_periodic_scalar_field(device, dims=2) + field = field.detach().clone().requires_grad_(True) + output = UniformGridLaplacian.dispatch( + field, + spacing=spacing, + order=2, + implementation="torch", + ) + output.square().mean().backward() + assert field.grad is not None + UniformGridLaplacian.compare_backward( + field.grad, + field.grad.detach().clone(), + ) + + +def test_uniform_grid_laplacian_error_handling(device: str): + with pytest.raises(TypeError, match="floating-point"): + UniformGridLaplacian.dispatch( + torch.ones((8, 8), device=device, dtype=torch.int64), + implementation="torch", + ) + + with pytest.raises(ValueError, match="1D-3D"): + UniformGridLaplacian.dispatch( + torch.ones((2, 2, 2, 2), device=device), + implementation="torch", + ) + + +def test_uniform_grid_laplacian_make_inputs_forward(device: str): + label, args, kwargs = next( + iter(UniformGridLaplacian.make_inputs_forward(device=device)) + ) + assert isinstance(label, str) + assert isinstance(args, tuple) + assert isinstance(kwargs, dict) + + field = args[0] + assert field.ndim in (1, 2, 3) + + output = UniformGridLaplacian.dispatch( + *args, + implementation="torch", + **kwargs, + ) + assert output.shape == field.shape + + +def test_uniform_grid_laplacian_make_inputs_backward(device: str): + _label, args, kwargs = next( + iter(UniformGridLaplacian.make_inputs_backward(device=device)) + ) + field = args[0] + assert field.requires_grad + + output = UniformGridLaplacian.dispatch( + *args, + implementation="torch", + **kwargs, + ) + output.square().mean().backward() + assert field.grad is not None From bdee451459c553ab527bb63fac422a5a0c3f24ce Mon Sep 17 00:00:00 2001 From: Oliver Hennigh Date: Thu, 11 Jun 2026 10:53:25 -0700 Subject: [PATCH 2/2] Address vector calculus functional review --- .../uniform_grid_curl/_torch_impl.py | 78 +- .../uniform_grid_curl/_warp_impl.py | 724 +++++++------- .../uniform_grid_divergence/_torch_impl.py | 68 +- .../uniform_grid_divergence/_warp_impl.py | 932 +++++++++--------- .../uniform_grid_gradient/_warp_impl/utils.py | 24 + .../uniform_grid_laplacian/_torch_impl.py | 73 +- .../uniform_grid_laplacian/_warp_impl.py | 556 +++++------ 7 files changed, 1287 insertions(+), 1168 deletions(-) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py index 49c163f439..9c7ccbd22b 100644 --- a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_torch_impl.py @@ -20,9 +20,59 @@ import torch -from ..uniform_grid_gradient._torch_impl import uniform_grid_gradient_torch_multi from .utils import validate_vector_field +_SUPPORTED_ORDERS = (2, 4) + + +def _normalize_spacing( + spacing: float | Sequence[float], ndim: int +) -> tuple[float, ...]: + if isinstance(spacing, (float, int)): + return tuple(float(spacing) for _ in range(ndim)) + spacing_tuple = tuple(float(x) for x in spacing) + if len(spacing_tuple) != ndim: + raise ValueError( + f"spacing must have {ndim} entries for a {ndim}D field, got {len(spacing_tuple)}" + ) + return spacing_tuple + + +def _validate_order(order: int) -> int: + if not isinstance(order, int): + raise TypeError(f"order must be an integer, got {type(order)}") + if order not in _SUPPORTED_ORDERS: + raise ValueError( + "uniform_grid_curl supports central orders " + f"{list(_SUPPORTED_ORDERS)}, got order={order}" + ) + return order + + +def _central_derivative_order2( + field: torch.Tensor, axis: int, dx: float +) -> torch.Tensor: + return ( + torch.roll(field, shifts=-1, dims=axis) - torch.roll(field, shifts=1, dims=axis) + ) / (2.0 * dx) + + +def _central_derivative_order4( + field: torch.Tensor, axis: int, dx: float +) -> torch.Tensor: + return ( + -torch.roll(field, shifts=-2, dims=axis) + + 8.0 * torch.roll(field, shifts=-1, dims=axis) + - 8.0 * torch.roll(field, shifts=1, dims=axis) + + torch.roll(field, shifts=2, dims=axis) + ) / (12.0 * dx) + + +_DERIVATIVE_DISPATCH = { + 2: _central_derivative_order2, + 4: _central_derivative_order4, +} + def uniform_grid_curl_torch( vector_field: torch.Tensor, @@ -31,21 +81,19 @@ def uniform_grid_curl_torch( ) -> torch.Tensor: """Compute periodic uniform-grid curl with PyTorch tensor ops.""" grid_ndim = validate_vector_field(vector_field) - jacobian_rows = [ - uniform_grid_gradient_torch_multi( - field=vector_field[component], - spacing=spacing, - order=order, - derivative_orders=1, - include_mixed=False, - ) - for component in range(grid_ndim) - ] + spacing_tuple = _normalize_spacing(spacing, grid_ndim) + for dx in spacing_tuple: + if dx <= 0.0: + raise ValueError("all spacing entries must be strictly positive") + derivative_fn = _DERIVATIVE_DISPATCH[_validate_order(order)] + + def derivative(component: int, axis: int) -> torch.Tensor: + return derivative_fn(vector_field[component], axis, spacing_tuple[axis]) if grid_ndim == 2: - return jacobian_rows[1][0] - jacobian_rows[0][1] + return derivative(1, 0) - derivative(0, 1) - curl_x = jacobian_rows[2][1] - jacobian_rows[1][2] - curl_y = jacobian_rows[0][2] - jacobian_rows[2][0] - curl_z = jacobian_rows[1][0] - jacobian_rows[0][1] + curl_x = derivative(2, 1) - derivative(1, 2) + curl_y = derivative(0, 2) - derivative(2, 0) + curl_z = derivative(1, 0) - derivative(0, 1) return torch.stack((curl_x, curl_y, curl_z), dim=0) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py index b1df305737..fca86813b0 100644 --- a/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_curl/_warp_impl.py @@ -19,26 +19,21 @@ from collections.abc import Sequence import torch - +import warp as wp + +from ..uniform_grid_gradient._warp_impl.utils import ( + _launch_dim, + _normalize_spacing, + _to_wp_tensor, + _warp_launch_context, + _wp_launch, + _wrap_minus1, + _wrap_minus2, + _wrap_plus1, + _wrap_plus2, +) from .utils import validate_vector_field -try: - import warp as wp - - from ..uniform_grid_gradient._warp_impl.utils import ( - _launch_dim, - _normalize_spacing, - _to_wp_tensor, - _warp_launch_context, - _wp_launch, - ) - - _HAS_WARP = True -except ImportError as import_error: - _HAS_WARP = False - _WARP_IMPORT_ERROR = import_error - - _SUPPORTED_ORDERS = (2, 4) @@ -71,363 +66,352 @@ def _restore_dtype(tensor: torch.Tensor, target_dtype: torch.dtype) -> torch.Ten return tensor.to(dtype=target_dtype) -if _HAS_WARP: - - @wp.func - def _wrap_plus1(i: int, n: int) -> int: - return (i + 1) % n - - @wp.func - def _wrap_minus1(i: int, n: int) -> int: - return (i + n - 1) % n - - @wp.func - def _wrap_plus2(i: int, n: int) -> int: - return (i + 2) % n - - @wp.func - def _wrap_minus2(i: int, n: int) -> int: - return (i + n - 2) % n - - @wp.kernel - def _curl_2d_order2_kernel( - vector_field: wp.array3d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - output: wp.array2d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = output.shape[0] - n1 = output.shape[1] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - d_v1_dx = (vector_field[1, ip, j] - vector_field[1, im, j]) * (0.5 * inv_dx0) - d_v0_dy = (vector_field[0, i, jp] - vector_field[0, i, jm]) * (0.5 * inv_dx1) - output[i, j] = d_v1_dx - d_v0_dy - - @wp.kernel - def _curl_2d_order4_kernel( - vector_field: wp.array3d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - output: wp.array2d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = output.shape[0] - n1 = output.shape[1] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - d_v1_dx = ( - -vector_field[1, ip2, j] - + 8.0 * vector_field[1, ip1, j] - - 8.0 * vector_field[1, im1, j] - + vector_field[1, im2, j] - ) * (inv_dx0 / 12.0) - d_v0_dy = ( - -vector_field[0, i, jp2] - + 8.0 * vector_field[0, i, jp1] - - 8.0 * vector_field[0, i, jm1] - + vector_field[0, i, jm2] - ) * (inv_dx1 / 12.0) - output[i, j] = d_v1_dx - d_v0_dy - - @wp.kernel - def _curl_3d_order2_kernel( - vector_field: wp.array4d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - inv_dx2: float, - output: wp.array4d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = output.shape[1] - n1 = output.shape[2] - n2 = output.shape[3] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - km = _wrap_minus1(k, n2) - kp = _wrap_plus1(k, n2) - output[0, i, j, k] = (vector_field[2, i, jp, k] - vector_field[2, i, jm, k]) * ( - 0.5 * inv_dx1 - ) - (vector_field[1, i, j, kp] - vector_field[1, i, j, km]) * (0.5 * inv_dx2) - output[1, i, j, k] = (vector_field[0, i, j, kp] - vector_field[0, i, j, km]) * ( - 0.5 * inv_dx2 - ) - (vector_field[2, ip, j, k] - vector_field[2, im, j, k]) * (0.5 * inv_dx0) - output[2, i, j, k] = (vector_field[1, ip, j, k] - vector_field[1, im, j, k]) * ( - 0.5 * inv_dx0 - ) - (vector_field[0, i, jp, k] - vector_field[0, i, jm, k]) * (0.5 * inv_dx1) - - @wp.kernel - def _curl_3d_order4_kernel( - vector_field: wp.array4d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - inv_dx2: float, - output: wp.array4d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = output.shape[1] - n1 = output.shape[2] - n2 = output.shape[3] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - km1 = _wrap_minus1(k, n2) - kp1 = _wrap_plus1(k, n2) - km2 = _wrap_minus2(k, n2) - kp2 = _wrap_plus2(k, n2) - d_v2_dy = ( - -vector_field[2, i, jp2, k] - + 8.0 * vector_field[2, i, jp1, k] - - 8.0 * vector_field[2, i, jm1, k] - + vector_field[2, i, jm2, k] - ) * (inv_dx1 / 12.0) - d_v1_dz = ( - -vector_field[1, i, j, kp2] - + 8.0 * vector_field[1, i, j, kp1] - - 8.0 * vector_field[1, i, j, km1] - + vector_field[1, i, j, km2] - ) * (inv_dx2 / 12.0) - d_v0_dz = ( - -vector_field[0, i, j, kp2] - + 8.0 * vector_field[0, i, j, kp1] - - 8.0 * vector_field[0, i, j, km1] - + vector_field[0, i, j, km2] - ) * (inv_dx2 / 12.0) - d_v2_dx = ( - -vector_field[2, ip2, j, k] - + 8.0 * vector_field[2, ip1, j, k] - - 8.0 * vector_field[2, im1, j, k] - + vector_field[2, im2, j, k] - ) * (inv_dx0 / 12.0) - d_v1_dx = ( - -vector_field[1, ip2, j, k] - + 8.0 * vector_field[1, ip1, j, k] - - 8.0 * vector_field[1, im1, j, k] - + vector_field[1, im2, j, k] - ) * (inv_dx0 / 12.0) - d_v0_dy = ( - -vector_field[0, i, jp2, k] - + 8.0 * vector_field[0, i, jp1, k] - - 8.0 * vector_field[0, i, jm1, k] - + vector_field[0, i, jm2, k] - ) * (inv_dx1 / 12.0) - output[0, i, j, k] = d_v2_dy - d_v1_dz - output[1, i, j, k] = d_v0_dz - d_v2_dx - output[2, i, j, k] = d_v1_dx - d_v0_dy - - @wp.kernel - def _curl_backward_2d_order2_kernel( - grad_output: wp.array2d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - grad_vector: wp.array3d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = grad_output.shape[0] - n1 = grad_output.shape[1] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - grad_vector[0, i, j] = (grad_output[i, jp] - grad_output[i, jm]) * ( - 0.5 * inv_dx1 - ) - grad_vector[1, i, j] = (grad_output[im, j] - grad_output[ip, j]) * ( - 0.5 * inv_dx0 - ) +@wp.kernel +def _curl_2d_order2_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + d_v1_dx = (vector_field[1, ip, j] - vector_field[1, im, j]) * (0.5 * inv_dx0) + d_v0_dy = (vector_field[0, i, jp] - vector_field[0, i, jm]) * (0.5 * inv_dx1) + output[i, j] = d_v1_dx - d_v0_dy + + +@wp.kernel +def _curl_2d_order4_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + d_v1_dx = ( + -vector_field[1, ip2, j] + + 8.0 * vector_field[1, ip1, j] + - 8.0 * vector_field[1, im1, j] + + vector_field[1, im2, j] + ) * (inv_dx0 / 12.0) + d_v0_dy = ( + -vector_field[0, i, jp2] + + 8.0 * vector_field[0, i, jp1] + - 8.0 * vector_field[0, i, jm1] + + vector_field[0, i, jm2] + ) * (inv_dx1 / 12.0) + output[i, j] = d_v1_dx - d_v0_dy + + +@wp.kernel +def _curl_3d_order2_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array4d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = output.shape[1] + n1 = output.shape[2] + n2 = output.shape[3] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + output[0, i, j, k] = (vector_field[2, i, jp, k] - vector_field[2, i, jm, k]) * ( + 0.5 * inv_dx1 + ) - (vector_field[1, i, j, kp] - vector_field[1, i, j, km]) * (0.5 * inv_dx2) + output[1, i, j, k] = (vector_field[0, i, j, kp] - vector_field[0, i, j, km]) * ( + 0.5 * inv_dx2 + ) - (vector_field[2, ip, j, k] - vector_field[2, im, j, k]) * (0.5 * inv_dx0) + output[2, i, j, k] = (vector_field[1, ip, j, k] - vector_field[1, im, j, k]) * ( + 0.5 * inv_dx0 + ) - (vector_field[0, i, jp, k] - vector_field[0, i, jm, k]) * (0.5 * inv_dx1) + + +@wp.kernel +def _curl_3d_order4_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array4d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = output.shape[1] + n1 = output.shape[2] + n2 = output.shape[3] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + d_v2_dy = ( + -vector_field[2, i, jp2, k] + + 8.0 * vector_field[2, i, jp1, k] + - 8.0 * vector_field[2, i, jm1, k] + + vector_field[2, i, jm2, k] + ) * (inv_dx1 / 12.0) + d_v1_dz = ( + -vector_field[1, i, j, kp2] + + 8.0 * vector_field[1, i, j, kp1] + - 8.0 * vector_field[1, i, j, km1] + + vector_field[1, i, j, km2] + ) * (inv_dx2 / 12.0) + d_v0_dz = ( + -vector_field[0, i, j, kp2] + + 8.0 * vector_field[0, i, j, kp1] + - 8.0 * vector_field[0, i, j, km1] + + vector_field[0, i, j, km2] + ) * (inv_dx2 / 12.0) + d_v2_dx = ( + -vector_field[2, ip2, j, k] + + 8.0 * vector_field[2, ip1, j, k] + - 8.0 * vector_field[2, im1, j, k] + + vector_field[2, im2, j, k] + ) * (inv_dx0 / 12.0) + d_v1_dx = ( + -vector_field[1, ip2, j, k] + + 8.0 * vector_field[1, ip1, j, k] + - 8.0 * vector_field[1, im1, j, k] + + vector_field[1, im2, j, k] + ) * (inv_dx0 / 12.0) + d_v0_dy = ( + -vector_field[0, i, jp2, k] + + 8.0 * vector_field[0, i, jp1, k] + - 8.0 * vector_field[0, i, jm1, k] + + vector_field[0, i, jm2, k] + ) * (inv_dx1 / 12.0) + output[0, i, j, k] = d_v2_dy - d_v1_dz + output[1, i, j, k] = d_v0_dz - d_v2_dx + output[2, i, j, k] = d_v1_dx - d_v0_dy + + +@wp.kernel +def _curl_backward_2d_order2_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + grad_vector[0, i, j] = (grad_output[i, jp] - grad_output[i, jm]) * (0.5 * inv_dx1) + grad_vector[1, i, j] = (grad_output[im, j] - grad_output[ip, j]) * (0.5 * inv_dx0) + + +@wp.kernel +def _curl_backward_2d_order4_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + grad_vector[0, i, j] = ( + -grad_output[i, jp2] + + 8.0 * grad_output[i, jp1] + - 8.0 * grad_output[i, jm1] + + grad_output[i, jm2] + ) * (inv_dx1 / 12.0) + grad_vector[1, i, j] = ( + grad_output[ip2, j] + - 8.0 * grad_output[ip1, j] + + 8.0 * grad_output[im1, j] + - grad_output[im2, j] + ) * (inv_dx0 / 12.0) + + +_FORWARD_KERNELS = { + (2, 2): _curl_2d_order2_kernel, + (2, 4): _curl_2d_order4_kernel, + (3, 2): _curl_3d_order2_kernel, + (3, 4): _curl_3d_order4_kernel, +} +_BACKWARD_2D_KERNELS = { + 2: _curl_backward_2d_order2_kernel, + 4: _curl_backward_2d_order4_kernel, +} + + +def _launch_curl_forward( + *, + vector_field_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + output_fp32: torch.Tensor, +) -> None: + wp_device, wp_stream = _warp_launch_context(vector_field_fp32) + launch_shape = output_fp32.shape if output_fp32.ndim == 2 else output_fp32.shape[1:] + _wp_launch( + kernel=_FORWARD_KERNELS[(vector_field_fp32.ndim - 1, order)], + dim=_launch_dim(launch_shape), + inputs=[ + _to_wp_tensor(vector_field_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(output_fp32), + ], + device=wp_device, + stream=wp_stream, + ) - @wp.kernel - def _curl_backward_2d_order4_kernel( - grad_output: wp.array2d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - grad_vector: wp.array3d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = grad_output.shape[0] - n1 = grad_output.shape[1] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - grad_vector[0, i, j] = ( - -grad_output[i, jp2] - + 8.0 * grad_output[i, jp1] - - 8.0 * grad_output[i, jm1] - + grad_output[i, jm2] - ) * (inv_dx1 / 12.0) - grad_vector[1, i, j] = ( - grad_output[ip2, j] - - 8.0 * grad_output[ip1, j] - + 8.0 * grad_output[im1, j] - - grad_output[im2, j] - ) * (inv_dx0 / 12.0) - - _FORWARD_KERNELS = { - (2, 2): _curl_2d_order2_kernel, - (2, 4): _curl_2d_order4_kernel, - (3, 2): _curl_3d_order2_kernel, - (3, 4): _curl_3d_order4_kernel, - } - _BACKWARD_2D_KERNELS = { - 2: _curl_backward_2d_order2_kernel, - 4: _curl_backward_2d_order4_kernel, - } - - def _launch_curl_forward( - *, - vector_field_fp32: torch.Tensor, - spacing_tuple: tuple[float, ...], - order: int, - output_fp32: torch.Tensor, - ) -> None: - wp_device, wp_stream = _warp_launch_context(vector_field_fp32) - launch_shape = ( - output_fp32.shape if output_fp32.ndim == 2 else output_fp32.shape[1:] - ) - _wp_launch( - kernel=_FORWARD_KERNELS[(vector_field_fp32.ndim - 1, order)], - dim=_launch_dim(launch_shape), - inputs=[ - _to_wp_tensor(vector_field_fp32), - *[1.0 / float(dx) for dx in spacing_tuple], - _to_wp_tensor(output_fp32), - ], - device=wp_device, - stream=wp_stream, - ) - def _launch_curl_backward_2d( - *, - grad_output_fp32: torch.Tensor, - spacing_tuple: tuple[float, ...], - order: int, - grad_vector_fp32: torch.Tensor, - ) -> None: - wp_device, wp_stream = _warp_launch_context(grad_output_fp32) - _wp_launch( - kernel=_BACKWARD_2D_KERNELS[order], - dim=_launch_dim(grad_output_fp32.shape), - inputs=[ - _to_wp_tensor(grad_output_fp32), - *[1.0 / float(dx) for dx in spacing_tuple], - _to_wp_tensor(grad_vector_fp32), - ], - device=wp_device, - stream=wp_stream, - ) +def _launch_curl_backward_2d( + *, + grad_output_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + grad_vector_fp32: torch.Tensor, +) -> None: + wp_device, wp_stream = _warp_launch_context(grad_output_fp32) + _wp_launch( + kernel=_BACKWARD_2D_KERNELS[order], + dim=_launch_dim(grad_output_fp32.shape), + inputs=[ + _to_wp_tensor(grad_output_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(grad_vector_fp32), + ], + device=wp_device, + stream=wp_stream, + ) + + +@torch.library.custom_op("physicsnemo::uniform_grid_curl_warp_impl", mutates_args=()) +def uniform_grid_curl_impl( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, +) -> torch.Tensor: + """Evaluate uniform-grid curl with fused Warp kernels.""" + grid_ndim = validate_vector_field(vector_field) + spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(int(order)) + orig_dtype = vector_field.dtype + vector_field_fp32 = _to_fp32_contiguous(vector_field) + output_shape = ( + vector_field_fp32.shape[1:] if grid_ndim == 2 else vector_field_fp32.shape + ) + output_fp32 = torch.empty( + output_shape, + device=vector_field_fp32.device, + dtype=torch.float32, + ) + _launch_curl_forward( + vector_field_fp32=vector_field_fp32, + spacing_tuple=spacing_tuple[:grid_ndim], + order=order, + output_fp32=output_fp32, + ) + return _restore_dtype(output_fp32, orig_dtype) + - @torch.library.custom_op( - "physicsnemo::uniform_grid_curl_warp_impl", mutates_args=() +@uniform_grid_curl_impl.register_fake +def _uniform_grid_curl_impl_fake( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, +) -> torch.Tensor: + _ = (spacing_meta, order) + output_shape = ( + vector_field.shape[1:] if vector_field.ndim == 3 else vector_field.shape ) - def uniform_grid_curl_impl( - vector_field: torch.Tensor, - spacing_meta: torch.Tensor, - order: int, - ) -> torch.Tensor: - grid_ndim = validate_vector_field(vector_field) - spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) - _validate_positive_spacing(spacing_tuple) - order = _validate_order(int(order)) - orig_dtype = vector_field.dtype - vector_field_fp32 = _to_fp32_contiguous(vector_field) - output_shape = ( - vector_field_fp32.shape[1:] if grid_ndim == 2 else vector_field_fp32.shape - ) - output_fp32 = torch.empty( - output_shape, - device=vector_field_fp32.device, + return torch.empty( + output_shape, + device=vector_field.device, + dtype=vector_field.dtype, + ) + + +def setup_uniform_grid_curl_context( + ctx: torch.autograd.function.FunctionCtx, + inputs: tuple, + output: torch.Tensor, +) -> None: + """Save uniform-grid curl metadata for the backward pass.""" + vector_field, spacing_meta, order = inputs + _ = output + ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + ctx.order = int(order) + ctx.orig_dtype = vector_field.dtype + ctx.grid_ndim = vector_field.ndim - 1 + + +def backward_uniform_grid_curl( + ctx: torch.autograd.function.FunctionCtx, + grad_output: torch.Tensor, +) -> tuple[torch.Tensor | None, None, None]: + if grad_output is None or not ctx.needs_input_grad[0]: + return None, None, None + grad_output_fp32 = _to_fp32_contiguous(grad_output) + if ctx.grid_ndim == 2: + grad_vector_fp32 = torch.empty( + (2, *grad_output_fp32.shape), + device=grad_output_fp32.device, dtype=torch.float32, ) - _launch_curl_forward( - vector_field_fp32=vector_field_fp32, - spacing_tuple=spacing_tuple[:grid_ndim], - order=order, - output_fp32=output_fp32, + _launch_curl_backward_2d( + grad_output_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple[:2], + order=ctx.order, + grad_vector_fp32=grad_vector_fp32, ) - return _restore_dtype(output_fp32, orig_dtype) - - @uniform_grid_curl_impl.register_fake - def _uniform_grid_curl_impl_fake( - vector_field: torch.Tensor, - spacing_meta: torch.Tensor, - order: int, - ) -> torch.Tensor: - _ = (spacing_meta, order) - output_shape = ( - vector_field.shape[1:] if vector_field.ndim == 3 else vector_field.shape - ) - return torch.empty( - output_shape, - device=vector_field.device, - dtype=vector_field.dtype, + else: + grad_vector_fp32 = torch.empty_like(grad_output_fp32) + _launch_curl_forward( + vector_field_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple[:3], + order=ctx.order, + output_fp32=grad_vector_fp32, ) + return _restore_dtype(grad_vector_fp32, ctx.orig_dtype), None, None - def setup_uniform_grid_curl_context( - ctx: torch.autograd.function.FunctionCtx, - inputs: tuple, - output: torch.Tensor, - ) -> None: - vector_field, spacing_meta, order = inputs - _ = output - ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) - ctx.order = int(order) - ctx.orig_dtype = vector_field.dtype - ctx.grid_ndim = vector_field.ndim - 1 - - def backward_uniform_grid_curl( - ctx: torch.autograd.function.FunctionCtx, - grad_output: torch.Tensor, - ) -> tuple[torch.Tensor | None, None, None]: - if grad_output is None or not ctx.needs_input_grad[0]: - return None, None, None - grad_output_fp32 = _to_fp32_contiguous(grad_output) - if ctx.grid_ndim == 2: - grad_vector_fp32 = torch.empty( - (2, *grad_output_fp32.shape), - device=grad_output_fp32.device, - dtype=torch.float32, - ) - _launch_curl_backward_2d( - grad_output_fp32=grad_output_fp32, - spacing_tuple=ctx.spacing_tuple[:2], - order=ctx.order, - grad_vector_fp32=grad_vector_fp32, - ) - else: - grad_vector_fp32 = torch.empty_like(grad_output_fp32) - _launch_curl_forward( - vector_field_fp32=grad_output_fp32, - spacing_tuple=ctx.spacing_tuple[:3], - order=ctx.order, - output_fp32=grad_vector_fp32, - ) - return _restore_dtype(grad_vector_fp32, ctx.orig_dtype), None, None - - uniform_grid_curl_impl.register_autograd( - backward_uniform_grid_curl, - setup_context=setup_uniform_grid_curl_context, - ) + +uniform_grid_curl_impl.register_autograd( + backward_uniform_grid_curl, + setup_context=setup_uniform_grid_curl_context, +) def uniform_grid_curl_warp( @@ -436,13 +420,7 @@ def uniform_grid_curl_warp( order: int = 2, ) -> torch.Tensor: """Compute periodic uniform-grid curl with a fused Warp custom op.""" - if not _HAS_WARP: - raise ImportError( - "uniform_grid_curl requires the Warp backend; install warp>=0.6.0" - ) from _WARP_IMPORT_ERROR - grid_ndim = validate_vector_field(vector_field) + grid_ndim = vector_field.ndim - 1 spacing_tuple = _normalize_spacing(spacing, grid_ndim) - _validate_positive_spacing(spacing_tuple) - order = _validate_order(order) spacing_meta = torch.tensor(spacing_tuple, dtype=torch.float32, device="cpu") return uniform_grid_curl_impl(vector_field, spacing_meta, int(order)) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py index 5a37a69e2c..a3f2176a6f 100644 --- a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_torch_impl.py @@ -20,9 +20,59 @@ import torch -from ..uniform_grid_gradient._torch_impl import uniform_grid_gradient_torch_multi from .utils import validate_vector_field +_SUPPORTED_ORDERS = (2, 4) + + +def _normalize_spacing( + spacing: float | Sequence[float], ndim: int +) -> tuple[float, ...]: + if isinstance(spacing, (float, int)): + return tuple(float(spacing) for _ in range(ndim)) + spacing_tuple = tuple(float(x) for x in spacing) + if len(spacing_tuple) != ndim: + raise ValueError( + f"spacing must have {ndim} entries for a {ndim}D field, got {len(spacing_tuple)}" + ) + return spacing_tuple + + +def _validate_order(order: int) -> int: + if not isinstance(order, int): + raise TypeError(f"order must be an integer, got {type(order)}") + if order not in _SUPPORTED_ORDERS: + raise ValueError( + "uniform_grid_divergence supports central orders " + f"{list(_SUPPORTED_ORDERS)}, got order={order}" + ) + return order + + +def _central_derivative_order2( + field: torch.Tensor, axis: int, dx: float +) -> torch.Tensor: + return ( + torch.roll(field, shifts=-1, dims=axis) - torch.roll(field, shifts=1, dims=axis) + ) / (2.0 * dx) + + +def _central_derivative_order4( + field: torch.Tensor, axis: int, dx: float +) -> torch.Tensor: + return ( + -torch.roll(field, shifts=-2, dims=axis) + + 8.0 * torch.roll(field, shifts=-1, dims=axis) + - 8.0 * torch.roll(field, shifts=1, dims=axis) + + torch.roll(field, shifts=2, dims=axis) + ) / (12.0 * dx) + + +_DERIVATIVE_DISPATCH = { + 2: _central_derivative_order2, + 4: _central_derivative_order4, +} + def uniform_grid_divergence_torch( vector_field: torch.Tensor, @@ -31,15 +81,13 @@ def uniform_grid_divergence_torch( ) -> torch.Tensor: """Compute periodic uniform-grid divergence with PyTorch tensor ops.""" grid_ndim = validate_vector_field(vector_field) + spacing_tuple = _normalize_spacing(spacing, grid_ndim) + for dx in spacing_tuple: + if dx <= 0.0: + raise ValueError("all spacing entries must be strictly positive") + derivative_fn = _DERIVATIVE_DISPATCH[_validate_order(order)] divergence = torch.zeros_like(vector_field[0]) - for axis in range(grid_ndim): - derivatives = uniform_grid_gradient_torch_multi( - field=vector_field[axis], - spacing=spacing, - order=order, - derivative_orders=1, - include_mixed=False, - ) - divergence = divergence + derivatives[axis] + for axis, dx in enumerate(spacing_tuple): + divergence = divergence + derivative_fn(vector_field[axis], axis, dx) return divergence diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py index 7b63153bf5..d42b7d9d46 100644 --- a/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_divergence/_warp_impl.py @@ -19,26 +19,21 @@ from collections.abc import Sequence import torch - +import warp as wp + +from ..uniform_grid_gradient._warp_impl.utils import ( + _launch_dim, + _normalize_spacing, + _to_wp_tensor, + _warp_launch_context, + _wp_launch, + _wrap_minus1, + _wrap_minus2, + _wrap_plus1, + _wrap_plus2, +) from .utils import validate_vector_field -try: - import warp as wp - - from ..uniform_grid_gradient._warp_impl.utils import ( - _launch_dim, - _normalize_spacing, - _to_wp_tensor, - _warp_launch_context, - _wp_launch, - ) - - _HAS_WARP = True -except ImportError as import_error: - _HAS_WARP = False - _WARP_IMPORT_ERROR = import_error - - _SUPPORTED_ORDERS = (2, 4) @@ -71,464 +66,457 @@ def _restore_dtype(tensor: torch.Tensor, target_dtype: torch.dtype) -> torch.Ten return tensor.to(dtype=target_dtype) -if _HAS_WARP: - - @wp.func - def _wrap_plus1(i: int, n: int) -> int: - return (i + 1) % n - - @wp.func - def _wrap_minus1(i: int, n: int) -> int: - return (i + n - 1) % n - - @wp.func - def _wrap_plus2(i: int, n: int) -> int: - return (i + 2) % n - - @wp.func - def _wrap_minus2(i: int, n: int) -> int: - return (i + n - 2) % n - - @wp.kernel - def _divergence_1d_order2_kernel( - vector_field: wp.array2d(dtype=wp.float32), - inv_dx0: float, - output: wp.array(dtype=wp.float32), - ): - i = wp.tid() - n0 = output.shape[0] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - output[i] = (vector_field[0, ip] - vector_field[0, im]) * (0.5 * inv_dx0) - - @wp.kernel - def _divergence_1d_order4_kernel( - vector_field: wp.array2d(dtype=wp.float32), - inv_dx0: float, - output: wp.array(dtype=wp.float32), - ): - i = wp.tid() - n0 = output.shape[0] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - output[i] = ( - -vector_field[0, ip2] - + 8.0 * vector_field[0, ip1] - - 8.0 * vector_field[0, im1] - + vector_field[0, im2] - ) * (inv_dx0 / 12.0) - - @wp.kernel - def _divergence_2d_order2_kernel( - vector_field: wp.array3d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - output: wp.array2d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = output.shape[0] - n1 = output.shape[1] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - div_x = (vector_field[0, ip, j] - vector_field[0, im, j]) * (0.5 * inv_dx0) - div_y = (vector_field[1, i, jp] - vector_field[1, i, jm]) * (0.5 * inv_dx1) - output[i, j] = div_x + div_y - - @wp.kernel - def _divergence_2d_order4_kernel( - vector_field: wp.array3d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - output: wp.array2d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = output.shape[0] - n1 = output.shape[1] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - div_x = ( - -vector_field[0, ip2, j] - + 8.0 * vector_field[0, ip1, j] - - 8.0 * vector_field[0, im1, j] - + vector_field[0, im2, j] - ) * (inv_dx0 / 12.0) - div_y = ( - -vector_field[1, i, jp2] - + 8.0 * vector_field[1, i, jp1] - - 8.0 * vector_field[1, i, jm1] - + vector_field[1, i, jm2] - ) * (inv_dx1 / 12.0) - output[i, j] = div_x + div_y - - @wp.kernel - def _divergence_3d_order2_kernel( - vector_field: wp.array4d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - inv_dx2: float, - output: wp.array3d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = output.shape[0] - n1 = output.shape[1] - n2 = output.shape[2] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - km = _wrap_minus1(k, n2) - kp = _wrap_plus1(k, n2) - div_x = (vector_field[0, ip, j, k] - vector_field[0, im, j, k]) * ( - 0.5 * inv_dx0 - ) - div_y = (vector_field[1, i, jp, k] - vector_field[1, i, jm, k]) * ( - 0.5 * inv_dx1 - ) - div_z = (vector_field[2, i, j, kp] - vector_field[2, i, j, km]) * ( - 0.5 * inv_dx2 - ) - output[i, j, k] = div_x + div_y + div_z - - @wp.kernel - def _divergence_3d_order4_kernel( - vector_field: wp.array4d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - inv_dx2: float, - output: wp.array3d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = output.shape[0] - n1 = output.shape[1] - n2 = output.shape[2] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - km1 = _wrap_minus1(k, n2) - kp1 = _wrap_plus1(k, n2) - km2 = _wrap_minus2(k, n2) - kp2 = _wrap_plus2(k, n2) - div_x = ( - -vector_field[0, ip2, j, k] - + 8.0 * vector_field[0, ip1, j, k] - - 8.0 * vector_field[0, im1, j, k] - + vector_field[0, im2, j, k] - ) * (inv_dx0 / 12.0) - div_y = ( - -vector_field[1, i, jp2, k] - + 8.0 * vector_field[1, i, jp1, k] - - 8.0 * vector_field[1, i, jm1, k] - + vector_field[1, i, jm2, k] - ) * (inv_dx1 / 12.0) - div_z = ( - -vector_field[2, i, j, kp2] - + 8.0 * vector_field[2, i, j, kp1] - - 8.0 * vector_field[2, i, j, km1] - + vector_field[2, i, j, km2] - ) * (inv_dx2 / 12.0) - output[i, j, k] = div_x + div_y + div_z - - @wp.kernel - def _divergence_backward_1d_order2_kernel( - grad_output: wp.array(dtype=wp.float32), - inv_dx0: float, - grad_vector: wp.array2d(dtype=wp.float32), - ): - i = wp.tid() - n0 = grad_output.shape[0] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - grad_vector[0, i] = (grad_output[im] - grad_output[ip]) * (0.5 * inv_dx0) - - @wp.kernel - def _divergence_backward_1d_order4_kernel( - grad_output: wp.array(dtype=wp.float32), - inv_dx0: float, - grad_vector: wp.array2d(dtype=wp.float32), - ): - i = wp.tid() - n0 = grad_output.shape[0] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - grad_vector[0, i] = ( - grad_output[ip2] - - 8.0 * grad_output[ip1] - + 8.0 * grad_output[im1] - - grad_output[im2] - ) * (inv_dx0 / 12.0) - - @wp.kernel - def _divergence_backward_2d_order2_kernel( - grad_output: wp.array2d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - grad_vector: wp.array3d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = grad_output.shape[0] - n1 = grad_output.shape[1] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - grad_vector[0, i, j] = (grad_output[im, j] - grad_output[ip, j]) * ( - 0.5 * inv_dx0 - ) - grad_vector[1, i, j] = (grad_output[i, jm] - grad_output[i, jp]) * ( - 0.5 * inv_dx1 - ) +@wp.kernel +def _divergence_1d_order2_kernel( + vector_field: wp.array2d(dtype=wp.float32), + inv_dx0: float, + output: wp.array(dtype=wp.float32), +): + i = wp.tid() + n0 = output.shape[0] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + output[i] = (vector_field[0, ip] - vector_field[0, im]) * (0.5 * inv_dx0) + + +@wp.kernel +def _divergence_1d_order4_kernel( + vector_field: wp.array2d(dtype=wp.float32), + inv_dx0: float, + output: wp.array(dtype=wp.float32), +): + i = wp.tid() + n0 = output.shape[0] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + output[i] = ( + -vector_field[0, ip2] + + 8.0 * vector_field[0, ip1] + - 8.0 * vector_field[0, im1] + + vector_field[0, im2] + ) * (inv_dx0 / 12.0) + + +@wp.kernel +def _divergence_2d_order2_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + div_x = (vector_field[0, ip, j] - vector_field[0, im, j]) * (0.5 * inv_dx0) + div_y = (vector_field[1, i, jp] - vector_field[1, i, jm]) * (0.5 * inv_dx1) + output[i, j] = div_x + div_y + + +@wp.kernel +def _divergence_2d_order4_kernel( + vector_field: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + output: wp.array2d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + div_x = ( + -vector_field[0, ip2, j] + + 8.0 * vector_field[0, ip1, j] + - 8.0 * vector_field[0, im1, j] + + vector_field[0, im2, j] + ) * (inv_dx0 / 12.0) + div_y = ( + -vector_field[1, i, jp2] + + 8.0 * vector_field[1, i, jp1] + - 8.0 * vector_field[1, i, jm1] + + vector_field[1, i, jm2] + ) * (inv_dx1 / 12.0) + output[i, j] = div_x + div_y + + +@wp.kernel +def _divergence_3d_order2_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array3d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + n2 = output.shape[2] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + div_x = (vector_field[0, ip, j, k] - vector_field[0, im, j, k]) * (0.5 * inv_dx0) + div_y = (vector_field[1, i, jp, k] - vector_field[1, i, jm, k]) * (0.5 * inv_dx1) + div_z = (vector_field[2, i, j, kp] - vector_field[2, i, j, km]) * (0.5 * inv_dx2) + output[i, j, k] = div_x + div_y + div_z + + +@wp.kernel +def _divergence_3d_order4_kernel( + vector_field: wp.array4d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + output: wp.array3d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = output.shape[0] + n1 = output.shape[1] + n2 = output.shape[2] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + div_x = ( + -vector_field[0, ip2, j, k] + + 8.0 * vector_field[0, ip1, j, k] + - 8.0 * vector_field[0, im1, j, k] + + vector_field[0, im2, j, k] + ) * (inv_dx0 / 12.0) + div_y = ( + -vector_field[1, i, jp2, k] + + 8.0 * vector_field[1, i, jp1, k] + - 8.0 * vector_field[1, i, jm1, k] + + vector_field[1, i, jm2, k] + ) * (inv_dx1 / 12.0) + div_z = ( + -vector_field[2, i, j, kp2] + + 8.0 * vector_field[2, i, j, kp1] + - 8.0 * vector_field[2, i, j, km1] + + vector_field[2, i, j, km2] + ) * (inv_dx2 / 12.0) + output[i, j, k] = div_x + div_y + div_z + + +@wp.kernel +def _divergence_backward_1d_order2_kernel( + grad_output: wp.array(dtype=wp.float32), + inv_dx0: float, + grad_vector: wp.array2d(dtype=wp.float32), +): + i = wp.tid() + n0 = grad_output.shape[0] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + grad_vector[0, i] = (grad_output[im] - grad_output[ip]) * (0.5 * inv_dx0) + + +@wp.kernel +def _divergence_backward_1d_order4_kernel( + grad_output: wp.array(dtype=wp.float32), + inv_dx0: float, + grad_vector: wp.array2d(dtype=wp.float32), +): + i = wp.tid() + n0 = grad_output.shape[0] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + grad_vector[0, i] = ( + grad_output[ip2] + - 8.0 * grad_output[ip1] + + 8.0 * grad_output[im1] + - grad_output[im2] + ) * (inv_dx0 / 12.0) + + +@wp.kernel +def _divergence_backward_2d_order2_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + grad_vector[0, i, j] = (grad_output[im, j] - grad_output[ip, j]) * (0.5 * inv_dx0) + grad_vector[1, i, j] = (grad_output[i, jm] - grad_output[i, jp]) * (0.5 * inv_dx1) + + +@wp.kernel +def _divergence_backward_2d_order4_kernel( + grad_output: wp.array2d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + grad_vector: wp.array3d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + grad_vector[0, i, j] = ( + grad_output[ip2, j] + - 8.0 * grad_output[ip1, j] + + 8.0 * grad_output[im1, j] + - grad_output[im2, j] + ) * (inv_dx0 / 12.0) + grad_vector[1, i, j] = ( + grad_output[i, jp2] + - 8.0 * grad_output[i, jp1] + + 8.0 * grad_output[i, jm1] + - grad_output[i, jm2] + ) * (inv_dx1 / 12.0) + + +@wp.kernel +def _divergence_backward_3d_order2_kernel( + grad_output: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + grad_vector: wp.array4d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + n2 = grad_output.shape[2] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + grad_vector[0, i, j, k] = (grad_output[im, j, k] - grad_output[ip, j, k]) * ( + 0.5 * inv_dx0 + ) + grad_vector[1, i, j, k] = (grad_output[i, jm, k] - grad_output[i, jp, k]) * ( + 0.5 * inv_dx1 + ) + grad_vector[2, i, j, k] = (grad_output[i, j, km] - grad_output[i, j, kp]) * ( + 0.5 * inv_dx2 + ) - @wp.kernel - def _divergence_backward_2d_order4_kernel( - grad_output: wp.array2d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - grad_vector: wp.array3d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = grad_output.shape[0] - n1 = grad_output.shape[1] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - grad_vector[0, i, j] = ( - grad_output[ip2, j] - - 8.0 * grad_output[ip1, j] - + 8.0 * grad_output[im1, j] - - grad_output[im2, j] - ) * (inv_dx0 / 12.0) - grad_vector[1, i, j] = ( - grad_output[i, jp2] - - 8.0 * grad_output[i, jp1] - + 8.0 * grad_output[i, jm1] - - grad_output[i, jm2] - ) * (inv_dx1 / 12.0) - - @wp.kernel - def _divergence_backward_3d_order2_kernel( - grad_output: wp.array3d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - inv_dx2: float, - grad_vector: wp.array4d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = grad_output.shape[0] - n1 = grad_output.shape[1] - n2 = grad_output.shape[2] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - km = _wrap_minus1(k, n2) - kp = _wrap_plus1(k, n2) - grad_vector[0, i, j, k] = (grad_output[im, j, k] - grad_output[ip, j, k]) * ( - 0.5 * inv_dx0 - ) - grad_vector[1, i, j, k] = (grad_output[i, jm, k] - grad_output[i, jp, k]) * ( - 0.5 * inv_dx1 - ) - grad_vector[2, i, j, k] = (grad_output[i, j, km] - grad_output[i, j, kp]) * ( - 0.5 * inv_dx2 - ) - @wp.kernel - def _divergence_backward_3d_order4_kernel( - grad_output: wp.array3d(dtype=wp.float32), - inv_dx0: float, - inv_dx1: float, - inv_dx2: float, - grad_vector: wp.array4d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = grad_output.shape[0] - n1 = grad_output.shape[1] - n2 = grad_output.shape[2] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - km1 = _wrap_minus1(k, n2) - kp1 = _wrap_plus1(k, n2) - km2 = _wrap_minus2(k, n2) - kp2 = _wrap_plus2(k, n2) - grad_vector[0, i, j, k] = ( - grad_output[ip2, j, k] - - 8.0 * grad_output[ip1, j, k] - + 8.0 * grad_output[im1, j, k] - - grad_output[im2, j, k] - ) * (inv_dx0 / 12.0) - grad_vector[1, i, j, k] = ( - grad_output[i, jp2, k] - - 8.0 * grad_output[i, jp1, k] - + 8.0 * grad_output[i, jm1, k] - - grad_output[i, jm2, k] - ) * (inv_dx1 / 12.0) - grad_vector[2, i, j, k] = ( - grad_output[i, j, kp2] - - 8.0 * grad_output[i, j, kp1] - + 8.0 * grad_output[i, j, km1] - - grad_output[i, j, km2] - ) * (inv_dx2 / 12.0) - - _FORWARD_KERNELS = { - (1, 2): _divergence_1d_order2_kernel, - (1, 4): _divergence_1d_order4_kernel, - (2, 2): _divergence_2d_order2_kernel, - (2, 4): _divergence_2d_order4_kernel, - (3, 2): _divergence_3d_order2_kernel, - (3, 4): _divergence_3d_order4_kernel, - } - _BACKWARD_KERNELS = { - (1, 2): _divergence_backward_1d_order2_kernel, - (1, 4): _divergence_backward_1d_order4_kernel, - (2, 2): _divergence_backward_2d_order2_kernel, - (2, 4): _divergence_backward_2d_order4_kernel, - (3, 2): _divergence_backward_3d_order2_kernel, - (3, 4): _divergence_backward_3d_order4_kernel, - } - - def _launch_divergence_forward( - *, - vector_field_fp32: torch.Tensor, - spacing_tuple: tuple[float, ...], - order: int, - output_fp32: torch.Tensor, - ) -> None: - wp_device, wp_stream = _warp_launch_context(vector_field_fp32) - _wp_launch( - kernel=_FORWARD_KERNELS[(vector_field_fp32.ndim - 1, order)], - dim=_launch_dim(output_fp32.shape), - inputs=[ - _to_wp_tensor(vector_field_fp32), - *[1.0 / float(dx) for dx in spacing_tuple], - _to_wp_tensor(output_fp32), - ], - device=wp_device, - stream=wp_stream, - ) +@wp.kernel +def _divergence_backward_3d_order4_kernel( + grad_output: wp.array3d(dtype=wp.float32), + inv_dx0: float, + inv_dx1: float, + inv_dx2: float, + grad_vector: wp.array4d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = grad_output.shape[0] + n1 = grad_output.shape[1] + n2 = grad_output.shape[2] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + grad_vector[0, i, j, k] = ( + grad_output[ip2, j, k] + - 8.0 * grad_output[ip1, j, k] + + 8.0 * grad_output[im1, j, k] + - grad_output[im2, j, k] + ) * (inv_dx0 / 12.0) + grad_vector[1, i, j, k] = ( + grad_output[i, jp2, k] + - 8.0 * grad_output[i, jp1, k] + + 8.0 * grad_output[i, jm1, k] + - grad_output[i, jm2, k] + ) * (inv_dx1 / 12.0) + grad_vector[2, i, j, k] = ( + grad_output[i, j, kp2] + - 8.0 * grad_output[i, j, kp1] + + 8.0 * grad_output[i, j, km1] + - grad_output[i, j, km2] + ) * (inv_dx2 / 12.0) + + +_FORWARD_KERNELS = { + (1, 2): _divergence_1d_order2_kernel, + (1, 4): _divergence_1d_order4_kernel, + (2, 2): _divergence_2d_order2_kernel, + (2, 4): _divergence_2d_order4_kernel, + (3, 2): _divergence_3d_order2_kernel, + (3, 4): _divergence_3d_order4_kernel, +} +_BACKWARD_KERNELS = { + (1, 2): _divergence_backward_1d_order2_kernel, + (1, 4): _divergence_backward_1d_order4_kernel, + (2, 2): _divergence_backward_2d_order2_kernel, + (2, 4): _divergence_backward_2d_order4_kernel, + (3, 2): _divergence_backward_3d_order2_kernel, + (3, 4): _divergence_backward_3d_order4_kernel, +} + + +def _launch_divergence_forward( + *, + vector_field_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + output_fp32: torch.Tensor, +) -> None: + wp_device, wp_stream = _warp_launch_context(vector_field_fp32) + _wp_launch( + kernel=_FORWARD_KERNELS[(vector_field_fp32.ndim - 1, order)], + dim=_launch_dim(output_fp32.shape), + inputs=[ + _to_wp_tensor(vector_field_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(output_fp32), + ], + device=wp_device, + stream=wp_stream, + ) - def _launch_divergence_backward( - *, - grad_output_fp32: torch.Tensor, - spacing_tuple: tuple[float, ...], - order: int, - grad_vector_fp32: torch.Tensor, - ) -> None: - wp_device, wp_stream = _warp_launch_context(grad_output_fp32) - _wp_launch( - kernel=_BACKWARD_KERNELS[(grad_output_fp32.ndim, order)], - dim=_launch_dim(grad_output_fp32.shape), - inputs=[ - _to_wp_tensor(grad_output_fp32), - *[1.0 / float(dx) for dx in spacing_tuple], - _to_wp_tensor(grad_vector_fp32), - ], - device=wp_device, - stream=wp_stream, - ) - @torch.library.custom_op( - "physicsnemo::uniform_grid_divergence_warp_impl", mutates_args=() +def _launch_divergence_backward( + *, + grad_output_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + grad_vector_fp32: torch.Tensor, +) -> None: + wp_device, wp_stream = _warp_launch_context(grad_output_fp32) + _wp_launch( + kernel=_BACKWARD_KERNELS[(grad_output_fp32.ndim, order)], + dim=_launch_dim(grad_output_fp32.shape), + inputs=[ + _to_wp_tensor(grad_output_fp32), + *[1.0 / float(dx) for dx in spacing_tuple], + _to_wp_tensor(grad_vector_fp32), + ], + device=wp_device, + stream=wp_stream, ) - def uniform_grid_divergence_impl( - vector_field: torch.Tensor, - spacing_meta: torch.Tensor, - order: int, - ) -> torch.Tensor: - grid_ndim = validate_vector_field(vector_field) - spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) - _validate_positive_spacing(spacing_tuple) - order = _validate_order(int(order)) - orig_dtype = vector_field.dtype - vector_field_fp32 = _to_fp32_contiguous(vector_field) - output_fp32 = torch.empty( - vector_field_fp32.shape[1:], - device=vector_field_fp32.device, - dtype=torch.float32, - ) - _launch_divergence_forward( - vector_field_fp32=vector_field_fp32, - spacing_tuple=spacing_tuple[:grid_ndim], - order=order, - output_fp32=output_fp32, - ) - return _restore_dtype(output_fp32, orig_dtype) - - @uniform_grid_divergence_impl.register_fake - def _uniform_grid_divergence_impl_fake( - vector_field: torch.Tensor, - spacing_meta: torch.Tensor, - order: int, - ) -> torch.Tensor: - _ = (spacing_meta, order) - return torch.empty( - vector_field.shape[1:], - device=vector_field.device, - dtype=vector_field.dtype, - ) - def setup_uniform_grid_divergence_context( - ctx: torch.autograd.function.FunctionCtx, - inputs: tuple, - output: torch.Tensor, - ) -> None: - vector_field, spacing_meta, order = inputs - _ = output - ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) - ctx.order = int(order) - ctx.orig_dtype = vector_field.dtype - - def backward_uniform_grid_divergence( - ctx: torch.autograd.function.FunctionCtx, - grad_output: torch.Tensor, - ) -> tuple[torch.Tensor | None, None, None]: - if grad_output is None or not ctx.needs_input_grad[0]: - return None, None, None - grad_output_fp32 = _to_fp32_contiguous(grad_output) - grad_vector_fp32 = torch.empty( - (grad_output_fp32.ndim, *grad_output_fp32.shape), - device=grad_output_fp32.device, - dtype=torch.float32, - ) - _launch_divergence_backward( - grad_output_fp32=grad_output_fp32, - spacing_tuple=ctx.spacing_tuple[: grad_output_fp32.ndim], - order=ctx.order, - grad_vector_fp32=grad_vector_fp32, - ) - return _restore_dtype(grad_vector_fp32, ctx.orig_dtype), None, None - uniform_grid_divergence_impl.register_autograd( - backward_uniform_grid_divergence, - setup_context=setup_uniform_grid_divergence_context, +@torch.library.custom_op( + "physicsnemo::uniform_grid_divergence_warp_impl", mutates_args=() +) +def uniform_grid_divergence_impl( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, +) -> torch.Tensor: + """Evaluate uniform-grid divergence with fused Warp kernels.""" + grid_ndim = validate_vector_field(vector_field) + spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(int(order)) + orig_dtype = vector_field.dtype + vector_field_fp32 = _to_fp32_contiguous(vector_field) + output_fp32 = torch.empty( + vector_field_fp32.shape[1:], + device=vector_field_fp32.device, + dtype=torch.float32, + ) + _launch_divergence_forward( + vector_field_fp32=vector_field_fp32, + spacing_tuple=spacing_tuple[:grid_ndim], + order=order, + output_fp32=output_fp32, ) + return _restore_dtype(output_fp32, orig_dtype) + + +@uniform_grid_divergence_impl.register_fake +def _uniform_grid_divergence_impl_fake( + vector_field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, +) -> torch.Tensor: + _ = (spacing_meta, order) + return torch.empty( + vector_field.shape[1:], + device=vector_field.device, + dtype=vector_field.dtype, + ) + + +def setup_uniform_grid_divergence_context( + ctx: torch.autograd.function.FunctionCtx, + inputs: tuple, + output: torch.Tensor, +) -> None: + """Save uniform-grid divergence metadata for the backward pass.""" + vector_field, spacing_meta, order = inputs + _ = output + ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + ctx.order = int(order) + ctx.orig_dtype = vector_field.dtype + + +def backward_uniform_grid_divergence( + ctx: torch.autograd.function.FunctionCtx, + grad_output: torch.Tensor, +) -> tuple[torch.Tensor | None, None, None]: + if grad_output is None or not ctx.needs_input_grad[0]: + return None, None, None + grad_output_fp32 = _to_fp32_contiguous(grad_output) + grad_vector_fp32 = torch.empty( + (grad_output_fp32.ndim, *grad_output_fp32.shape), + device=grad_output_fp32.device, + dtype=torch.float32, + ) + _launch_divergence_backward( + grad_output_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple[: grad_output_fp32.ndim], + order=ctx.order, + grad_vector_fp32=grad_vector_fp32, + ) + return _restore_dtype(grad_vector_fp32, ctx.orig_dtype), None, None + + +uniform_grid_divergence_impl.register_autograd( + backward_uniform_grid_divergence, + setup_context=setup_uniform_grid_divergence_context, +) def uniform_grid_divergence_warp( @@ -537,13 +525,7 @@ def uniform_grid_divergence_warp( order: int = 2, ) -> torch.Tensor: """Compute periodic uniform-grid divergence with a fused Warp custom op.""" - if not _HAS_WARP: - raise ImportError( - "uniform_grid_divergence requires the Warp backend; install warp>=0.6.0" - ) from _WARP_IMPORT_ERROR - grid_ndim = validate_vector_field(vector_field) + grid_ndim = vector_field.ndim - 1 spacing_tuple = _normalize_spacing(spacing, grid_ndim) - _validate_positive_spacing(spacing_tuple) - order = _validate_order(order) spacing_meta = torch.tensor(spacing_tuple, dtype=torch.float32, device="cpu") return uniform_grid_divergence_impl(vector_field, spacing_meta, int(order)) diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_gradient/_warp_impl/utils.py b/physicsnemo/nn/functional/derivatives/uniform_grid_gradient/_warp_impl/utils.py index b92dc2ebc4..bd814b8550 100644 --- a/physicsnemo/nn/functional/derivatives/uniform_grid_gradient/_warp_impl/utils.py +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_gradient/_warp_impl/utils.py @@ -138,6 +138,30 @@ def _launch_dim(shape: torch.Size) -> int | tuple[int, ...]: return shape[0] if len(shape) == 1 else tuple(shape) +@wp.func +def _wrap_plus1(i: int, n: int) -> int: + """Wrap a grid index one cell forward for periodic stencils.""" + return (i + 1) % n + + +@wp.func +def _wrap_minus1(i: int, n: int) -> int: + """Wrap a grid index one cell backward for periodic stencils.""" + return (i + n - 1) % n + + +@wp.func +def _wrap_plus2(i: int, n: int) -> int: + """Wrap a grid index two cells forward for periodic stencils.""" + return (i + 2) % n + + +@wp.func +def _wrap_minus2(i: int, n: int) -> int: + """Wrap a grid index two cells backward for periodic stencils.""" + return (i + n - 2) % n + + def _inverse_spacings( spacing_tuple: tuple[float, ...], *, diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py index b5693d9902..a86acc45f1 100644 --- a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_torch_impl.py @@ -20,9 +20,62 @@ import torch -from ..uniform_grid_gradient._torch_impl import uniform_grid_gradient_torch_multi from .utils import validate_scalar_field +_SUPPORTED_ORDERS = (2, 4) + + +def _normalize_spacing( + spacing: float | Sequence[float], ndim: int +) -> tuple[float, ...]: + if isinstance(spacing, (float, int)): + return tuple(float(spacing) for _ in range(ndim)) + spacing_tuple = tuple(float(x) for x in spacing) + if len(spacing_tuple) != ndim: + raise ValueError( + f"spacing must have {ndim} entries for a {ndim}D field, got {len(spacing_tuple)}" + ) + return spacing_tuple + + +def _validate_order(order: int) -> int: + if not isinstance(order, int): + raise TypeError(f"order must be an integer, got {type(order)}") + if order not in _SUPPORTED_ORDERS: + raise ValueError( + "uniform_grid_laplacian supports central orders " + f"{list(_SUPPORTED_ORDERS)}, got order={order}" + ) + return order + + +def _second_derivative_order2( + field: torch.Tensor, axis: int, dx: float +) -> torch.Tensor: + return ( + torch.roll(field, shifts=-1, dims=axis) + - 2.0 * field + + torch.roll(field, shifts=1, dims=axis) + ) / (dx * dx) + + +def _second_derivative_order4( + field: torch.Tensor, axis: int, dx: float +) -> torch.Tensor: + return ( + -torch.roll(field, shifts=-2, dims=axis) + + 16.0 * torch.roll(field, shifts=-1, dims=axis) + - 30.0 * field + + 16.0 * torch.roll(field, shifts=1, dims=axis) + - torch.roll(field, shifts=2, dims=axis) + ) / (12.0 * dx * dx) + + +_DERIVATIVE_DISPATCH = { + 2: _second_derivative_order2, + 4: _second_derivative_order4, +} + def uniform_grid_laplacian_torch( field: torch.Tensor, @@ -31,11 +84,13 @@ def uniform_grid_laplacian_torch( ) -> torch.Tensor: """Compute periodic uniform-grid Laplacian with PyTorch tensor ops.""" validate_scalar_field(field) - second_derivatives = uniform_grid_gradient_torch_multi( - field=field, - spacing=spacing, - order=order, - derivative_orders=2, - include_mixed=False, - ) - return second_derivatives.sum(dim=0) + spacing_tuple = _normalize_spacing(spacing, field.ndim) + for dx in spacing_tuple: + if dx <= 0.0: + raise ValueError("all spacing entries must be strictly positive") + derivative_fn = _DERIVATIVE_DISPATCH[_validate_order(order)] + + laplacian = torch.zeros_like(field) + for axis, dx in enumerate(spacing_tuple): + laplacian = laplacian + derivative_fn(field, axis, dx) + return laplacian diff --git a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py index 6e8ee23134..215e8ba524 100644 --- a/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py +++ b/physicsnemo/nn/functional/derivatives/uniform_grid_laplacian/_warp_impl.py @@ -19,26 +19,21 @@ from collections.abc import Sequence import torch - +import warp as wp + +from ..uniform_grid_gradient._warp_impl.utils import ( + _launch_dim, + _normalize_spacing, + _to_wp_tensor, + _warp_launch_context, + _wp_launch, + _wrap_minus1, + _wrap_minus2, + _wrap_plus1, + _wrap_plus2, +) from .utils import validate_scalar_field -try: - import warp as wp - - from ..uniform_grid_gradient._warp_impl.utils import ( - _launch_dim, - _normalize_spacing, - _to_wp_tensor, - _warp_launch_context, - _wp_launch, - ) - - _HAS_WARP = True -except ImportError as import_error: - _HAS_WARP = False - _WARP_IMPORT_ERROR = import_error - - _SUPPORTED_ORDERS = (2, 4) @@ -71,271 +66,267 @@ def _restore_dtype(tensor: torch.Tensor, target_dtype: torch.dtype) -> torch.Ten return tensor.to(dtype=target_dtype) -if _HAS_WARP: - - @wp.func - def _wrap_plus1(i: int, n: int) -> int: - return (i + 1) % n - - @wp.func - def _wrap_minus1(i: int, n: int) -> int: - return (i + n - 1) % n - - @wp.func - def _wrap_plus2(i: int, n: int) -> int: - return (i + 2) % n - - @wp.func - def _wrap_minus2(i: int, n: int) -> int: - return (i + n - 2) % n - - @wp.kernel - def _laplacian_1d_order2_kernel( - field: wp.array(dtype=wp.float32), - inv_dx0_sq: float, - output: wp.array(dtype=wp.float32), - ): - i = wp.tid() - n0 = field.shape[0] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - output[i] = (field[ip] - 2.0 * field[i] + field[im]) * inv_dx0_sq - - @wp.kernel - def _laplacian_1d_order4_kernel( - field: wp.array(dtype=wp.float32), - inv_dx0_sq: float, - output: wp.array(dtype=wp.float32), - ): - i = wp.tid() - n0 = field.shape[0] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - output[i] = ( - -field[ip2] - + 16.0 * field[ip1] - - 30.0 * field[i] - + 16.0 * field[im1] - - field[im2] - ) * (inv_dx0_sq / 12.0) - - @wp.kernel - def _laplacian_2d_order2_kernel( - field: wp.array2d(dtype=wp.float32), - inv_dx0_sq: float, - inv_dx1_sq: float, - output: wp.array2d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = field.shape[0] - n1 = field.shape[1] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - d2x = (field[ip, j] - 2.0 * field[i, j] + field[im, j]) * inv_dx0_sq - d2y = (field[i, jp] - 2.0 * field[i, j] + field[i, jm]) * inv_dx1_sq - output[i, j] = d2x + d2y - - @wp.kernel - def _laplacian_2d_order4_kernel( - field: wp.array2d(dtype=wp.float32), - inv_dx0_sq: float, - inv_dx1_sq: float, - output: wp.array2d(dtype=wp.float32), - ): - i, j = wp.tid() - n0 = field.shape[0] - n1 = field.shape[1] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - d2x = ( - -field[ip2, j] - + 16.0 * field[ip1, j] - - 30.0 * field[i, j] - + 16.0 * field[im1, j] - - field[im2, j] - ) * (inv_dx0_sq / 12.0) - d2y = ( - -field[i, jp2] - + 16.0 * field[i, jp1] - - 30.0 * field[i, j] - + 16.0 * field[i, jm1] - - field[i, jm2] - ) * (inv_dx1_sq / 12.0) - output[i, j] = d2x + d2y - - @wp.kernel - def _laplacian_3d_order2_kernel( - field: wp.array3d(dtype=wp.float32), - inv_dx0_sq: float, - inv_dx1_sq: float, - inv_dx2_sq: float, - output: wp.array3d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = field.shape[0] - n1 = field.shape[1] - n2 = field.shape[2] - im = _wrap_minus1(i, n0) - ip = _wrap_plus1(i, n0) - jm = _wrap_minus1(j, n1) - jp = _wrap_plus1(j, n1) - km = _wrap_minus1(k, n2) - kp = _wrap_plus1(k, n2) - d2x = (field[ip, j, k] - 2.0 * field[i, j, k] + field[im, j, k]) * inv_dx0_sq - d2y = (field[i, jp, k] - 2.0 * field[i, j, k] + field[i, jm, k]) * inv_dx1_sq - d2z = (field[i, j, kp] - 2.0 * field[i, j, k] + field[i, j, km]) * inv_dx2_sq - output[i, j, k] = d2x + d2y + d2z - - @wp.kernel - def _laplacian_3d_order4_kernel( - field: wp.array3d(dtype=wp.float32), - inv_dx0_sq: float, - inv_dx1_sq: float, - inv_dx2_sq: float, - output: wp.array3d(dtype=wp.float32), - ): - i, j, k = wp.tid() - n0 = field.shape[0] - n1 = field.shape[1] - n2 = field.shape[2] - im1 = _wrap_minus1(i, n0) - ip1 = _wrap_plus1(i, n0) - im2 = _wrap_minus2(i, n0) - ip2 = _wrap_plus2(i, n0) - jm1 = _wrap_minus1(j, n1) - jp1 = _wrap_plus1(j, n1) - jm2 = _wrap_minus2(j, n1) - jp2 = _wrap_plus2(j, n1) - km1 = _wrap_minus1(k, n2) - kp1 = _wrap_plus1(k, n2) - km2 = _wrap_minus2(k, n2) - kp2 = _wrap_plus2(k, n2) - d2x = ( - -field[ip2, j, k] - + 16.0 * field[ip1, j, k] - - 30.0 * field[i, j, k] - + 16.0 * field[im1, j, k] - - field[im2, j, k] - ) * (inv_dx0_sq / 12.0) - d2y = ( - -field[i, jp2, k] - + 16.0 * field[i, jp1, k] - - 30.0 * field[i, j, k] - + 16.0 * field[i, jm1, k] - - field[i, jm2, k] - ) * (inv_dx1_sq / 12.0) - d2z = ( - -field[i, j, kp2] - + 16.0 * field[i, j, kp1] - - 30.0 * field[i, j, k] - + 16.0 * field[i, j, km1] - - field[i, j, km2] - ) * (inv_dx2_sq / 12.0) - output[i, j, k] = d2x + d2y + d2z - - _LAPLACIAN_KERNELS = { - (1, 2): _laplacian_1d_order2_kernel, - (1, 4): _laplacian_1d_order4_kernel, - (2, 2): _laplacian_2d_order2_kernel, - (2, 4): _laplacian_2d_order4_kernel, - (3, 2): _laplacian_3d_order2_kernel, - (3, 4): _laplacian_3d_order4_kernel, - } - - def _launch_laplacian( - *, - field_fp32: torch.Tensor, - spacing_tuple: tuple[float, ...], - order: int, - output_fp32: torch.Tensor, - ) -> None: - inv_sq = [1.0 / float(dx * dx) for dx in spacing_tuple] - wp_device, wp_stream = _warp_launch_context(field_fp32) - _wp_launch( - kernel=_LAPLACIAN_KERNELS[(field_fp32.ndim, order)], - dim=_launch_dim(field_fp32.shape), - inputs=[ - _to_wp_tensor(field_fp32), - *inv_sq, - _to_wp_tensor(output_fp32), - ], - device=wp_device, - stream=wp_stream, - ) +@wp.kernel +def _laplacian_1d_order2_kernel( + field: wp.array(dtype=wp.float32), + inv_dx0_sq: float, + output: wp.array(dtype=wp.float32), +): + i = wp.tid() + n0 = field.shape[0] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + output[i] = (field[ip] - 2.0 * field[i] + field[im]) * inv_dx0_sq + + +@wp.kernel +def _laplacian_1d_order4_kernel( + field: wp.array(dtype=wp.float32), + inv_dx0_sq: float, + output: wp.array(dtype=wp.float32), +): + i = wp.tid() + n0 = field.shape[0] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + output[i] = ( + -field[ip2] + + 16.0 * field[ip1] + - 30.0 * field[i] + + 16.0 * field[im1] + - field[im2] + ) * (inv_dx0_sq / 12.0) + + +@wp.kernel +def _laplacian_2d_order2_kernel( + field: wp.array2d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + output: wp.array2d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + d2x = (field[ip, j] - 2.0 * field[i, j] + field[im, j]) * inv_dx0_sq + d2y = (field[i, jp] - 2.0 * field[i, j] + field[i, jm]) * inv_dx1_sq + output[i, j] = d2x + d2y + + +@wp.kernel +def _laplacian_2d_order4_kernel( + field: wp.array2d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + output: wp.array2d(dtype=wp.float32), +): + i, j = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + d2x = ( + -field[ip2, j] + + 16.0 * field[ip1, j] + - 30.0 * field[i, j] + + 16.0 * field[im1, j] + - field[im2, j] + ) * (inv_dx0_sq / 12.0) + d2y = ( + -field[i, jp2] + + 16.0 * field[i, jp1] + - 30.0 * field[i, j] + + 16.0 * field[i, jm1] + - field[i, jm2] + ) * (inv_dx1_sq / 12.0) + output[i, j] = d2x + d2y + + +@wp.kernel +def _laplacian_3d_order2_kernel( + field: wp.array3d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + inv_dx2_sq: float, + output: wp.array3d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + n2 = field.shape[2] + im = _wrap_minus1(i, n0) + ip = _wrap_plus1(i, n0) + jm = _wrap_minus1(j, n1) + jp = _wrap_plus1(j, n1) + km = _wrap_minus1(k, n2) + kp = _wrap_plus1(k, n2) + d2x = (field[ip, j, k] - 2.0 * field[i, j, k] + field[im, j, k]) * inv_dx0_sq + d2y = (field[i, jp, k] - 2.0 * field[i, j, k] + field[i, jm, k]) * inv_dx1_sq + d2z = (field[i, j, kp] - 2.0 * field[i, j, k] + field[i, j, km]) * inv_dx2_sq + output[i, j, k] = d2x + d2y + d2z + + +@wp.kernel +def _laplacian_3d_order4_kernel( + field: wp.array3d(dtype=wp.float32), + inv_dx0_sq: float, + inv_dx1_sq: float, + inv_dx2_sq: float, + output: wp.array3d(dtype=wp.float32), +): + i, j, k = wp.tid() + n0 = field.shape[0] + n1 = field.shape[1] + n2 = field.shape[2] + im1 = _wrap_minus1(i, n0) + ip1 = _wrap_plus1(i, n0) + im2 = _wrap_minus2(i, n0) + ip2 = _wrap_plus2(i, n0) + jm1 = _wrap_minus1(j, n1) + jp1 = _wrap_plus1(j, n1) + jm2 = _wrap_minus2(j, n1) + jp2 = _wrap_plus2(j, n1) + km1 = _wrap_minus1(k, n2) + kp1 = _wrap_plus1(k, n2) + km2 = _wrap_minus2(k, n2) + kp2 = _wrap_plus2(k, n2) + d2x = ( + -field[ip2, j, k] + + 16.0 * field[ip1, j, k] + - 30.0 * field[i, j, k] + + 16.0 * field[im1, j, k] + - field[im2, j, k] + ) * (inv_dx0_sq / 12.0) + d2y = ( + -field[i, jp2, k] + + 16.0 * field[i, jp1, k] + - 30.0 * field[i, j, k] + + 16.0 * field[i, jm1, k] + - field[i, jm2, k] + ) * (inv_dx1_sq / 12.0) + d2z = ( + -field[i, j, kp2] + + 16.0 * field[i, j, kp1] + - 30.0 * field[i, j, k] + + 16.0 * field[i, j, km1] + - field[i, j, km2] + ) * (inv_dx2_sq / 12.0) + output[i, j, k] = d2x + d2y + d2z + + +_LAPLACIAN_KERNELS = { + (1, 2): _laplacian_1d_order2_kernel, + (1, 4): _laplacian_1d_order4_kernel, + (2, 2): _laplacian_2d_order2_kernel, + (2, 4): _laplacian_2d_order4_kernel, + (3, 2): _laplacian_3d_order2_kernel, + (3, 4): _laplacian_3d_order4_kernel, +} + + +def _launch_laplacian( + *, + field_fp32: torch.Tensor, + spacing_tuple: tuple[float, ...], + order: int, + output_fp32: torch.Tensor, +) -> None: + inv_sq = [1.0 / float(dx * dx) for dx in spacing_tuple] + wp_device, wp_stream = _warp_launch_context(field_fp32) + _wp_launch( + kernel=_LAPLACIAN_KERNELS[(field_fp32.ndim, order)], + dim=_launch_dim(field_fp32.shape), + inputs=[ + _to_wp_tensor(field_fp32), + *inv_sq, + _to_wp_tensor(output_fp32), + ], + device=wp_device, + stream=wp_stream, + ) + - @torch.library.custom_op( - "physicsnemo::uniform_grid_laplacian_warp_impl", mutates_args=() +@torch.library.custom_op( + "physicsnemo::uniform_grid_laplacian_warp_impl", mutates_args=() +) +def uniform_grid_laplacian_impl( + field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, +) -> torch.Tensor: + """Evaluate uniform-grid Laplacian with fused Warp kernels.""" + validate_scalar_field(field) + spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + _validate_positive_spacing(spacing_tuple) + order = _validate_order(int(order)) + orig_dtype = field.dtype + field_fp32 = _to_fp32_contiguous(field) + output_fp32 = torch.empty_like(field_fp32) + _launch_laplacian( + field_fp32=field_fp32, + spacing_tuple=spacing_tuple, + order=order, + output_fp32=output_fp32, ) - def uniform_grid_laplacian_impl( - field: torch.Tensor, - spacing_meta: torch.Tensor, - order: int, - ) -> torch.Tensor: - validate_scalar_field(field) - spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) - _validate_positive_spacing(spacing_tuple) - order = _validate_order(int(order)) - orig_dtype = field.dtype - field_fp32 = _to_fp32_contiguous(field) - output_fp32 = torch.empty_like(field_fp32) - _launch_laplacian( - field_fp32=field_fp32, - spacing_tuple=spacing_tuple, - order=order, - output_fp32=output_fp32, - ) - return _restore_dtype(output_fp32, orig_dtype) - - @uniform_grid_laplacian_impl.register_fake - def _uniform_grid_laplacian_impl_fake( - field: torch.Tensor, - spacing_meta: torch.Tensor, - order: int, - ) -> torch.Tensor: - _ = (spacing_meta, order) - return torch.empty_like(field) - - def setup_uniform_grid_laplacian_context( - ctx: torch.autograd.function.FunctionCtx, - inputs: tuple, - output: torch.Tensor, - ) -> None: - field, spacing_meta, order = inputs - _ = output - ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) - ctx.order = int(order) - ctx.orig_dtype = field.dtype - - def backward_uniform_grid_laplacian( - ctx: torch.autograd.function.FunctionCtx, - grad_output: torch.Tensor, - ) -> tuple[torch.Tensor | None, None, None]: - if grad_output is None or not ctx.needs_input_grad[0]: - return None, None, None - grad_output_fp32 = _to_fp32_contiguous(grad_output) - grad_field = torch.empty_like(grad_output_fp32) - _launch_laplacian( - field_fp32=grad_output_fp32, - spacing_tuple=ctx.spacing_tuple, - order=ctx.order, - output_fp32=grad_field, - ) - return _restore_dtype(grad_field, ctx.orig_dtype), None, None + return _restore_dtype(output_fp32, orig_dtype) + - uniform_grid_laplacian_impl.register_autograd( - backward_uniform_grid_laplacian, - setup_context=setup_uniform_grid_laplacian_context, +@uniform_grid_laplacian_impl.register_fake +def _uniform_grid_laplacian_impl_fake( + field: torch.Tensor, + spacing_meta: torch.Tensor, + order: int, +) -> torch.Tensor: + _ = (spacing_meta, order) + return torch.empty_like(field) + + +def setup_uniform_grid_laplacian_context( + ctx: torch.autograd.function.FunctionCtx, + inputs: tuple, + output: torch.Tensor, +) -> None: + """Save uniform-grid Laplacian metadata for the backward pass.""" + field, spacing_meta, order = inputs + _ = output + ctx.spacing_tuple = tuple(float(v) for v in spacing_meta.tolist()) + ctx.order = int(order) + ctx.orig_dtype = field.dtype + + +def backward_uniform_grid_laplacian( + ctx: torch.autograd.function.FunctionCtx, + grad_output: torch.Tensor, +) -> tuple[torch.Tensor | None, None, None]: + if grad_output is None or not ctx.needs_input_grad[0]: + return None, None, None + grad_output_fp32 = _to_fp32_contiguous(grad_output) + grad_field = torch.empty_like(grad_output_fp32) + _launch_laplacian( + field_fp32=grad_output_fp32, + spacing_tuple=ctx.spacing_tuple, + order=ctx.order, + output_fp32=grad_field, ) + return _restore_dtype(grad_field, ctx.orig_dtype), None, None + + +uniform_grid_laplacian_impl.register_autograd( + backward_uniform_grid_laplacian, + setup_context=setup_uniform_grid_laplacian_context, +) def uniform_grid_laplacian_warp( @@ -344,13 +335,6 @@ def uniform_grid_laplacian_warp( order: int = 2, ) -> torch.Tensor: """Compute periodic uniform-grid Laplacian with a fused Warp custom op.""" - if not _HAS_WARP: - raise ImportError( - "uniform_grid_laplacian requires the Warp backend; install warp>=0.6.0" - ) from _WARP_IMPORT_ERROR - validate_scalar_field(field) spacing_tuple = _normalize_spacing(spacing, field.ndim) - _validate_positive_spacing(spacing_tuple) - order = _validate_order(order) spacing_meta = torch.tensor(spacing_tuple, dtype=torch.float32, device="cpu") return uniform_grid_laplacian_impl(field, spacing_meta, int(order))