Skip to content

gridap/GridapROMs.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GridapROMs

This package provides a set of tools for the solution of parameterized partial differential equations (PDEs) with reduced order models (ROMs). The presence of parameters severely impacts the feasibility of running high-fidelity (HF) codes such as the finite element (FE) method, because typically the solution is required for many different values of the parameters. ROMs create surrogate models that approximate the solution manifold on a lower-dimensional manifold. These surrogates provide accurate solutions in a much shorter time and with much fewer computational resources. The library is developed in close collaboration with Gridap.jl.

Documentation
docdev
Citation
DOI
Build Status
CI codecov

Installation

# Type ] to enter package mode
pkg> add GridapROMs

Examples

Before running the following examples, it is necessary to import from file some geometries which can be found here. The file name is models.zip. The geometries must be unzipped and moved to a directory where the numerical experiments are ran. This directory should be placed inside the data directory of the Julia project which is being used to run these experiments. To find this directory, first add the package DrWatson with

# Type ] to enter package mode
pkg> add DrWatson

and call

julia> test_dir = datadir()

Now we can unzip the compressed folder in dir with

julia> model_dir = joinpath(@__DIR__,"docs/src/assets")
# Type ; to enter shell mode
shell> unzip $model_dir/models.zip -d $test_dir

In the following numerical examples, we provide a plot of the convergence errors for a series of tolerances (which determine the accuracy of the method), and a solution plot obtained with a fixed tolerance of 1e-5.

Test 1

Solve a steady elasticity problem with a proper orthogonal decomposition algorithm (POD). The presence of parameters affecting the problem's LHS/RHS are dealt with by employing a discrete empirical interpolation method in matrix form (MDEIM).

julia> include("examples/SteadyElasticityPOD.jl")
Solution Convergence
drawing drawing

Test 2

Solve the same problem, but with a tensor-train (TT) decomposition approach. In particular, we employ the TT-SVD method to compute the reduced approximation subspace, and TT-MDEIM for the system approximation.

julia> include("examples/SteadyElasticityTTSVD.jl")
Solution Convergence
drawing drawing

Test 3

Solve a steady Stokes equation with a POD+MDEIM method.

julia> include("examples/SteadyStokesPOD.jl")
Solution - velocity Solution - pressure Convergence
drawing drawing drawing

Test 4

Moving to transient applications, we first solve a heat equation with a space-time RB-MDEIM method.

julia> include("examples/HeatEquationSTRB.jl")
Solution Convergence
drawing drawing

Test 5

Lastly, we solve a transient Navier-Stokes equation with the same space-time RB method as in Test 4.

julia> include("examples/NStokesTransientSTRB.jl")
Solution - velocity Solution - pressure Convergence
drawing drawing drawing

How to cite ROManifolds

In order to give credit to the ROManifolds contributors, we simply ask you to cite the references below in any publication in which you have made use of the ROManifolds project.

@misc{mueller2025gridapromsjlefficientreducedorder,
      title={GridapROMs.jl: Efficient reduced order modelling in the Julia programming language}, 
      author={Nicholas Mueller and Santiago Badia},
      year={2025},
      eprint={2503.15994},
      archivePrefix={arXiv},
      primaryClass={math.NA},
      url={https://arxiv.org/abs/2503.15994}, 
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages