Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
2b1f535
Adding mesh datapipe temporarily
coreyjadams Mar 16, 2026
132d72a
first, very early, draft of mesh-based datapipe
coreyjadams Mar 17, 2026
8987172
Update datapipes for physicsnemo mesh: now can read and transform sur…
coreyjadams Mar 20, 2026
aeb8c06
Add a functionally working - but not yet cxonverging - xaero recipe
coreyjadams Mar 21, 2026
6459144
Add functional physicsnemo mesh pipeline
coreyjadams Mar 23, 2026
5821b15
Update README
coreyjadams Mar 23, 2026
0da2cd1
Snapshotting training recipe
coreyjadams Mar 24, 2026
f5cb9bc
Merge branch 'NVIDIA:main' into pnm_mesh_datapipes
coreyjadams Mar 24, 2026
42740e8
Remove Ahmed dataset with physicsnemo mesh, it's not needed.
coreyjadams Mar 25, 2026
beb2da0
Simplify and consolidate, or remove statistics work for this example.
coreyjadams Mar 25, 2026
36d3365
Remove inspect_data, and ensure readme is updated
coreyjadams Mar 25, 2026
f7e77be
Remove AGENT.md
coreyjadams Mar 25, 2026
6977270
Training recipe is basically complete
coreyjadams Mar 25, 2026
5db9027
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Mar 25, 2026
bb9e995
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Mar 30, 2026
0c5d58e
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Apr 9, 2026
b669aa7
Update physicsnemo/datapipes/readers/mesh.py
coreyjadams Apr 9, 2026
e8ef574
Update physicsnemo/datapipes/transforms/mesh/transforms.py
coreyjadams Apr 9, 2026
5493428
Update physicsnemo/datapipes/readers/mesh.py
coreyjadams Apr 9, 2026
70e806b
Addressing some PR comments.
coreyjadams Apr 9, 2026
0c21bb1
make sure rotations are flexible, add docstrings
coreyjadams Apr 9, 2026
1277d3d
Update distribution handling per PR review.
coreyjadams Apr 10, 2026
c8370d2
Merge branch 'NVIDIA:main' into pnm_mesh_datapipes
coreyjadams Apr 13, 2026
492892a
Merge branch 'NVIDIA:main' into pnm_mesh_datapipes
coreyjadams Apr 15, 2026
93b10d1
This commit enablers the datapipes to be reproducible
coreyjadams Apr 17, 2026
4a13b3e
Add testing for the datapipes
coreyjadams Apr 17, 2026
d7d2e01
Add missing rng updates
coreyjadams Apr 17, 2026
1fea170
Update training python codes
coreyjadams Apr 17, 2026
53069e2
Add geotransolver configs with obscured paths
coreyjadams Apr 17, 2026
aa8cced
Remove shift suv configs for now
coreyjadams Apr 17, 2026
c5b8e6d
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Apr 18, 2026
7b79c58
Adding configs for flare and geotransolver with a flare backend.
coreyjadams Apr 20, 2026
d77b582
Update README.md
coreyjadams Apr 20, 2026
6189fe5
Add datapipes.md. Describes some of the computational design of the d…
coreyjadams Apr 20, 2026
957d6c3
Update datapipes to use non-blocking stream syncs when streams are ac…
coreyjadams Apr 21, 2026
019e46b
Fix cuda memory access errors arising from incorrect fake tensor ops.…
coreyjadams Apr 22, 2026
bed7113
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Apr 23, 2026
c0463a7
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Apr 24, 2026
bc57d80
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Apr 27, 2026
1176c5f
Adding datapipe tests for new functionality for mesh datapipe loader
coreyjadams Apr 27, 2026
698989e
Trying to close down github comments
coreyjadams Apr 27, 2026
b1fdccb
Use apply instead of _map_meshes
coreyjadams Apr 27, 2026
13f38b6
Make sure poisson subsampling has no duplicates if replacement=false
coreyjadams Apr 27, 2026
f9281c2
merging
coreyjadams Apr 27, 2026
763a6b1
Update comments to .pmsh or .pdmsh instead of .pt for physicsnemo dat…
coreyjadams Apr 27, 2026
73559db
Migrate generators ad distributions in transforms.base too
coreyjadams Apr 27, 2026
61227c5
Add tests for distribution and generator migration
coreyjadams Apr 27, 2026
32c611a
Update rmse to relative mse naming, and make sure huber is default in…
coreyjadams Apr 27, 2026
bcbaf6e
Fix DDP bug with drop last, and consolidate data paths to unified loc…
coreyjadams Apr 27, 2026
3bbba4a
Use match-case for loud and explicit failure, and default to uniform,…
coreyjadams Apr 27, 2026
43c59ed
Move re-dimensionalization to utils until inference script is added i…
coreyjadams Apr 27, 2026
964d858
Use a simpler parametrization to create random rotation matrices
coreyjadams Apr 27, 2026
4c0f447
undo uv.lock changes
coreyjadams Apr 27, 2026
8484718
Revert uv.lock to main
coreyjadams Apr 27, 2026
13c39fd
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Apr 27, 2026
00f7c8b
Add ruff corrections
coreyjadams Apr 27, 2026
b8a3d79
Update change log and fix loss function.
coreyjadams Apr 28, 2026
1a5e33d
Merge branch 'main' into pnm_mesh_datapipes
coreyjadams Apr 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
291 changes: 291 additions & 0 deletions AGENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
We're working on adding support for physicsnemo Mesh objects to datapipes. this needs to be supported in a couple ways.
Comment thread
coreyjadams marked this conversation as resolved.
Outdated

