GridapSolvers.jl

GridapSolvers.jl: Scalable multiphysics finite element solvers in Julia - Published in JOSS (2024)

https://github.com/gridap/gridapsolvers.jl

Science Score: 95.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
    Found 12 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    5 of 9 committers (55.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

pdes numerical-methods partial-differential-equations finite-elements gridap distributed mpi parallel parallel-computing mesh

Scientific Fields

Computer Science Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

Solvers and preconditioners for the Gridap ecosystem.

Basic Info
Statistics
  • Stars: 29
  • Watchers: 5
  • Forks: 1
  • Open Issues: 11
  • Releases: 10
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog License

README.md

GridapSolvers

Stable Dev Build Status Coverage DOI DOI

GridapSolvers provides algebraic and non-algebraic solvers for the Gridap ecosystem, designed with High Performance Computing (HPC) in mind.

Solvers follow a modular design, where most blocks can be combined to produce PDE-taylored solvers for a wide range of problems.

(Non-exhaustive) list of features

  • Krylov solvers: We provide a (short) list of Krylov solvers, with full preconditioner support and HPC-first implementation.
  • Block preconditioners: We provide full support for block assembly of multiphysics problems, and a generic API for building block-based preconditioners for block-assembled systems.
  • Multilevel support: We provide a generic API for building multilevel preconditioners.
  • Geometric Multigrid: We provide a full-fledged geometric multigrid solver. Highly scalable adaptivity and redistribution of meshes, provided by p4est through GridapP4est.jl.
  • PETSc interface: Full access to PETSc algebraic solvers, through GridapPETSc.jl, with full interoperability with the rest of the aforementioned solvers.

Documentation and examples

A (hopefully) comprehensive documentation is available here.

A list of examples is available in the documentation. These include some very well known examples such as the Stokes, Incompressible Navier-Stokes and Darcy problems. The featured scripts are available in test/Applications.

An example on how to use the library within an HPC cluster is available in joss_paper/scalability. The included example and drivers are used to generate the scalability results in our JOSS paper.

Installation

GridapSolvers is a registered package in the official Julia package registry. Thus, the installation of GridapSolvers is straight forward using the Julia's package manager. Open the Julia REPL, type ] to enter package mode, and install as follows

julia pkg> add GridapSolvers pkg> build

Building is required to link the external artifacts (e.g., PETSc, p4est) to the Julia environment. Restarting Julia is required after building in order to make the changes take effect.

Using custom binaries

The previous installations steps will setup GridapSolvers to work using Julia's pre-compiled artifacts for MPI, PETSc and p4est. However, you can also link local copies of these libraries. This might be very desirable in clusters, where hardware-specific libraries might be faster/more stable than the ones provided by Julia. To do so, follow the next steps:

Citation

In order to give credit to the GridapSolvers contributors, we simply ask you to cite the Gridap main project as indicated here and the sub-packages you use as indicated in the corresponding repositories. Please, use the reference below in any publication in which you have made use of GridapSolvers:

@article{Manyer2024, doi = {10.21105/joss.07162}, url = {https://doi.org/10.21105/joss.07162}, year = {2024}, publisher = {The Open Journal}, volume = {9}, number = {102}, pages = {7162}, author = {Jordi Manyer and Alberto F. Martín and Santiago Badia}, title = {GridapSolvers.jl: Scalable multiphysics finite element solvers in Julia}, journal = {Journal of Open Source Software} }

Contributing

GridapSolvers is a collaborative project open to contributions. If you want to contribute, please take into account:

  • Before opening a PR with a significant contribution, contact the project administrators by opening an issue describing what you are willing to implement. Wait for feedback from other community members.
  • We adhere to the contribution and code-of-conduct instructions of the Gridap.jl project, available here and here, resp. Please, carefully read and follow the instructions in these files.
  • Open a PR with your contribution.

Want to help? We have issues waiting for help. You can start contributing to the GridapSolvers project by solving some of those issues.

Owner

  • Name: Gridap
  • Login: gridap
  • Kind: organization

Software ecosystem to solve PDEs in Julia

JOSS Publication

GridapSolvers.jl: Scalable multiphysics finite element solvers in Julia
Published
October 05, 2024
Volume 9, Issue 102, Page 7162
Authors
Jordi Manyer ORCID
School of Mathematics, Monash University, Clayton, Victoria, 3800, Australia.
Alberto F. Martín ORCID
School of Computing, Australian National University, Canberra, ACT, 2600, Australia
Santiago Badia ORCID
School of Mathematics, Monash University, Clayton, Victoria, 3800, Australia.
Editor
Patrick Diehl ORCID
Tags
pdes finite elements hpc solvers

GitHub Events

Total
  • Create event: 15
  • Commit comment event: 10
  • Issues event: 6
  • Release event: 2
  • Watch event: 13
  • Delete event: 20
  • Issue comment event: 25
  • Push event: 133
  • Pull request review event: 11
  • Pull request review comment event: 14
  • Pull request event: 34
  • Fork event: 1
Last Year
  • Create event: 15
  • Commit comment event: 10
  • Issues event: 6
  • Release event: 2
  • Watch event: 13
  • Delete event: 20
  • Issue comment event: 25
  • Push event: 133
  • Pull request review event: 11
  • Pull request review comment event: 14
  • Pull request event: 34
  • Fork event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 532
  • Total Committers: 9
  • Avg Commits per committer: 59.111
  • Development Distribution Score (DDS): 0.053
Past Year
  • Commits: 156
  • Committers: 6
  • Avg Commits per committer: 26.0
  • Development Distribution Score (DDS): 0.083
Top Committers
Name Email Commits
JordiManyer j****r@m****u 504
Alberto F. Martin a****n@m****u 12
dependabot[bot] 4****] 5
Shreyas s****2@g****m 4
Daniel S. Katz d****z@i****g 2
CompatHelper Julia c****y@j****g 2
Santiago Badia s****a@m****u 1
Hendrik Ranocha m****l@r****e 1
Jordi Manyer Fuertes (Monash University) j****m@m****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 27
  • Total pull requests: 91
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 8
  • Total pull request authors: 7
  • Average comments per issue: 2.11
  • Average comments per pull request: 0.24
  • Merged pull requests: 57
  • Bot issues: 0
  • Bot pull requests: 40
Past Year
  • Issues: 5
  • Pull requests: 30
  • Average time to close issues: 5 days
  • Average time to close pull requests: 14 days
  • Issue authors: 2
  • Pull request authors: 5
  • Average comments per issue: 4.2
  • Average comments per pull request: 0.43
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 16
Top Authors
Issue Authors
  • JordiManyer (10)
  • amartinhuertas (4)
  • PetrKryslUCSD (4)
  • oriolcg (3)
  • shreyas02 (3)
  • jmartfrut (1)
  • dhrichards (1)
  • JuliaTagBot (1)
Pull Request Authors
  • JordiManyer (48)
  • github-actions[bot] (30)
  • dependabot[bot] (11)
  • shreyas02 (2)
  • danielskatz (2)
  • ranocha (1)
  • amartinhuertas (1)
Top Labels
Issue Labels
enhancement (6) notes (2) bug (1) documentation (1) help wanted (1)
Pull Request Labels
enhancement (13) dependencies (11) github_actions (2) documentation (2) bug (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 49 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 10
juliahub.com: GridapSolvers

Solvers and preconditioners for the Gridap ecosystem.

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 49 Total
Rankings
Dependent repos count: 9.9%
Average: 24.4%
Dependent packages count: 38.9%
Last synced: 4 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-docdeploy v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite