Skip to content

Update transolver to comply with model standards#1316

Merged
coreyjadams merged 15 commits intoNVIDIA:mainfrom
coreyjadams:transolver-v2.0
Feb 5, 2026
Merged

Update transolver to comply with model standards#1316
coreyjadams merged 15 commits intoNVIDIA:mainfrom
coreyjadams:transolver-v2.0

Conversation

@coreyjadams
Copy link
Copy Markdown
Collaborator

PhysicsNeMo Pull Request

Description

Checklist

Dependencies

Review Process

All PRs are reviewed by the PhysicsNeMo team before merging.

Depending on which files are changed, GitHub may automatically assign a maintainer for review.

We are also testing AI-based code review tools (e.g., Greptile), which may add automated comments with a confidence score.
This score reflects the AI’s assessment of merge readiness and is not a qualitative judgment of your work, nor is
it an indication that the PR will be accepted / rejected.

AI-generated feedback should be reviewed critically for usefulness.
You are not required to respond to every AI comment, but they are intended to help both authors and reviewers.
Please react to Greptile comments with 👍 or 👎 to provide feedback on their accuracy.

@coreyjadams coreyjadams requested a review from ktangsali as a code owner January 8, 2026 19:46
Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR updates the Transolver model to comply with PhysicsNeMo model implementation standards by adding comprehensive documentation, type annotations, and validation logic.

Major changes:

  • Added complete NumPy-style docstrings with proper sections (Parameters, Forward, Outputs, Examples) across all model classes and functions
  • Added jaxtyping type annotations for all tensor arguments following MOD-006
  • Added input validation with torch.compiler.is_compiling() guards in main forward methods following MOD-005
  • Added high-level comments explaining complex tensor operations following MOD-003k
  • Updated pyproject.toml to ignore F722 (allows jaxtyping syntax)
  • Changed docstring prefixes from """ to r""" for LaTeX compatibility following MOD-003b

Critical issues found:

  • MLP and Transolver_block classes inherit from nn.Module instead of physicsnemo.Module, violating MOD-001. These classes should be updated to inherit from physicsnemo.Module to ensure access to serialization, versioning, and registry features.
  • Missing input validation in MLP.forward() and Transolver_block.forward() methods (MOD-005 requirement)

Positive aspects:

  • Excellent documentation quality with clear examples and cross-references
  • Proper use of LaTeX math notation for tensor shapes
  • Good high-level comments in complex tensor operations
  • Consistent formatting and structure across all files

Important Files Changed

File Analysis

Filename Score Overview
physicsnemo/models/transolver/transolver.py 3/5 Added comprehensive docstrings with jaxtyping annotations, input validation, and high-level comments. Found critical issue: MLP and Transolver_block inherit from nn.Module instead of physicsnemo.Module (violates MOD-001).
physicsnemo/models/transolver/Physics_Attention.py 4/5 Added comprehensive docstrings with proper sections, jaxtyping annotations, and input validation. All classes correctly inherit from nn.Module (appropriate for reusable layers per MOD-000a).
physicsnemo/models/transolver/Embedding.py 4/5 Added complete docstrings with proper NumPy-style sections, jaxtyping annotations, LaTeX math notation for tensor shapes, and Examples sections. All classes correctly inherit from nn.Module.
pyproject.toml 5/5 Added F722 to ruff ignore list (allows jaxtyping syntax) and removed trailing whitespace. Changes are appropriate for supporting jaxtyping annotations.

Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/Embedding.py Outdated
Comment thread physicsnemo/models/transolver/Embedding.py Outdated
Copy link
Copy Markdown
Collaborator

@CharlelieLrt CharlelieLrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly looks good, just a few minor things about formatting and such.
One bigger question though:

  • For Physics_Attention.py, could it be moved to physicsnemo/nn, ither with other attention layers in physicsnemo/nn/attention_layers.py, or just in its own module?
  • Same question for Embeddings.py

Comment thread physicsnemo/models/transolver/__init__.py Outdated
Comment thread physicsnemo/models/transolver/Embedding.py Outdated
Comment thread physicsnemo/models/transolver/Embedding.py Outdated
Comment thread physicsnemo/models/transolver/Embedding.py Outdated
Comment thread physicsnemo/models/transolver/Embedding.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/transolver.py Outdated
Comment thread physicsnemo/models/transolver/Embedding.py Outdated
Comment thread physicsnemo/nn/module/gumbel_softmax.py
Comment thread physicsnemo/nn/module/gumbel_softmax.py
Copy link
Copy Markdown
Collaborator

@CharlelieLrt CharlelieLrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, really nice you could reuse some of the existing layers!

@coreyjadams
Copy link
Copy Markdown
Collaborator Author

/blossom-ci

@coreyjadams coreyjadams enabled auto-merge February 5, 2026 02:18
@coreyjadams
Copy link
Copy Markdown
Collaborator Author

/blossom-ci

@coreyjadams
Copy link
Copy Markdown
Collaborator Author

/blossom-ci

1 similar comment
@coreyjadams
Copy link
Copy Markdown
Collaborator Author

/blossom-ci

@coreyjadams
Copy link
Copy Markdown
Collaborator Author

/blossom-ci

@coreyjadams
Copy link
Copy Markdown
Collaborator Author

/blossom-ci

1 similar comment
@coreyjadams
Copy link
Copy Markdown
Collaborator Author

/blossom-ci

@coreyjadams coreyjadams added this pull request to the merge queue Feb 5, 2026
Merged via the queue into NVIDIA:main with commit 5455011 Feb 5, 2026
4 checks passed
coreyjadams added a commit to coreyjadams/physicsnemo that referenced this pull request Feb 6, 2026
* Update transolver to comply with model standards

* Updating transolver for more compliance issues.

* Finish most transolver updates.

* Use ... for abstract method

* Updates for docstrings, typehints consistency.

* Address checkpoint restore issues from transolver.  Update geotransolver for latest  changes

* Update license headers

* Fix one more license check

* fix mlp tests
@coreyjadams coreyjadams deleted the transolver-v2.0 branch February 9, 2026 21:33
nbren12 pushed a commit to nbren12/modulus that referenced this pull request Mar 24, 2026
* Update transolver to comply with model standards

* Updating transolver for more compliance issues.

* Finish most transolver updates.

* Use ... for abstract method

* Updates for docstrings, typehints consistency.

* Address checkpoint restore issues from transolver.  Update geotransolver for latest  changes

* Update license headers

* Fix one more license check

* fix mlp tests
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.

3 participants