neuralroms.jl
SNF-ROM: Projection-based nonlinear reduced order modeling with smooth neural fields
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org, scholar.google -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.5%) to scientific vocabulary
Keywords from Contributors
Repository
SNF-ROM: Projection-based nonlinear reduced order modeling with smooth neural fields
Basic Info
Statistics
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
NeuralROMs.jl
This repository implements machine learning (ML) based reduced order models (ROMs). Specifically, we introduce smooth neural field ROM (SNF-ROM) for solving advection dominated PDE problems.
Smooth neural field ROM
SNF-ROM: Projection-based nonlinear reduced order modeling with smooth neural fields
Vedant Puri, Aviral Prakash, Levent Burak Kara, Yongjie Jessica Zhang
Project page / Paper / Code / Slides / Talk
Offline stage
Online stage
Setup and run
Download the code by cloning this Git repo.
```bash $ git clone git@github.com:vpuri3/NeuralROMs.jl.git
$ cd NeuralROMs.jl ```
Start Julia and activate the environment.
bash
$ julia
```julia julia> import Pkg
julia> Pkg.activate(".") # switch environment
julia> Pkg.instantiate() # download environment ```
We show how to run the 1D Advection test case corresponding to Section 6.1 of the paper.
Each test case in Section 6 of the paper has a corresponding directory in experiments_SNFROM/.
julia
julia> include("experiments_SNFROM/advect_fourier1D/datagen_advect1D.jl")
The script solves the 1D advection problem and stores the dataset as a JLD2 binary in
experiments_SNFROM/advect_fourier1D/data_advect/.
To train SNF-ROM, run
julia
julia> include("experiments_SNFROM/advect_fourier1D/snf.jl")
Code Structure
```bash $ tree . -L 1 --filesfirst . CITATION.bib # arXiv paper LICENSE # MIT License Manifest.toml # environment metadata Project.toml # environment spec README.md # this file benchmarks # internal benchmarking scripts docs # documentation (incomplete) examples # playground experiments_SNFROM # experiments in SNF-ROM paper Section 6 figs # figures in SNF-ROM paper src # source code test # test scripts (incomplete)
```
bash
$ tree src/ -L 2 --filesfirst
.
autodiff.jl # AD wrapper for 1-4th order derivatives
metrics.jl # Loss functions
neuralgridmodel.jl # Grid-dependent neural space discretization (e.g., CAE-ROM, POD-ROM)
neuralmodel.jl # Neural field spatial discretization (e.g., C-ROM, SNF-ROM)
NeuralROMs.jl # Main file: declares Julia module and imports relevant packages
nonlinleastsq.jl # Nonlinear least square solve for LSPG and for initializing auto-decode.
optimisers.jl # Modified weight decay optimisers based on Optimisers.jl
pdeproblems.jl # PDE problem definitions du/dt = f(x, u, t, u', ...)
train.jl # Training loop
utils.jl # Miscalleneous utility functions
vis.jl # 1D/2D visualizations
dynamics #
evolve.jl # Logic for dynamics evaluation
timeintegrator.jl # Time integrator object definition
layers #
basic.jl # Basic layer definitions (e.g., PermuteLayer, HyperNet)
encoder_decoder.jl # Encoder-decoder network definitions (auto-decode, CAE, C-ROM, SNF-ROM)
sdf.jl # Layers for 3D shape encoding
operator #
oplayers.jl # Fourier neural operator kernel definitions
transform.jl # Spectral transforms for FNO
bash
$ tree experiments_SNFROM/ -L 1 --filesfirst
experiments_SNFROM/
autodecode.jl # Autodecode-ROM training and inference
cases.jl # Experiment setup
compare.jl # Comparison script
convAE.jl # CAE-ROM training and inference
convINR.jl # C-ROM training and inference
PCA.jl # POD-ROM training and inference
smoothNF.jl # SNF-ROM training and inference
advect_fourier1D # Section 6.1
advect_fourier2D # Section 6.2
burgers_fourier1D # Section 6.3
burgers_fourier2D # Section 6.4
ks_fourier1D # Section 6.5
Citing
bib
@article{puri2025snf,
title={SNF-ROM: Projection-based nonlinear reduced order modeling with smooth neural fields},
author={Puri, Vedant and Prakash, Aviral and Kara, Levent Burak and Zhang, Yongjie Jessica},
journal={Journal of Computational Physics},
pages={113957},
year={2025},
publisher={Elsevier}
}
Owner
- Name: Vedant Puri
- Login: vpuri3
- Kind: user
- Location: Pittsburgh, PA
- Company: Carnegie Mellon University
- Website: https://vpuri3.github.io
- Repositories: 12
- Profile: https://github.com/vpuri3
i write PDE solvers.
GitHub Events
Total
- Push event: 53
- Create event: 1
Last Year
- Push event: 53
- Create event: 1
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Vedant Puri | v****i@g****m | 415 |
| dependabot[bot] | 4****] | 3 |
Issues and Pull Requests
Last synced: over 1 year ago
All Time
- Total issues: 0
- Total pull requests: 4
- Average time to close issues: N/A
- Average time to close pull requests: 30 days
- Total issue authors: 0
- Total pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 3
Past Year
- Issues: 0
- Pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: 25 days
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 2
Top Authors
Issue Authors
Pull Request Authors
- dependabot[bot] (2)
- vpuri3 (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- julia-actions/cache v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-docdeploy v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v2 composite
- JuliaRegistries/TagBot v1 composite