PhysicsNeMo General Release v1.3.0
Added
- Added mixture_of_experts for weather example in physicsnemo.examples.weather.
⚠️ Warning: - It uses experimental DiT model subject to future API changes.
Added some modifications to DiT architecture in physicsnemo.experimental.models.dit.
Added learnable option to PositionalEmbedding in physicsnemo.models.diffusion.layers. - Added lead-time aware training support to the StormCast example.
- Add a device aware kNN method to physicsnemo.utils.neighbors. Works with CPU or GPU
by dispatching to the proper optimized library, and torch.compile compatible. - Added additional testing of the DoMINO datapipe.
- Examples: added a new example for full-waveform inversion using diffusion
models. Accessible inexamples/geophysics/diffusion_fwi. - Domain Parallelism: Domain Parallelism is now available for kNN, radius_search,
and torch.nn.functional.pad. - Unified recipe for crash modeling, supporting Transolver and MeshGraphNet,
and three transient schemes. - Added a check to
stochastic_samplerthat helps handle theEDMPrecondmodel,
which has a specific.forward()signature - Added abstract interfaces for constructing active learning workflows, contained
under thephysicsnemo.active_learningnamespace. A preliminary example of how
to compose and define an active learning workflow is provided inexamples/active_learning.
Themoonsexample provides a minimal (pedagogical) composition that is meant to
illustrate how to define the necessary parts of the workflow.
Changed
- Migrated Stokes MGN example to PyTorch Geometric.
- Migrated Lennard Jones example to PyTorch Geometric.
- Migrated physicsnemo.utils.sdf.signed_distance_field to a static return,
torch-only interface. It also now works on distributed meshes and input fields. - Refactored DiTBlock to be more modular
- Added NATTEN 2D neighborhood attention backend for DiTBlock
- Migrated blood flow example to PyTorch Geometric.
- Refactored DoMINO model code and examples for performance optimizations and improved readability.
- Migrated HydroGraphNet example to PyTorch Geometric.
- Support for saving and loading nested
physicsnemo.Modules. It is now
possible to create nested modules withm = Module(submodule, ...), and save
and load them withModule.saveandModule.from_checkpoint.
⚠️ Warning: - The modules have to bephysicsnemo.Modules, and not
torch.nn.Modules. - Support passing custom tokenizer, detokenizer, and attention
Modules in
experimental DiT architecture - Improved Transolver training recipe's configuration for checkpointing and normalization.
Fixed
- Set
skip_scaleto Python float in U-Net to ensure compilation works. - Ensure stream dependencies are handled correctly in physicsnemo.utils.neighbors
- Fixed the issue with incorrect handling of files with consecutive runs of
combine_stl_solids.pyin the X-MGN recipe. - Fixed the
RuntimeError: Worker data receiving interruptederror in the datacenter example.
Contributors
We’re grateful to everyone who contributed issues, feature ideas, fixes, and documentation updates — your input is what helps us continuously improve PhysicsNeMo for the whole community!
A special shout-out to the authors of the pull requests listed above, in no particular order:
@jleinonen , @Dibyajyoti-Chakraborty , @jialusui1102 , @abokov-nv , @melo-gonzo , @dran-dev , @RishikeshRanade , @swbg
Thank you ❤️ — we truly appreciate your contributions and hope to see more from you in the future!