-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #37 from gridap/develop
GridapSolvers v0.3
- Loading branch information
Showing
144 changed files
with
11,306 additions
and
2,452 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
.vscode | ||
Manifest.toml | ||
LocalPreferences.toml | ||
data |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,11 @@ | ||
name = "GridapSolvers" | ||
uuid = "6d3209ee-5e3c-4db7-a716-942eb12ed534" | ||
authors = ["Santiago Badia <[email protected]>", "Jordi Manyer <[email protected]>", "Alberto F. Martin <[email protected]>", "Javier Principe <[email protected]>"] | ||
version = "0.2.0" | ||
version = "0.3.0" | ||
|
||
[deps] | ||
ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" | ||
AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" | ||
BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" | ||
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" | ||
Gridap = "56d4f2e9-7ea1-5844-9cf6-b9c51ca7ce8e" | ||
GridapDistributed = "f9701e48-63b3-45aa-9a63-9bc6c271f355" | ||
|
@@ -15,17 +16,18 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" | |
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" | ||
PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9" | ||
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" | ||
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" | ||
SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1" | ||
|
||
[compat] | ||
ArgParse = "1" | ||
FillArrays = "0.9, 0.10, 0.11, 0.12, 0.13, 1.0" | ||
Gridap = "0.17.18" | ||
GridapDistributed = "0.3" | ||
Gridap = "0.18" | ||
GridapDistributed = "0.4" | ||
GridapP4est = "0.3" | ||
GridapPETSc = "0.5" | ||
IterativeSolvers = "0.9" | ||
MPI = "0.20" | ||
PartitionedArrays = "0.3" | ||
SparseMatricesCSR = "0.6.7" | ||
julia = "1.7" | ||
|
||
[extras] | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,37 @@ | ||
# GridapSolvers :construction: :construction: :construction: **Work in progress** :construction: :construction: :construction: | ||
# GridapSolvers | ||
|
||
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://gridap.github.io/GridapSolvers.jl/stable/) | ||
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://gridap.github.io/GridapSolvers.jl/dev/) | ||
[![Build Status](https://github.com/gridap/GridapSolvers.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/gridap/GridapSolvers.jl/actions/workflows/CI.yml?query=branch%3Amain) | ||
[![Coverage](https://codecov.io/gh/gridap/GridapSolvers.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/gridap/GridapSolvers.jl) | ||
|
||
This is a work-in-progress repo where we want to develop a computational framework in order to do R&D in multilevel solvers for PDE discretizations. | ||
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. | ||
|
||
## Installation | ||
|
||
GridapSolvers is a registered package in the official [Julia package registry](https://github.com/JuliaRegistries/General). Thus, the installation of Gridap is straight forward using the [Julia's package manager](https://julialang.github.io/Pkg.jl/v1/). 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. | ||
|
||
### 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: | ||
|
||
- [MPI.jl](https://juliaparallel.org/MPI.jl/stable/configuration/) | ||
- [GridapPETSc.jl](https://github.com/gridap/GridapPETSc.jl) | ||
- [GridapP4est.jl](https://github.com/gridap/GridapP4est.jl), and [P4est_wrapper.jl](https://github.com/gridap/p4est_wrapper.jl) |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Manifest.toml | ||
build/ | ||
site/ |
Oops, something went wrong.
58395b5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JuliaRegistrator register()
58395b5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registration pull request created: JuliaRegistries/General/106930
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via: