Skip to content

[codex] Add mesh vector calculus functionals#1735

Draft
loliverhennigh wants to merge 3 commits into
NVIDIA:mainfrom
loliverhennigh:mesh-vector-calculus-functionals
Draft

[codex] Add mesh vector calculus functionals#1735
loliverhennigh wants to merge 3 commits into
NVIDIA:mainfrom
loliverhennigh:mesh-vector-calculus-functionals

Conversation

@loliverhennigh

Copy link
Copy Markdown
Collaborator

Summary

  • add FunctionSpec-backed mesh LSQ divergence, curl, and double-LSQ Laplacian functionals
  • add FunctionSpec-backed cotangent/DEC Laplacian and divergence functionals with Torch references and Warp custom kernels
  • wire mesh calculus wrappers and Mesh.divergence/Mesh.curl/Mesh.laplacian through the new functionals while keeping Torch as the mesh-level default for backwards-compatible precision
  • add focused functional parity tests and mesh API wiring tests

Validation

  • uv run --frozen ruff check physicsnemo/nn/functional/derivatives/_mesh_lsq_operator_utils.py physicsnemo/nn/functional/derivatives/_mesh_cotan_operator_utils.py physicsnemo/nn/functional/derivatives/mesh_lsq_divergence physicsnemo/nn/functional/derivatives/mesh_lsq_curl physicsnemo/nn/functional/derivatives/mesh_lsq_laplacian physicsnemo/nn/functional/derivatives/mesh_cotan_laplacian physicsnemo/nn/functional/derivatives/mesh_cotan_divergence physicsnemo/mesh/calculus/divergence.py physicsnemo/mesh/calculus/curl.py physicsnemo/mesh/calculus/laplacian.py physicsnemo/mesh/mesh.py physicsnemo/nn/functional/init.py physicsnemo/nn/functional/derivatives/init.py test/nn/functional/derivatives/test_mesh_vector_calculus_functionals.py test/mesh/calculus/test_mesh_vector_functional_wiring.py
  • uv run --frozen ruff format --check physicsnemo/nn/functional/derivatives/_mesh_lsq_operator_utils.py physicsnemo/nn/functional/derivatives/_mesh_cotan_operator_utils.py physicsnemo/nn/functional/derivatives/mesh_lsq_divergence physicsnemo/nn/functional/derivatives/mesh_lsq_curl physicsnemo/nn/functional/derivatives/mesh_lsq_laplacian physicsnemo/nn/functional/derivatives/mesh_cotan_laplacian physicsnemo/nn/functional/derivatives/mesh_cotan_divergence physicsnemo/mesh/calculus/divergence.py physicsnemo/mesh/calculus/curl.py physicsnemo/mesh/calculus/laplacian.py physicsnemo/mesh/mesh.py physicsnemo/nn/functional/init.py physicsnemo/nn/functional/derivatives/init.py test/nn/functional/derivatives/test_mesh_vector_calculus_functionals.py test/mesh/calculus/test_mesh_vector_functional_wiring.py
  • uv run --frozen pytest -q test/nn/functional/derivatives
  • uv run --frozen pytest -q test/mesh/calculus

Notes

  • Local environment did not expose CUDA, so GPU-specific validation still needs to run in CI/GPU environment.

@copy-pr-bot

copy-pr-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@loliverhennigh loliverhennigh force-pushed the mesh-vector-calculus-functionals branch from e301081 to f820150 Compare June 25, 2026 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant