Gridap ecosystem

The Gridap ecosystem has grown over the years, and now includes many packages that vastly extend the capabilities of the base library. We here list the ones that are currently maintained by the Gridap team, as well as external packages maintained by the community.

Note

We would also love to showcase any projects (registered or not) that use Gridap. If you are developper of a project and wish to be listed here, please contact us and we'll be happy to add your project to the list!

Meshing

  • GridapGmsh.jl is our interface to the Gmsh mesh generator. It allows you to create meshes from julia scripts, or import existing meshes in the Gmsh format.

Visualization

Distributed computing

Gridap supports distributed-memory computing through MPI:

  • PartitionedArrays.jl provides distributed algebra interfaces.
  • GridapDistributed.jl extends the Gridap API for distributed computing. This package preserves (almost perfectly) the high-level interface of Gridap, allowing user to almost seamlessly parallelize their code accross multiple machines.

Solvers

Beyond the basic solvers provided by the base library, Gridap has several packages providing advanced solvers for distributed computing:

  • GridapSolvers.jl provides physics-informed solvers and preconditioners for HPC, built fully in Julia. Among other things, it includes:
    • A collection of Krylov solvers
    • An interface to design block preconditioners
    • Geometric Multigrid solvers
  • GridapPETSc.jl is our interface to the PETSc library, which provides a wide range of solvers and preconditioners. These can also be used in conjunction with the block-preconditioners of GridapSolvers.jl.
  • GridapPardiso.jl is our interface to the Pardiso multithreaded solver. A newer interface based on the official package Pardiso.jl is also available as an extension of GridapSolvers.jl.

Embedded methods

Embedded methods are a popular way of dealing with complex geometries. We provide a high order interface for these methods in the GridapEmbedded.jl package. This package allows you to define geometries using functions and level-sets. Support for STL meshes is provides in the satellite package STLCutters.jl.

Adaptive mesh refinement

Gridap provides a high-level expandable API for refining and coarsening meshes, as well as support for AMR. We also provide support for the well-known library p4est through the package GridapP4est.jl, which provides non-conforming highly efficient AMR on parallel distributed memory machines.

Topology optimization

  • GridapTopOpt.jl is a package for topology optimization using level-set methods.

Reduced order methods

  • GridapROM.jl provides tools for the solution of parameterized partial differential equations (PDEs) with reduced order models (ROMs).

Applications

Some repositories providing applications using Gridap:

  • GridapGeosciences.jl, a package to solve geophysical flow problems.
  • GridapMHD.jl, a package for HPC-focussed magneto-hydrodynamics simulations.
  • Mooring.jl, a package for the simulation of mooring lines in offshore applications.
  • HyperFEM.jl, a package for the simulation of multiphysics problems involving multifunctional hyperelastic materials.