Skip to content

Commit de0f05d

Browse files
committed
Merge branch 'main' of github.com:gridap/GridapSolvers.jl into extensions
2 parents df11d02 + 8d4dd6a commit de0f05d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1774
-134
lines changed

.github/dependabot.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
2+
version: 2
3+
updates:
4+
- package-ecosystem: "github-actions"
5+
directory: "/" # Location of package manifests
6+
schedule:
7+
interval: "monthly"

.github/workflows/CI.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@ jobs:
2727
arch:
2828
- x64
2929
steps:
30-
- uses: actions/checkout@v2
30+
- uses: actions/checkout@v4
3131
- name: Cache p4est
3232
id: cache-p4est
33-
uses: actions/cache@v2
33+
uses: actions/cache@v4
3434
with:
3535
path: ${{env.P4EST_ROOT_DIR}}
3636
key: ${{ runner.os }}-build-${{ env.P4EST_ROOT_DIR }}-
3737
restore-keys: |
3838
${{ runner.os }}-build-${{ env.P4EST_ROOT_DIR }}-
3939
${{ runner.os }}-build-
4040
${{ runner.os }}-
41-
- uses: julia-actions/setup-julia@v1
41+
- uses: julia-actions/setup-julia@v2
4242
with:
4343
version: ${{ matrix.version }}
4444
arch: ${{ matrix.arch }}
@@ -106,7 +106,7 @@ jobs:
106106
- run: echo $PWD
107107
- run: julia --project=. -e 'using Pkg; Pkg.instantiate(); Pkg.build(); Pkg.precompile()'
108108
- run: julia --project=. --color=yes --check-bounds=yes test/runtests.jl
109-
- uses: codecov/codecov-action@v1
109+
- uses: codecov/codecov-action@v5
110110
with:
111111
file: lcov.info
112112
docs:
@@ -115,8 +115,8 @@ jobs:
115115
permissions:
116116
contents: write
117117
steps:
118-
- uses: actions/checkout@v2
119-
- uses: julia-actions/setup-julia@v1
118+
- uses: actions/checkout@v4
119+
- uses: julia-actions/setup-julia@v2
120120
with:
121121
version: '1'
122122
- uses: julia-actions/julia-buildpkg@v1