First, we'll support reading mesh objects directly, write off disk, and passing
them instead of tensordicts (since they are, really, a class of tensordicts).
I want to be careful here that we compose transforms properly ... only transforms
meant to consume a mesh should work with meshes.

So, we will need a special organization layer of datapipes to handle mesh
specific objects in the datapipes, I think. And then we will need some transforms.
I think we will need both generic transforms, as well as a series of augmentations,
which are on-the-fly style transforms that are randomizations. These should be
separate somehow from decimations.

I'm going to be working with several key datasets as "benchmark" datasets and
I'll be updating this file as I go with the schema. So continue to revisit
this file for information.


Here is a view of the DrivaerML file structure:

/lustre/fsw/portfolios/coreai/projects/coreai_modulus_cae/datasets/drivaer_aws/drivaer_data_pnm_mesh/run_1/
├── boundary_1.vtp.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   ├── CpMeanTrim.memmap
│   │   ├── meta.json
│   │   ├── pMeanTrim.memmap
│   │   ├── pPrime2MeanTrim.memmap
│   │   └── wallShearStressMeanTrim.memmap
│   ├── cells.memmap
│   ├── global_data
│   │   ├── meta.json
│   │   └── TimeValue.memmap
│   ├── meta.json
│   ├── point_data
│   │   └── meta.json
│   └── points.memmap
├── drivaer_1_single_solid.stl.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   └── meta.json
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   └── meta.json
│   └── points.memmap
├── drivaer_1.stl.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   └── meta.json
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   └── meta.json
│   └── points.memmap
└── volume_1.vtu.pt
├── meta.json
└── _tensordict
├── _cache
│   ├── cell
│   │   └── meta.json
│   ├── meta.json
│   └── point
│   └── meta.json
├── cell_data
│   └── meta.json
├── global_data
│   ├── meta.json
│   └── TimeValue.memmap
├── meta.json
├── point_data
│   ├── CpMeanTrim.memmap
│   ├── CptMeanTrim.memmap
│   ├── magUMeanNormTrim.memmap
│   ├── meta.json
│   ├── microDragMeanTrim.memmap
│   ├── nutMeanTrim.memmap
│   ├── pMeanTrim.memmap
│   ├── pPrime2MeanTrim.memmap
│   ├── turbulenceProperties:RMeanTrim.memmap
│   ├── UMeanTrim.memmap
│   └── UPrime2MeanTrim.memmap
└── points.memmap

