[GSoC 2026] Add Neural Operators (DeepONet and NOMAD) - #72
Open
bitsarebits wants to merge 15 commits into
Open
Conversation
…m. steady and transient complete pipeline test
…not ordered instead of warning.
….jl. Public API documentation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request contains my final work submission for Google Summer of Code 2026.
Project Goals
The goal of this project was to integrate Neural Operators into
GridapROMs.jl, providing surrogate models for high-fidelity parametric finite element solvers in both steady-state and transient settings.What I Did
The implementation integrates two Neural Operator architectures into the
GridapROMs.jlreduction and solver workflow:The implementation includes:
AutoDeepONetandAutoNOMAD, together with support for explicitly specified network architectures.NeuralOpStrategyfor model architecture, training parameters, spatial and temporal subsampling, verbosity, and learning-rate scheduling.branch_sampler, including transformations such as logarithmic scaling and construction of multi-sensor inputs.step_xandstep_tto control the size of the training data for large meshes and transient problems.NeuralRBOperatorfor consistent online inference.update_stats.CosineAnnealingandReduceLROnPlateau.GridapROMssolver and operator abstractions through multiple dispatch.The implementation is organized into dedicated training, solver, scheduler, and logging components in both
RBSteadyandRBTransient.Current Status
The main GSoC scope has been implemented and exercised through integration tests and example workflows.
The implemented API covers the complete offline/online workflow: snapshots are used to train a neural operator, the resulting model and normalization data are stored in a
NeuralRBOperator, and the trained operator can subsequently be used through the standardsolveinterface.Both steady and transient workflows are supported, including transient inference over the full space-time grid.
The examples also include fine-tuning workflows for continual learning and transfer learning, with the corresponding normalization behavior documented in the API.
Follow-up Work
The current implementation provides a foundation for further development. Planned follow-up work includes:
These items are intended as post-GSoC extensions and improvements rather than blockers for the current project scope.
AI Assistance
Gemini was used as a supplementary development tool during the project, primarily for code-related discussion, debugging support, and documentation assistance. The implementation, design decisions, testing, and final integration were carried out and reviewed by me.