.github/workflows/joss.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Joss Paper
2+
on: [push]
3+
4+
jobs:
5+
paper:
6+
runs-on: ubuntu-latest
7+
name: Paper Draft Compilation
8+
steps:
9+
- name: Checkout
10+
uses: actions/checkout@v4
11+
- name: Build draft PDF
12+
uses: openjournals/openjournals-draft-action@master
13+
with:
14+
journal: joss
15+
# This should be the path to the paper within your repo.
16+
paper-path: joss_paper/paper.md
17+
- name: Upload
18+
uses: actions/upload-artifact@v4
19+
with:
20+
name: paper
21+
# This is the output path where Pandoc will write the compiled
22+
# PDF. Note, this should be the same directory as the input
23+
# paper.md
24+
path: joss_paper/paper.pdf

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
.vscode
22
Manifest.toml
33
LocalPreferences.toml
4-
data
4+
data/*

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## Previous versions
9+
10+
A changelog is not maintained for older versions than 0.5.0.

Project.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "GridapSolvers"
22
uuid = "6d3209ee-5e3c-4db7-a716-942eb12ed534"
33
authors = ["Santiago Badia <[email protected]>", "Jordi Manyer <[email protected]>", "Alberto F. Martin <[email protected]>", "Javier Principe <[email protected]>"]
4-
version = "0.4.1"
4+
version = "0.4.2"
55

66
[deps]
77
AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
@@ -30,9 +30,9 @@ IterativeSolversExt = "IterativeSolvers"
3030

3131
[compat]
3232
AbstractTrees = "0.4"
33-
BlockArrays = "0.16"
34-
FillArrays = "0.13, 1"
35-
Gridap = "0.18"
33+
BlockArrays = "1"
34+
FillArrays = "1"
35+
Gridap = "0.18.7"
3636
GridapDistributed = "0.4"
3737
GridapP4est = "0.3"
3838
GridapPETSc = "0.5"

README.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://gridap.github.io/GridapSolvers.jl/dev/)
55
[![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)
66
[![Coverage](https://codecov.io/gh/gridap/GridapSolvers.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/gridap/GridapSolvers.jl)
7-
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13327414.svg)](https://zenodo.org/records/13327414)
7+
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13327414.svg)](https://doi.org/10.5281/zenodo.13327414)
8+
[![DOI](https://joss.theoj.org/papers/10.21105/joss.07162/status.svg)](https://doi.org/10.21105/joss.07162)
89

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

@@ -18,6 +19,14 @@ Solvers follow a modular design, where most blocks can be combined to produce PD
1819
- **Geometric Multigrid**: We provide a full-fledged geometric multigrid solver. Highly scalable adaptivity and redistribution of meshes, provided by `p4est` through `GridapP4est.jl`.
1920
- **PETSc interface**: Full access to PETSc algebraic solvers, through `GridapPETSc.jl`, with full interoperability with the rest of the aforementioned solvers.
2021

22+
## Documentation and examples
23+
24+
A (hopefully) comprehensive documentation is available at [https://gridap.github.io/GridapSolvers.jl/stable/](https://gridap.github.io/GridapSolvers.jl/stable/).
25+
26+
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`.
27+
28+
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](https://doi.org/10.21105/joss.07162).
29+
2130
## Installation
2231

2332
GridapSolvers is a registered package in the official [Julia package registry](https://github.com/JuliaRegistries/General). Thus, the installation of GridapSolvers 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
@@ -36,3 +45,32 @@ The previous installations steps will setup GridapSolvers to work using Julia's
3645
- [MPI.jl](https://juliaparallel.org/MPI.jl/stable/configuration/)
3746
- [GridapPETSc.jl](https://github.com/gridap/GridapPETSc.jl)
3847
- [GridapP4est.jl](https://github.com/gridap/GridapP4est.jl), and [P4est_wrapper.jl](https://github.com/gridap/p4est_wrapper.jl)
48+
49+
## Citation
50+
51+
In order to give credit to the `GridapSolvers` contributors, we simply ask you to cite the `Gridap` main project as indicated [here](https://github.com/gridap/Gridap.jl#how-to-cite-gridap) 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`:
52+
53+
```
54+
@article{Manyer2024,
55+
doi = {10.21105/joss.07162},
56+
url = {https://doi.org/10.21105/joss.07162},
57+
year = {2024},
58+
publisher = {The Open Journal},
59+
volume = {9},
60+
number = {102},
61+
pages = {7162},
62+
author = {Jordi Manyer and Alberto F. Martín and Santiago Badia},
63+
title = {GridapSolvers.jl: Scalable multiphysics finite element solvers in Julia},
64+
journal = {Journal of Open Source Software}
65+
}
66+
```
67+
68+
## Contributing
69+
70+
GridapSolvers is a collaborative project open to contributions. If you want to contribute, please take into account:
71+
72+
- Before opening a PR with a significant contribution, contact the project administrators by [opening an issue](https://github.com/gridap/GridapSolvers.jl/issues/new) describing what you are willing to implement. Wait for feedback from other community members.
73+
- We adhere to the contribution and code-of-conduct instructions of the Gridap.jl project, available [here](https://github.com/gridap/Gridap.jl/blob/master/CONTRIBUTING.md) and [here](https://github.com/gridap/Gridap.jl/blob/master/CODE_OF_CONDUCT.md), resp. Please, carefully read and follow the instructions in these files.
74+
- Open a PR with your contribution.
75+
76+
Want to help? We have [issues waiting for help](https://github.com/gridap/GridapSolvers.jl/labels/help%20wanted). You can start contributing to the GridapSolvers project by solving some of those issues.

docs/src/SolverInterfaces.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ CurrentModule = GridapSolvers.SolverInterfaces
2626
init!
2727
update!
2828
finalize!
29+
set_depth!
2930
print_message
3031
```

ext/GridapP4estExt/GridapP4estExt.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,24 @@ function P4estCartesianModelHierarchy(
3434
return mh
3535
end
3636

37+
function GridapDistributed.DistributedAdaptedDiscreteModel(
38+
model :: GridapP4est.OctreeDistributedDiscreteModel,
39+
parent :: GridapDistributed.DistributedDiscreteModel,
40+
glue :: AbstractArray{<:Gridap.Adaptivity.AdaptivityGlue};
41+
)
42+
GridapDistributed.DistributedAdaptedDiscreteModel(
43+
model.dmodel,parent,glue
44+
)
45+
end
46+
47+
function GridapDistributed.DistributedAdaptedDiscreteModel(
48+
model :: GridapP4est.OctreeDistributedDiscreteModel,
49+
parent :: GridapP4est.OctreeDistributedDiscreteModel,
50+
glue :: AbstractArray{<:Gridap.Adaptivity.AdaptivityGlue};
51+
)
52+
GridapDistributed.DistributedAdaptedDiscreteModel(
53+
model.dmodel,parent.dmodel,glue
54+
)
55+
end
56+
3757
end # module

joss_paper/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
paper.crossref
2+
paper.pdf
3+
demo

0 commit comments

Comments
 (0)