nvidia-physicsnemo 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nvidia_physicsnemo-1.0.0.dist-info/LICENSE.txt +201 -0
- nvidia_physicsnemo-1.0.0.dist-info/METADATA +451 -0
- nvidia_physicsnemo-1.0.0.dist-info/RECORD +248 -0
- nvidia_physicsnemo-1.0.0.dist-info/WHEEL +5 -0
- nvidia_physicsnemo-1.0.0.dist-info/entry_points.txt +15 -0
- nvidia_physicsnemo-1.0.0.dist-info/top_level.txt +1 -0
- physicsnemo/__init__.py +22 -0
- physicsnemo/constants.py +48 -0
- physicsnemo/datapipes/__init__.py +15 -0
- physicsnemo/datapipes/benchmarks/__init__.py +15 -0
- physicsnemo/datapipes/benchmarks/darcy.py +322 -0
- physicsnemo/datapipes/benchmarks/kelvin_helmholtz.py +436 -0
- physicsnemo/datapipes/benchmarks/kernels/__init__.py +15 -0
- physicsnemo/datapipes/benchmarks/kernels/finite_difference.py +139 -0
- physicsnemo/datapipes/benchmarks/kernels/finite_volume.py +759 -0
- physicsnemo/datapipes/benchmarks/kernels/indexing.py +182 -0
- physicsnemo/datapipes/benchmarks/kernels/initialization.py +77 -0
- physicsnemo/datapipes/benchmarks/kernels/utils.py +141 -0
- physicsnemo/datapipes/cae/__init__.py +18 -0
- physicsnemo/datapipes/cae/domino_datapipe.py +557 -0
- physicsnemo/datapipes/cae/mesh_datapipe.py +487 -0
- physicsnemo/datapipes/cae/readers.py +191 -0
- physicsnemo/datapipes/climate/__init__.py +19 -0
- physicsnemo/datapipes/climate/climate.py +813 -0
- physicsnemo/datapipes/climate/era5_hdf5.py +616 -0
- physicsnemo/datapipes/climate/era5_netcdf.py +15 -0
- physicsnemo/datapipes/climate/synthetic.py +182 -0
- physicsnemo/datapipes/climate/utils/__init__.py +15 -0
- physicsnemo/datapipes/climate/utils/invariant.py +139 -0
- physicsnemo/datapipes/climate/utils/zenith_angle.py +208 -0
- physicsnemo/datapipes/datapipe.py +60 -0
- physicsnemo/datapipes/gnn/__init__.py +15 -0
- physicsnemo/datapipes/gnn/ahmed_body_dataset.py +617 -0
- physicsnemo/datapipes/gnn/bsms.py +675 -0
- physicsnemo/datapipes/gnn/drivaernet_dataset.py +395 -0
- physicsnemo/datapipes/gnn/lagrangian_dataset.py +597 -0
- physicsnemo/datapipes/gnn/lagrangian_reading_utils.py +145 -0
- physicsnemo/datapipes/gnn/stokes_dataset.py +331 -0
- physicsnemo/datapipes/gnn/utils.py +98 -0
- physicsnemo/datapipes/gnn/vortex_shedding_dataset.py +418 -0
- physicsnemo/datapipes/gnn/vortex_shedding_re300_1000_dataset.py +260 -0
- physicsnemo/datapipes/healpix/__init__.py +17 -0
- physicsnemo/datapipes/healpix/coupledtimeseries_dataset.py +362 -0
- physicsnemo/datapipes/healpix/couplers.py +553 -0
- physicsnemo/datapipes/healpix/data_modules.py +1129 -0
- physicsnemo/datapipes/healpix/timeseries_dataset.py +491 -0
- physicsnemo/datapipes/meta.py +30 -0
- physicsnemo/deploy/__init__.py +15 -0
- physicsnemo/deploy/onnx/__init__.py +17 -0
- physicsnemo/deploy/onnx/utils.py +167 -0
- physicsnemo/deploy/triton/__init__.py +15 -0
- physicsnemo/deploy/trt/__init__.py +15 -0
- physicsnemo/distributed/__init__.py +49 -0
- physicsnemo/distributed/_shard_redistribute.py +579 -0
- physicsnemo/distributed/_shard_tensor_spec.py +359 -0
- physicsnemo/distributed/autograd.py +430 -0
- physicsnemo/distributed/config.py +247 -0
- physicsnemo/distributed/custom_ops/__init__.py +18 -0
- physicsnemo/distributed/custom_ops/_reductions.py +123 -0
- physicsnemo/distributed/custom_ops/_tensor_ops.py +96 -0
- physicsnemo/distributed/fft.py +232 -0
- physicsnemo/distributed/manager.py +771 -0
- physicsnemo/distributed/mappings.py +138 -0
- physicsnemo/distributed/shard_tensor.py +668 -0
- physicsnemo/distributed/shard_utils/__init__.py +21 -0
- physicsnemo/distributed/shard_utils/conv_patches.py +557 -0
- physicsnemo/distributed/shard_utils/halo.py +431 -0
- physicsnemo/distributed/shard_utils/natten_patches.py +398 -0
- physicsnemo/distributed/shard_utils/patch_core.py +57 -0
- physicsnemo/distributed/utils.py +796 -0
- physicsnemo/experimental/__init__.py +15 -0
- physicsnemo/launch/__init__.py +15 -0
- physicsnemo/launch/config/__init__.py +15 -0
- physicsnemo/launch/logging/__init__.py +18 -0
- physicsnemo/launch/logging/console.py +88 -0
- physicsnemo/launch/logging/launch.py +438 -0
- physicsnemo/launch/logging/mlflow.py +198 -0
- physicsnemo/launch/logging/utils.py +61 -0
- physicsnemo/launch/logging/wandb.py +132 -0
- physicsnemo/launch/utils/__init__.py +17 -0
- physicsnemo/launch/utils/checkpoint.py +399 -0
- physicsnemo/metrics/__init__.py +15 -0
- physicsnemo/metrics/cae/cfd.py +292 -0
- physicsnemo/metrics/cae/integral.py +130 -0
- physicsnemo/metrics/climate/__init__.py +15 -0
- physicsnemo/metrics/climate/acc.py +81 -0
- physicsnemo/metrics/climate/efi.py +143 -0
- physicsnemo/metrics/climate/healpix_loss.py +258 -0
- physicsnemo/metrics/climate/loss.py +367 -0
- physicsnemo/metrics/climate/reduction.py +184 -0
- physicsnemo/metrics/diffusion/__init__.py +27 -0
- physicsnemo/metrics/diffusion/fid.py +49 -0
- physicsnemo/metrics/diffusion/loss.py +914 -0
- physicsnemo/metrics/general/__init__.py +15 -0
- physicsnemo/metrics/general/calibration.py +152 -0
- physicsnemo/metrics/general/crps.py +348 -0
- physicsnemo/metrics/general/ensemble_metrics.py +422 -0
- physicsnemo/metrics/general/entropy.py +143 -0
- physicsnemo/metrics/general/histogram.py +801 -0
- physicsnemo/metrics/general/mse.py +65 -0
- physicsnemo/metrics/general/power_spectrum.py +116 -0
- physicsnemo/metrics/general/reduction.py +154 -0
- physicsnemo/metrics/general/wasserstein.py +155 -0
- physicsnemo/models/__init__.py +17 -0
- physicsnemo/models/afno/__init__.py +19 -0
- physicsnemo/models/afno/afno.py +573 -0
- physicsnemo/models/afno/distributed/__init__.py +17 -0
- physicsnemo/models/afno/distributed/afno.py +367 -0
- physicsnemo/models/afno/distributed/layers.py +444 -0
- physicsnemo/models/afno/modafno.py +657 -0
- physicsnemo/models/afno/modembed.py +120 -0
- physicsnemo/models/diffusion/__init__.py +38 -0
- physicsnemo/models/diffusion/dhariwal_unet.py +259 -0
- physicsnemo/models/diffusion/layers.py +567 -0
- physicsnemo/models/diffusion/preconditioning.py +1176 -0
- physicsnemo/models/diffusion/song_unet.py +906 -0
- physicsnemo/models/diffusion/unet.py +267 -0
- physicsnemo/models/diffusion/utils.py +66 -0
- physicsnemo/models/dlwp/__init__.py +17 -0
- physicsnemo/models/dlwp/dlwp.py +377 -0
- physicsnemo/models/dlwp_healpix/HEALPixRecUNet.py +473 -0
- physicsnemo/models/dlwp_healpix/HEALPixUNet.py +360 -0
- physicsnemo/models/dlwp_healpix/__init__.py +20 -0
- physicsnemo/models/dlwp_healpix_layers/__init__.py +37 -0
- physicsnemo/models/dlwp_healpix_layers/healpix_blocks.py +899 -0
- physicsnemo/models/dlwp_healpix_layers/healpix_decoder.py +162 -0
- physicsnemo/models/dlwp_healpix_layers/healpix_encoder.py +122 -0
- physicsnemo/models/dlwp_healpix_layers/healpix_layers.py +623 -0
- physicsnemo/models/domino/__init__.py +17 -0
- physicsnemo/models/domino/model.py +1080 -0
- physicsnemo/models/fcn_mip_plugin.py +341 -0
- physicsnemo/models/fengwu/__init__.py +17 -0
- physicsnemo/models/fengwu/fengwu.py +317 -0
- physicsnemo/models/figconvnet/base_model.py +42 -0
- physicsnemo/models/figconvnet/components/__init__.py +15 -0
- physicsnemo/models/figconvnet/components/encodings.py +44 -0
- physicsnemo/models/figconvnet/components/mlp.py +173 -0
- physicsnemo/models/figconvnet/components/reductions.py +55 -0
- physicsnemo/models/figconvnet/figconvunet.py +372 -0
- physicsnemo/models/figconvnet/geometries.py +440 -0
- physicsnemo/models/figconvnet/grid_feature_group.py +551 -0
- physicsnemo/models/figconvnet/neighbor_ops.py +214 -0
- physicsnemo/models/figconvnet/point_feature_conv.py +417 -0
- physicsnemo/models/figconvnet/point_feature_grid_conv.py +299 -0
- physicsnemo/models/figconvnet/point_feature_grid_ops.py +331 -0
- physicsnemo/models/figconvnet/warp_neighbor_search.py +268 -0
- physicsnemo/models/fno/__init__.py +17 -0
- physicsnemo/models/fno/fno.py +931 -0
- physicsnemo/models/gnn_layers/__init__.py +24 -0
- physicsnemo/models/gnn_layers/bsms.py +581 -0
- physicsnemo/models/gnn_layers/distributed_graph.py +1197 -0
- physicsnemo/models/gnn_layers/embedder.py +177 -0
- physicsnemo/models/gnn_layers/graph.py +479 -0
- physicsnemo/models/gnn_layers/mesh_edge_block.py +96 -0
- physicsnemo/models/gnn_layers/mesh_graph_decoder.py +121 -0
- physicsnemo/models/gnn_layers/mesh_graph_encoder.py +137 -0
- physicsnemo/models/gnn_layers/mesh_graph_mlp.py +458 -0
- physicsnemo/models/gnn_layers/mesh_node_block.py +92 -0
- physicsnemo/models/gnn_layers/utils.py +427 -0
- physicsnemo/models/graphcast/__init__.py +17 -0
- physicsnemo/models/graphcast/graph_cast_net.py +926 -0
- physicsnemo/models/graphcast/graph_cast_processor.py +239 -0
- physicsnemo/models/layers/__init__.py +57 -0
- physicsnemo/models/layers/activations.py +226 -0
- physicsnemo/models/layers/attention_layers.py +240 -0
- physicsnemo/models/layers/ball_query.py +339 -0
- physicsnemo/models/layers/conv_layers.py +100 -0
- physicsnemo/models/layers/dgm_layers.py +95 -0
- physicsnemo/models/layers/drop.py +59 -0
- physicsnemo/models/layers/fft.py +559 -0
- physicsnemo/models/layers/fourier_layers.py +171 -0
- physicsnemo/models/layers/fully_connected_layers.py +327 -0
- physicsnemo/models/layers/fused_silu.py +328 -0
- physicsnemo/models/layers/interpolation.py +519 -0
- physicsnemo/models/layers/mlp_layers.py +44 -0
- physicsnemo/models/layers/resample_layers.py +228 -0
- physicsnemo/models/layers/siren_layers.py +90 -0
- physicsnemo/models/layers/spectral_layers.py +771 -0
- physicsnemo/models/layers/transformer_decoder.py +286 -0
- physicsnemo/models/layers/transformer_layers.py +711 -0
- physicsnemo/models/layers/weight_fact.py +113 -0
- physicsnemo/models/layers/weight_norm.py +75 -0
- physicsnemo/models/mesh_reduced/mesh_reduced.py +199 -0
- physicsnemo/models/mesh_reduced/temporal_model.py +155 -0
- physicsnemo/models/meshgraphnet/__init__.py +18 -0
- physicsnemo/models/meshgraphnet/bsms_mgn.py +167 -0
- physicsnemo/models/meshgraphnet/meshgraphnet.py +379 -0
- physicsnemo/models/meta.py +50 -0
- physicsnemo/models/mlp/__init__.py +17 -0
- physicsnemo/models/mlp/fully_connected.py +145 -0
- physicsnemo/models/module.py +463 -0
- physicsnemo/models/pangu/__init__.py +17 -0
- physicsnemo/models/pangu/pangu.py +191 -0
- physicsnemo/models/pix2pix/__init__.py +18 -0
- physicsnemo/models/pix2pix/pix2pix.py +362 -0
- physicsnemo/models/pix2pix/pix2pixunet.py +419 -0
- physicsnemo/models/rnn/__init__.py +18 -0
- physicsnemo/models/rnn/layers.py +498 -0
- physicsnemo/models/rnn/rnn_one2many.py +241 -0
- physicsnemo/models/rnn/rnn_seq2seq.py +249 -0
- physicsnemo/models/srrn/__init__.py +17 -0
- physicsnemo/models/srrn/super_res_net.py +392 -0
- physicsnemo/models/swinvrnn/__init__.py +17 -0
- physicsnemo/models/swinvrnn/swinvrnn.py +173 -0
- physicsnemo/models/transolver/Embedding.py +122 -0
- physicsnemo/models/transolver/Physics_Attention.py +273 -0
- physicsnemo/models/transolver/__init__.py +32 -0
- physicsnemo/models/transolver/transolver.py +401 -0
- physicsnemo/models/unet/__init__.py +17 -0
- physicsnemo/models/unet/unet.py +691 -0
- physicsnemo/models/utils/__init__.py +35 -0
- physicsnemo/models/utils/patch_embed.py +214 -0
- physicsnemo/models/utils/shift_window_mask.py +162 -0
- physicsnemo/models/utils/utils.py +182 -0
- physicsnemo/models/utils/weight_init.py +75 -0
- physicsnemo/models/vfgn/__init__.py +17 -0
- physicsnemo/models/vfgn/graph_network_modules.py +1117 -0
- physicsnemo/registry/__init__.py +17 -0
- physicsnemo/registry/model_registry.py +147 -0
- physicsnemo/utils/__init__.py +21 -0
- physicsnemo/utils/capture.py +514 -0
- physicsnemo/utils/corrdiff/__init__.py +17 -0
- physicsnemo/utils/corrdiff/utils.py +253 -0
- physicsnemo/utils/domino/utils.py +385 -0
- physicsnemo/utils/filesystem.py +234 -0
- physicsnemo/utils/generative/__init__.py +50 -0
- physicsnemo/utils/generative/deterministic_sampler.py +231 -0
- physicsnemo/utils/generative/stochastic_sampler.py +533 -0
- physicsnemo/utils/generative/utils.py +775 -0
- physicsnemo/utils/graphcast/__init__.py +15 -0
- physicsnemo/utils/graphcast/data_utils.py +125 -0
- physicsnemo/utils/graphcast/graph.py +266 -0
- physicsnemo/utils/graphcast/graph_utils.py +455 -0
- physicsnemo/utils/graphcast/icosahedral_mesh.py +294 -0
- physicsnemo/utils/graphcast/loss.py +228 -0
- physicsnemo/utils/insolation.py +110 -0
- physicsnemo/utils/mesh/__init__.py +19 -0
- physicsnemo/utils/mesh/combine_vtp_files.py +51 -0
- physicsnemo/utils/mesh/convert_file_formats.py +98 -0
- physicsnemo/utils/mesh/generate_stl.py +85 -0
- physicsnemo/utils/neighbor_list.py +175 -0
- physicsnemo/utils/profiling/__init__.py +40 -0
- physicsnemo/utils/profiling/core.py +377 -0
- physicsnemo/utils/profiling/interface.py +376 -0
- physicsnemo/utils/profiling/line_profile.py +107 -0
- physicsnemo/utils/profiling/torch.py +181 -0
- physicsnemo/utils/sdf.py +143 -0
- physicsnemo/utils/zenith_angle.py +509 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "{}"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright 2022 NVIDIA Corporation
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: nvidia-physicsnemo
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: A deep learning framework for AI-driven multi-physics systems
|
|
5
|
+
Author: NVIDIA PhysicsNeMo Team
|
|
6
|
+
License: Apache 2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/NVIDIA/modulus
|
|
8
|
+
Project-URL: Documentation, https://docs.nvidia.com/modulus/#core
|
|
9
|
+
Project-URL: Issues, https://github.com/NVIDIA/modulus/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/NVIDIA/modulus/blob/main/CHANGELOG.md
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE.txt
|
|
17
|
+
Requires-Dist: certifi>=2023.7.22
|
|
18
|
+
Requires-Dist: fsspec>=2023.1.0
|
|
19
|
+
Requires-Dist: numpy>=1.22.4
|
|
20
|
+
Requires-Dist: nvidia_dali_cuda120>=1.35.0
|
|
21
|
+
Requires-Dist: onnx>=1.14.0
|
|
22
|
+
Requires-Dist: s3fs>=2023.5.0
|
|
23
|
+
Requires-Dist: setuptools>=67.6.0
|
|
24
|
+
Requires-Dist: timm>=0.9.12
|
|
25
|
+
Requires-Dist: torch>=2.0.0
|
|
26
|
+
Requires-Dist: tqdm>=4.60.0
|
|
27
|
+
Requires-Dist: treelib>=1.2.5
|
|
28
|
+
Requires-Dist: xarray>=2023.1.0
|
|
29
|
+
Requires-Dist: zarr>=2.14.2
|
|
30
|
+
Provides-Extra: launch
|
|
31
|
+
Requires-Dist: hydra-core>=1.2.0; extra == "launch"
|
|
32
|
+
Requires-Dist: termcolor>=2.1.1; extra == "launch"
|
|
33
|
+
Requires-Dist: wandb>=0.13.7; extra == "launch"
|
|
34
|
+
Requires-Dist: mlflow>=2.1.1; extra == "launch"
|
|
35
|
+
Requires-Dist: pydantic>=2.4.2; extra == "launch"
|
|
36
|
+
Requires-Dist: imageio>=2.28.1; extra == "launch"
|
|
37
|
+
Requires-Dist: moviepy>=1.0.3; extra == "launch"
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: pytest>=6.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pyyaml>=6.0; extra == "dev"
|
|
41
|
+
Requires-Dist: black==22.10.0; extra == "dev"
|
|
42
|
+
Requires-Dist: interrogate==1.5.0; extra == "dev"
|
|
43
|
+
Requires-Dist: coverage==6.5.0; extra == "dev"
|
|
44
|
+
Requires-Dist: ruff==0.0.290; extra == "dev"
|
|
45
|
+
Provides-Extra: makani
|
|
46
|
+
Requires-Dist: torch-harmonics<0.7.1,>=0.6.5; extra == "makani"
|
|
47
|
+
Requires-Dist: tensorly>=0.8.1; extra == "makani"
|
|
48
|
+
Requires-Dist: tensorly-torch>=0.4.0; extra == "makani"
|
|
49
|
+
Provides-Extra: fignet
|
|
50
|
+
Requires-Dist: jaxtyping>=0.2; extra == "fignet"
|
|
51
|
+
Requires-Dist: torch_scatter>=2.1; extra == "fignet"
|
|
52
|
+
Requires-Dist: torchinfo>=1.8; extra == "fignet"
|
|
53
|
+
Requires-Dist: warp-lang>=1.0; extra == "fignet"
|
|
54
|
+
Requires-Dist: webdataset>=0.2; extra == "fignet"
|
|
55
|
+
Provides-Extra: storage
|
|
56
|
+
Requires-Dist: multi-storage-client>=0.14.0; extra == "storage"
|
|
57
|
+
Provides-Extra: shardtensor
|
|
58
|
+
Requires-Dist: wrapt>=1.15.0; extra == "shardtensor"
|
|
59
|
+
Provides-Extra: all
|
|
60
|
+
Requires-Dist: h5py>=3.7.0; extra == "all"
|
|
61
|
+
Requires-Dist: netcdf4>=1.6.3; extra == "all"
|
|
62
|
+
Requires-Dist: ruamel.yaml>=0.17.22; extra == "all"
|
|
63
|
+
Requires-Dist: scikit-learn>=1.0.2; extra == "all"
|
|
64
|
+
Requires-Dist: scikit-image>=0.24.0; extra == "all"
|
|
65
|
+
Requires-Dist: warp-lang>=1.0; extra == "all"
|
|
66
|
+
Requires-Dist: vtk>=9.2.6; extra == "all"
|
|
67
|
+
Requires-Dist: pyvista>=0.40.1; extra == "all"
|
|
68
|
+
Requires-Dist: cftime>=1.6.2; extra == "all"
|
|
69
|
+
Requires-Dist: einops>=0.7.0; extra == "all"
|
|
70
|
+
Requires-Dist: pyspng>=0.1.0; extra == "all"
|
|
71
|
+
Requires-Dist: shapely>=2.0.6; extra == "all"
|
|
72
|
+
Requires-Dist: pytz>=2023.3; extra == "all"
|
|
73
|
+
Requires-Dist: nvtx>=0.2.8; extra == "all"
|
|
74
|
+
Requires-Dist: nvidia-physicsnemo[launch]; extra == "all"
|
|
75
|
+
Requires-Dist: nvidia-physicsnemo[dev]; extra == "all"
|
|
76
|
+
Requires-Dist: nvidia-physicsnemo[makani]; extra == "all"
|
|
77
|
+
Requires-Dist: nvidia-physicsnemo[fignet]; extra == "all"
|
|
78
|
+
Requires-Dist: nvidia-physicsnemo[storage]; extra == "all"
|
|
79
|
+
|
|
80
|
+
# NVIDIA PhysicsNeMo
|
|
81
|
+
|
|
82
|
+
<!-- markdownlint-disable -->
|
|
83
|
+
|
|
84
|
+
📝 NVIDIA Modulus has been renamed to NVIDIA PhysicsNeMo
|
|
85
|
+
|
|
86
|
+
[](https://www.repostatus.org/#active)
|
|
87
|
+
[](https://github.com/NVIDIA/modulus/blob/master/LICENSE.txt)
|
|
88
|
+
[](https://github.com/psf/black)
|
|
89
|
+
<!-- markdownlint-enable -->
|
|
90
|
+
[**Getting Started**](#getting-started)
|
|
91
|
+
| [**Install guide**](#installation)
|
|
92
|
+
| [**Contributing Guidelines**](#contributing-to-physicsnemo)
|
|
93
|
+
| [**Resources**](#resources)
|
|
94
|
+
| [**Communication**](#communication)
|
|
95
|
+
| [**License**](#license)
|
|
96
|
+
|
|
97
|
+
## What is PhysicsNeMo?
|
|
98
|
+
|
|
99
|
+
NVIDIA PhysicsNeMo is an open-source deep-learning framework for building, training,
|
|
100
|
+
and fine-tuning deep learning models using state-of-the-art SciML methods for
|
|
101
|
+
AI4science and engineering.
|
|
102
|
+
|
|
103
|
+
PhysicsNeMo provides utilities and optimized pipelines to develop AI models that combine
|
|
104
|
+
physics knowledge with data, enabling real-time predictions.
|
|
105
|
+
|
|
106
|
+
Whether you are exploring the use of Neural operators, GNNs, or transformers or are
|
|
107
|
+
interested in Physics-informed Neural Networks or a hybrid approach in between, PhysicsNeMo
|
|
108
|
+
provides you with an optimized stack that will enable you to train your models at scale.
|
|
109
|
+
|
|
110
|
+
<!-- markdownlint-disable -->
|
|
111
|
+
<p align="center">
|
|
112
|
+
<img src=https://raw.githubusercontent.com/NVIDIA/modulus/main/docs/img/value_prop/Knowledge_guided_models.gif alt="PhysicsNeMo"/>
|
|
113
|
+
</p>
|
|
114
|
+
<!-- markdownlint-enable -->
|
|
115
|
+
|
|
116
|
+
<!-- toc -->
|
|
117
|
+
|
|
118
|
+
- [More About PhysicsNeMo](#more-about-physicsnemo)
|
|
119
|
+
- [Scalable GPU-optimized training Library](#scalable-gpu-optimized-training-library)
|
|
120
|
+
- [A suite of Physics-Informed ML Models](#a-suite-of-physics-informed-ml-models)
|
|
121
|
+
- [Seamless PyTorch Integration](#seamless-pytorch-integration)
|
|
122
|
+
- [Easy Customization and Extension](#easy-customization-and-extension)
|
|
123
|
+
- [AI4Science Library](#ai4science-library)
|
|
124
|
+
- [Domain Specific Packages](#domain-specific-packages)
|
|
125
|
+
- [Who is contributing to PhysicsNeMo](#who-is-using-and-contributing-to-physicsnemo)
|
|
126
|
+
- [Why use PhysicsNeMo](#why-are-they-using-physicsnemo)
|
|
127
|
+
- [Getting Started](#getting-started)
|
|
128
|
+
- [Resources](#resources)
|
|
129
|
+
- [Installation](#installation)
|
|
130
|
+
- [Contributing](#contributing-to-physicsnemo)
|
|
131
|
+
- [Communication](#communication)
|
|
132
|
+
- [License](#license)
|
|
133
|
+
|
|
134
|
+
<!-- tocstop -->
|
|
135
|
+
|
|
136
|
+
## More About PhysicsNeMo
|
|
137
|
+
|
|
138
|
+
At a granular level, PhysicsNeMo provides a library of a few key components:
|
|
139
|
+
|
|
140
|
+
<!-- markdownlint-disable -->
|
|
141
|
+
Component | Description |
|
|
142
|
+
---- | --- |
|
|
143
|
+
[**modules.models**](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.models.html) | A collection of optimized, customizable, and easy-to-use models such as Fourier Neural Operators, Graph Neural Networks, and many more|
|
|
144
|
+
[**physicsnemo.datapipes**](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.datapipes.html) | A data pipeline and data loader library, including benchmark datapipes, weather daptapipes, and graph datapipes|
|
|
145
|
+
[**physicsnemo.distributed**](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.distributed.html) | A distributed computing library build on top of `torch.distributed` to enable parallel training with just a few steps|
|
|
146
|
+
[**physicsnemo.sym.geometry**](https://docs.nvidia.com/deeplearning/modulus/modulus-sym/user_guide/features/csg_and_tessellated_module.html) | A library to handle geometry for DL training using the Constructive Solid Geometry modeling and CAD files in STL format.|
|
|
147
|
+
[**physicsnemo.sym.eq**](https://docs.nvidia.com/deeplearning/modulus/modulus-sym/user_guide/features/nodes.html) | A library to use PDEs in your DL training with several implementations of commonly observed equations and easy ways for customization.|
|
|
148
|
+
<!-- markdownlint-enable -->
|
|
149
|
+
|
|
150
|
+
For a complete list, refer to the PhysicsNeMo API documentation for
|
|
151
|
+
[PhysicsNeMo Core](https://docs.nvidia.com/deeplearning/modulus/modulus-core/index.html)
|
|
152
|
+
and
|
|
153
|
+
[PhysicsNeMo Sym](https://docs.nvidia.com/deeplearning/modulus/modulus-sym/api/api_index.html).
|
|
154
|
+
|
|
155
|
+
Usually, PhysicsNeMo is used either as:
|
|
156
|
+
|
|
157
|
+
- A complementary tool to Pytorch when exploring AI for SciML and AI4Science applications.
|
|
158
|
+
- A deep learning research platform that provides scale and optimal performance on
|
|
159
|
+
NVIDIA GPUs.
|
|
160
|
+
|
|
161
|
+
Elaborating Further:
|
|
162
|
+
|
|
163
|
+
### Scalable GPU-optimized training Library
|
|
164
|
+
|
|
165
|
+
PhysicsNeMo provides a highly optimized and scalable training library for maximizing the
|
|
166
|
+
power of NVIDIA GPUs.
|
|
167
|
+
[Distributed computing](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.distributed.html)
|
|
168
|
+
utilities allow for efficient scaling from a single GPU to multi-node GPU clusters with
|
|
169
|
+
a few lines of code, ensuring that large-scale.
|
|
170
|
+
physics-informed machine learning (ML) models can be trained quickly and effectively.
|
|
171
|
+
The framework includes support for advanced.
|
|
172
|
+
[optimization utilities](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.utils.html#module-modulus.utils.capture),
|
|
173
|
+
[tailor made datapipes](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.datapipes.html),
|
|
174
|
+
[validation utilities](https://github.com/NVIDIA/modulus-sym/tree/main/modulus/sym/eq)
|
|
175
|
+
to enhance the end to end training speed.
|
|
176
|
+
|
|
177
|
+
### A suite of Physics Informed ML Models
|
|
178
|
+
|
|
179
|
+
PhysicsNeMo offers a comprehensive library of state-of-the-art models specifically designed
|
|
180
|
+
for physics-ML applications.
|
|
181
|
+
The [Model Zoo](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.models.html#model-zoo)
|
|
182
|
+
includes generalizable model architectures such as
|
|
183
|
+
[Fourier Neural Operators (FNOs)](physicsnemo/models/fno),
|
|
184
|
+
[DeepONet](https://docs.nvidia.com/deeplearning/modulus/modulus-sym/user_guide/neural_operators/deeponet.html),
|
|
185
|
+
[Physics-Informed Neural Networks (PINNs)](https://docs.nvidia.com/deeplearning/modulus/modulus-sym/user_guide/foundational/1d_wave_equation.html),
|
|
186
|
+
[Graph Neural Networks (GNNs)](physicsnemo/models/gnn_layers),
|
|
187
|
+
and generative AI models like [Diffusion Models](physicsnemo/models/diffusion)
|
|
188
|
+
as well as domain-specific models such as [Deep Learning Weather Prediction (DLWP)](physicsnemo/models/dlwp)
|
|
189
|
+
and [Super Resolution Network (SrNN)](physicsnemo/models/srrn) among others.
|
|
190
|
+
These models are optimized for various physics domains, such as computational fluid
|
|
191
|
+
dynamics, structural mechanics, and electromagnetics. Users can download, customize, and
|
|
192
|
+
build upon these models to suit their specific needs, significantly reducing the time
|
|
193
|
+
required to develop high-fidelity simulations.
|
|
194
|
+
|
|
195
|
+
### Seamless PyTorch Integration
|
|
196
|
+
|
|
197
|
+
PhysicsNeMo is built on top of PyTorch, providing a familiar and user-friendly experience
|
|
198
|
+
for those already proficient with PyTorch.
|
|
199
|
+
This includes a simple Python interface and modular design, making it easy to use
|
|
200
|
+
PhysicsNeMo with existing PyTorch workflows.
|
|
201
|
+
Users can leverage the extensive PyTorch ecosystem, including its libraries and tools
|
|
202
|
+
while benefiting from PhysicsNeMo's specialized capabilities for physics-ML. This seamless
|
|
203
|
+
integration ensures users can quickly adopt PhysicsNeMo without a steep learning curve.
|
|
204
|
+
|
|
205
|
+
For more information, refer [Converting PyTorch Models to PhysicsNeMo Models](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.models.html#converting-pytorch-models-to-modulus-models)
|
|
206
|
+
|
|
207
|
+
### Easy Customization and Extension
|
|
208
|
+
|
|
209
|
+
PhysicsNeMo is designed to be highly extensible, allowing users to add new functionality
|
|
210
|
+
with minimal effort. The framework provides Pythonic APIs for
|
|
211
|
+
defining new physics models, geometries, and constraints, making it easy to extend its
|
|
212
|
+
capabilities to new use cases.
|
|
213
|
+
The adaptability of PhysicsNeMo is further enhanced by key features such as
|
|
214
|
+
[ONNX support](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.deploy.html)
|
|
215
|
+
for flexible model deployment,
|
|
216
|
+
robust [logging utilities](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.launch.logging.html)
|
|
217
|
+
for streamlined error handling,
|
|
218
|
+
and efficient
|
|
219
|
+
[checkpointing](https://docs.nvidia.com/deeplearning/modulus/modulus-core/api/modulus.launch.utils.html#module-modulus.launch.utils.checkpoint)
|
|
220
|
+
to simplify model loading and saving.
|
|
221
|
+
|
|
222
|
+
This extensibility ensures that PhysicsNeMo can adapt to the evolving needs of researchers
|
|
223
|
+
and engineers, facilitating the development of innovative solutions in the field of physics-ML.
|
|
224
|
+
|
|
225
|
+
Detailed information on features and capabilities can be found in the [PhysicsNeMo documentation](https://docs.nvidia.com/modulus/index.html#core).
|
|
226
|
+
|
|
227
|
+
[Reference samples](examples/README.md) cover a broad spectrum of physics-constrained
|
|
228
|
+
and data-driven
|
|
229
|
+
workflows to suit the diversity of use cases in the science and engineering disciplines.
|
|
230
|
+
|
|
231
|
+
> [!TIP]
|
|
232
|
+
> Have questions about how PhysicsNeMo can assist you? Try our [Experimental] chatbot,
|
|
233
|
+
> [PhysicsNeMo Guide](https://chatgpt.com/g/g-PXrBv20SC-modulus-guide), for answers.
|
|
234
|
+
|
|
235
|
+
### Hello world
|
|
236
|
+
|
|
237
|
+
You can start using PhysicsNeMo in your PyTorch code as simple as shown here:
|
|
238
|
+
|
|
239
|
+
```python
|
|
240
|
+
python
|
|
241
|
+
>>> import torch
|
|
242
|
+
>>> from physicsnemo.models.mlp.fully_connected import FullyConnected
|
|
243
|
+
>>> model = FullyConnected(in_features=32, out_features=64)
|
|
244
|
+
>>> input = torch.randn(128, 32)
|
|
245
|
+
>>> output = model(input)
|
|
246
|
+
>>> output.shape
|
|
247
|
+
torch.Size([128, 64])
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### AI4Science Library
|
|
251
|
+
|
|
252
|
+
- [PhysicsNeMo Symbolic](https://github.com/NVIDIA/modulus-sym): This repository of
|
|
253
|
+
algorithms and utilities allows SciML researchers and developers to physics inform model
|
|
254
|
+
training and model validation. It also provides a higher level abstraction
|
|
255
|
+
for domain experts that is native to science and engineering.
|
|
256
|
+
|
|
257
|
+
#### Domain Specific Packages
|
|
258
|
+
|
|
259
|
+
The following are packages dedicated for domain experts of specific communities catering
|
|
260
|
+
to their unique exploration needs.
|
|
261
|
+
|
|
262
|
+
- [Earth-2 Studio](https://github.com/NVIDIA/earth2studio): Open source project
|
|
263
|
+
to enable climate researchers and scientists to explore and experiment with
|
|
264
|
+
AI models for weather and climate.
|
|
265
|
+
|
|
266
|
+
#### Research packages
|
|
267
|
+
|
|
268
|
+
The following are research packages that get packaged into PhysicsNeMo once they are stable.
|
|
269
|
+
|
|
270
|
+
- [PhysicsNeMo Makani](https://github.com/NVIDIA/modulus-makani): Experimental library
|
|
271
|
+
designed to enable the research and development of machine-learning based weather and
|
|
272
|
+
climate models.
|
|
273
|
+
- [Earth2 Grid](https://github.com/NVlabs/earth2grid): Experimental library with
|
|
274
|
+
utilities for working geographic data defined on various grids.
|
|
275
|
+
- [Earth-2 MIP](https://github.com/NVIDIA/earth2mip): Experimental library with
|
|
276
|
+
utilities for model intercomparison for weather and climate models.
|
|
277
|
+
|
|
278
|
+
## Who is using and contributing to PhysicsNeMo
|
|
279
|
+
|
|
280
|
+
PhysicsNeMo is an open source project and gets contributions from researchers in
|
|
281
|
+
the SciML and AI4science fields. While PhysicsNeMo team works on optimizing the
|
|
282
|
+
underlying SW stack, the community collaborates and contributes model architectures,
|
|
283
|
+
datasets, and reference applications so we can innovate in the pursuit of
|
|
284
|
+
developing generalizable model architectures and algorithms.
|
|
285
|
+
|
|
286
|
+
Some latest examples of community contributors are [HP Labs 3D Printing team](https://developer.nvidia.com/blog/spotlight-hp-3d-printing-and-nvidia-modulus-collaborate-on-open-source-manufacturing-digital-twin/),
|
|
287
|
+
[Stanford Cardiovascular research team](https://developer.nvidia.com/blog/enabling-greater-patient-specific-cardiovascular-care-with-ai-surrogates/),
|
|
288
|
+
[UIUC team](https://github.com/NVIDIA/modulus/tree/main/examples/cfd/mhd_pino),
|
|
289
|
+
[CMU team](https://github.com/NVIDIA/modulus/tree/main/examples/generative/diffusion) etc.
|
|
290
|
+
|
|
291
|
+
Latest examples of research teams using PhysicsNeMo are
|
|
292
|
+
[ORNL team](https://arxiv.org/abs/2404.05768),
|
|
293
|
+
[TU Munich CFD team](https://www.nvidia.com/en-us/on-demand/session/gtc24-s62237/) etc.
|
|
294
|
+
|
|
295
|
+
Please navigate to this page for a complete list of research work leveraging PhysicsNeMo.
|
|
296
|
+
For a list of enterprises using PhysicsNeMo refer [here](https://developer.nvidia.com/modulus).
|
|
297
|
+
|
|
298
|
+
Using PhysicsNeMo and interested in showcasing your work on
|
|
299
|
+
[NVIDIA Blogs](https://developer.nvidia.com/blog/category/simulation-modeling-design/)?
|
|
300
|
+
Fill out this [proposal form](https://forms.gle/XsBdWp3ji67yZAUF7) and we will get back
|
|
301
|
+
to you!
|
|
302
|
+
|
|
303
|
+
## Why are they using PhysicsNeMo
|
|
304
|
+
|
|
305
|
+
Here are some of the key benefits of PhysicsNeMo for SciML model development:
|
|
306
|
+
|
|
307
|
+
<!-- markdownlint-disable -->
|
|
308
|
+
<img src="docs/img/value_prop/benchmarking.svg" width="100"> | <img src="docs/img/value_prop/recipe.svg" width="100"> | <img src="docs/img/value_prop/performance.svg" width="100">
|
|
309
|
+
---|---|---|
|
|
310
|
+
|SciML Benchmarking and validation|Ease of using generalized SciML recipes with heterogenous datasets |Out of the box performance and scalability
|
|
311
|
+
|PhysicsNeMo enables researchers to benchmark their AI model against proven architectures for standard benchmark problems with detailed domain-specific validation criteria.|PhysicsNeMo enables researchers to pick from SOTA SciML architectures and use built-in data pipelines for their use case.| PhysicsNeMo provides out-of-the-box performant training pipelines including optimized ETL pipelines for heterogrneous engineering and scientific datasets and out of the box scaling across multi-GPU and multi-node GPUs.
|
|
312
|
+
<!-- markdownlint-enable -->
|
|
313
|
+
|
|
314
|
+
See what your peer SciML researchers are saying about PhysicsNeMo (Coming soon).
|
|
315
|
+
|
|
316
|
+
## Getting started
|
|
317
|
+
|
|
318
|
+
The following resources will help you in learning how to use PhysicsNeMo. The best
|
|
319
|
+
way is to start with a reference sample and then update it for your own use case.
|
|
320
|
+
|
|
321
|
+
- [Using PhysicsNeMo with your PyTorch model](https://docs.nvidia.com/deeplearning/modulus/modulus-core/tutorials/simple_training_example.html#using-custom-models-in-modulus)
|
|
322
|
+
- [Using PhysicsNeMo built-in models](https://docs.nvidia.com/deeplearning/modulus/modulus-core/tutorials/simple_training_example.html#using-built-in-models)
|
|
323
|
+
- [Getting started Guide](https://docs.nvidia.com/deeplearning/modulus/getting-started/index.html)
|
|
324
|
+
- [Reference Samples](https://github.com/NVIDIA/modulus/blob/main/examples/README.md)
|
|
325
|
+
- [User guide Documentation](https://docs.nvidia.com/deeplearning/modulus/modulus-core/index.html)
|
|
326
|
+
|
|
327
|
+
## Resources
|
|
328
|
+
|
|
329
|
+
- [Getting started Webinar](https://www.nvidia.com/en-us/on-demand/session/gtc24-dlit61460/?playlistId=playList-bd07f4dc-1397-4783-a959-65cec79aa985)
|
|
330
|
+
- [AI4Science PhysicsNeMo Bootcamp](https://github.com/openhackathons-org/End-to-End-AI-for-Science)
|
|
331
|
+
- [PhysicsNeMo Pretrained models](https://catalog.ngc.nvidia.com/models?filters=&orderBy=scoreDESC&query=Modulus&page=&pageSize=)
|
|
332
|
+
- [PhysicsNeMo Datasets and Supplementary materials](https://catalog.ngc.nvidia.com/resources?filters=&orderBy=scoreDESC&query=Modulus&page=&pageSize=)
|
|
333
|
+
- [Self-paced PhysicsNeMo DLI training](https://learn.nvidia.com/courses/course-detail?course_id=course-v1:DLI+S-OV-04+V1)
|
|
334
|
+
- [Deep Learning for Science and Engineering Lecture Series with PhysicsNeMo](https://www.nvidia.com/en-us/on-demand/deep-learning-for-science-and-engineering/)
|
|
335
|
+
- [PhysicsNeMo: purpose and usage](https://www.nvidia.com/en-us/on-demand/session/dliteachingkit-setk5002/)
|
|
336
|
+
- [Video Tutorials](https://www.nvidia.com/en-us/on-demand/search/?facet.mimetype[]=event%20session&layout=list&page=1&q=modulus&sort=relevance&sortDir=desc)
|
|
337
|
+
|
|
338
|
+
## Installation
|
|
339
|
+
|
|
340
|
+
### PyPi
|
|
341
|
+
|
|
342
|
+
The recommended method for installing the latest version of PhysicsNeMo is using PyPi:
|
|
343
|
+
|
|
344
|
+
```Bash
|
|
345
|
+
pip install nvidia-physicsnemo
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
The installation can be verified by running the hello world example as demonstrated [here](#hello-world).
|
|
349
|
+
|
|
350
|
+
#### Optional dependencies
|
|
351
|
+
|
|
352
|
+
PhysicsNeMo has many optional dependencies that are used in specific components.
|
|
353
|
+
When using pip, all dependencies used in PhysicsNeMo can be installed with
|
|
354
|
+
`pip install nvidia-physicsnemo[all]`. If you are developing PhysicsNeMo, developer dependencies
|
|
355
|
+
can be installed using `pip install nvidia-physicsnemo[dev]`. Otherwise, additional dependencies
|
|
356
|
+
can be installed on a case by case basis. Detailed information on installing the
|
|
357
|
+
optional dependencies can be found in the
|
|
358
|
+
[Getting Started Guide](https://docs.nvidia.com/deeplearning/modulus/getting-started/index.html).
|
|
359
|
+
|
|
360
|
+
### NVCR Container
|
|
361
|
+
|
|
362
|
+
The recommended PhysicsNeMo docker image can be pulled from the
|
|
363
|
+
[NVIDIA Container Registry](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/containers/modulus)
|
|
364
|
+
(refer to the NGC registry for the latest tag):
|
|
365
|
+
|
|
366
|
+
```Bash
|
|
367
|
+
docker pull nvcr.io/nvidia/physicsnemo/physicsnemo:25.03
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
Inside the container, you can clone the PhysicsNeMo git repositories and get
|
|
371
|
+
started with the examples. The below command shows the instructions to launch
|
|
372
|
+
the physicsnemo container and run examples from this repo.
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia \
|
|
376
|
+
--rm -it nvcr.io/nvidia/physicsnemo/physicsnemo:25.03 bash
|
|
377
|
+
git clone https://github.com/NVIDIA/physicsnemo.git
|
|
378
|
+
cd physicsnemo/examples/cfd/darcy_fno/
|
|
379
|
+
pip install warp-lang # install NVIDIA Warp to run the darcy example
|
|
380
|
+
python train_fno_darcy.py
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
For enterprise supported NVAIE container, refer [PhysicsNeMo Secured Feature Branch](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/containers/modulus-sfb)
|
|
384
|
+
|
|
385
|
+
## From Source
|
|
386
|
+
|
|
387
|
+
### Package
|
|
388
|
+
|
|
389
|
+
For a local build of the PhysicsNeMo Python package from source use:
|
|
390
|
+
|
|
391
|
+
```Bash
|
|
392
|
+
git clone git@github.com:NVIDIA/physicsnemo.git && cd physicsnemo
|
|
393
|
+
|
|
394
|
+
pip install --upgrade pip
|
|
395
|
+
pip install .
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### Source Container
|
|
399
|
+
|
|
400
|
+
To build PhysicsNeMo docker image:
|
|
401
|
+
|
|
402
|
+
```bash
|
|
403
|
+
docker build -t physicsnemo:deploy \
|
|
404
|
+
--build-arg TARGETPLATFORM=linux/amd64 --target deploy -f Dockerfile .
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Alternatively, you can run `make container-deploy`
|
|
408
|
+
|
|
409
|
+
To build CI image:
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
docker build -t physicsnemo:ci \
|
|
413
|
+
--build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile .
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
Alternatively, you can run `make container-ci`.
|
|
417
|
+
|
|
418
|
+
Currently, only `linux/amd64` and `linux/arm64` platforms are supported. If using
|
|
419
|
+
`linux/arm64`, some dependencies like `warp-lang` might not install correctly.
|
|
420
|
+
|
|
421
|
+
## Contributing to PhysicsNeMo
|
|
422
|
+
|
|
423
|
+
PhysicsNeMo is an open source collaboration and its success is rooted in community
|
|
424
|
+
contribution to further the field of Physics-ML. Thank you for contributing to the
|
|
425
|
+
project so others can build on top of your contribution.
|
|
426
|
+
|
|
427
|
+
For guidance on contributing to PhysicsNeMo, please refer to the
|
|
428
|
+
[contributing guidelines](CONTRIBUTING.md).
|
|
429
|
+
|
|
430
|
+
## Cite PhysicsNeMo
|
|
431
|
+
|
|
432
|
+
If PhysicsNeMo helped your research and you would like to cite it, please refer to the [guidelines](https://github.com/NVIDIA/modulus/blob/main/CITATION.cff)
|
|
433
|
+
|
|
434
|
+
## Communication
|
|
435
|
+
|
|
436
|
+
- Github Discussions: Discuss new architectures, implementations, Physics-ML research, etc.
|
|
437
|
+
- GitHub Issues: Bug reports, feature requests, install issues, etc.
|
|
438
|
+
- PhysicsNeMo Forum: The [PhysicsNeMo Forum](https://forums.developer.nvidia.com/c/physics-simulation/modulus-physics-ml-model-framework)
|
|
439
|
+
hosts an audience of new to moderate-level users and developers for general chat, online
|
|
440
|
+
discussions, collaboration, etc.
|
|
441
|
+
|
|
442
|
+
## Feedback
|
|
443
|
+
|
|
444
|
+
Want to suggest some improvements to PhysicsNeMo? Use our feedback form
|
|
445
|
+
[here](https://docs.google.com/forms/d/e/1FAIpQLSfX4zZ0Lp7MMxzi3xqvzX4IQDdWbkNh5H_a_clzIhclE2oSBQ/viewform?usp=sf_link).
|
|
446
|
+
|
|
447
|
+
## License
|
|
448
|
+
|
|
449
|
+
PhysicsNeMo is provided under the Apache License 2.0, please see [LICENSE.txt](./LICENSE.txt)
|
|
450
|
+
for full license text. Enterprise SLA, support and preview access are available
|
|
451
|
+
under NVAIE.
|