32 directories, 55 files


Here is a view of a SHIFT-SUV "Fastback" file:

⬢ [podman] ❯ tree $GROUP_LUSTRE/datasets/shift_suv_pnm_mesh/run_00002_fastback/
/lustre/fsw/portfolios/coreai/projects/coreai_modulus_cae/datasets/shift_suv_pnm_mesh/run_00002_fastback/
├── merged_surfaces_filled.stl.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   └── meta.json
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   └── meta.json
│   └── points.memmap
├── merged_surfaces.stl.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   └── meta.json
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   └── meta.json
│   └── points.memmap
├── merged_surfaces.vtp.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   ├── meta.json
│   │   ├── Normals.memmap
│   │   ├── pressure_average.memmap
│   │   ├── pressure.memmap
│   │   ├── vtkOriginalCellIds.memmap
│   │   ├── wall_shear_stress_average.memmap
│   │   └── wall_shear_stress.memmap
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   ├── meta.json
│   │   ├── Normals.memmap
│   │   └── vtkOriginalPointIds.memmap
│   └── points.memmap
└── merged_volumes.vtu.pt
├── meta.json
└── _tensordict
├── _cache
│   ├── cell
│   │   └── meta.json
│   ├── meta.json
│   └── point
│   └── meta.json
├── cell_data
│   └── meta.json
├── global_data
│   └── meta.json
├── meta.json
├── point_data
│   ├── meta.json
│   ├── pressure_average.memmap
│   ├── pressure.memmap
│   ├── velocity_average.memmap
│   └── velocity.memmap
└── points.memmap

32 directories, 51 files

While here is a SHIFT-SUV "Estate" file:

⬢ [podman] ❯ tree $GROUP_LUSTRE/datasets/shift_suv_pnm_mesh/run_00004_estate/
/lustre/fsw/portfolios/coreai/projects/coreai_modulus_cae/datasets/shift_suv_pnm_mesh/run_00004_estate/
├── merged_surfaces_filled.stl.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   └── meta.json
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   └── meta.json
│   └── points.memmap
├── merged_surfaces.stl.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   └── meta.json
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   └── meta.json
│   └── points.memmap
├── merged_surfaces.vtp.pt
│   ├── meta.json
│   └── _tensordict
│   ├── _cache
│   │   ├── cell
│   │   │   └── meta.json
│   │   ├── meta.json
│   │   └── point
│   │   └── meta.json
│   ├── cell_data
│   │   ├── meta.json
│   │   ├── Normals.memmap
│   │   ├── pressure_average.memmap
│   │   ├── pressure.memmap
│   │   ├── vtkOriginalCellIds.memmap
│   │   ├── wall_shear_stress_average.memmap
│   │   └── wall_shear_stress.memmap
│   ├── cells.memmap
│   ├── global_data
│   │   └── meta.json
│   ├── meta.json
│   ├── point_data
│   │   ├── meta.json
│   │   ├── Normals.memmap
│   │   └── vtkOriginalPointIds.memmap
│   └── points.memmap
└── merged_volumes.vtu.pt
├── meta.json
└── _tensordict
├── _cache
│   ├── cell
│   │   └── meta.json
│   ├── meta.json
│   └── point
│   └── meta.json
├── cell_data
│   └── meta.json
├── global_data
│   └── meta.json
├── meta.json
├── point_data
│   ├── meta.json
│   ├── pressure_average.memmap
│   ├── pressure.memmap
│   ├── velocity_average.memmap
│   └── velocity.memmap
└── points.memmap

32 directories, 51 files
Loading
Loading