Skip to content

Commit ccaef47

Browse files
committed
Merge branch 'master' of github.com:gridap/GridapDistributed.jl into x86_compatibility
2 parents eac4ab8 + 779c7fa commit ccaef47

42 files changed

Lines changed: 4508 additions & 804 deletions

Some content is hidden

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

.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: 21 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,69 +4,52 @@ on:
44
- pull_request
55
jobs:
66
SequentialTests:
7-
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
7+
name: Serial Tests - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
88
runs-on: ${{ matrix.os }}
99
strategy:
1010
fail-fast: false
1111
matrix:
1212
version:
13-
- '1.9'
13+
- '1.10'
1414
os:
1515
- ubuntu-latest
1616
arch:
1717
- x64
1818
steps:
19-
- uses: actions/checkout@v2
20-
- uses: julia-actions/setup-julia@v1
19+
- uses: actions/checkout@v5
20+
- uses: julia-actions/setup-julia@v2
2121
with:
2222
version: ${{ matrix.version }}
2323
arch: ${{ matrix.arch }}
24-
- uses: actions/cache@v1
25-
env:
26-
cache-name: cache-artifacts
27-
with:
28-
path: ~/.julia/artifacts
29-
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
30-
restore-keys: |
31-
${{ runner.os }}-test-${{ env.cache-name }}-
32-
${{ runner.os }}-test-
33-
${{ runner.os }}-
24+
- uses: julia-actions/cache@v2
3425
- uses: julia-actions/julia-buildpkg@v1
3526
- run: julia --project=. -e 'using Pkg; Pkg.instantiate()'
3627
- run: julia --project=. --color=yes --check-bounds=yes test/sequential/runtests.jl
3728
- uses: julia-actions/julia-processcoverage@v1
38-
- uses: codecov/codecov-action@v1
29+
- uses: codecov/codecov-action@v5
3930
with:
40-
file: lcov.info
31+
verbose: true
32+
token: ${{ secrets.CODECOV_TOKEN }}
33+
flags: sequential
4134
MPITests:
42-
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
35+
name: MPI Tests - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
4336
runs-on: ${{ matrix.os }}
4437
strategy:
4538
fail-fast: false
4639
matrix:
4740
version:
48-
- '1.9'
41+
- '1.10'
4942
os:
5043
- ubuntu-latest
5144
arch:
5245
- x64
5346
steps:
54-
- uses: actions/checkout@v2
55-
- uses: actions/cache@v1
56-
env:
57-
cache-name: cache-artifacts
58-
with:
59-
path: ~/.julia/artifacts
60-
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
61-
restore-keys: |
62-
${{ runner.os }}-test-${{ env.cache-name }}-
63-
${{ runner.os }}-test-
64-
${{ runner.os }}-
65-
- uses: julia-actions/setup-julia@v1
47+
- uses: actions/checkout@v5
48+
- uses: julia-actions/cache@v2
49+
- uses: julia-actions/setup-julia@v2
6650
with:
6751
version: ${{ matrix.version }}
6852
arch: ${{ matrix.arch }}
69-
#- uses: julia-actions/julia-buildpkg@v1
7053
- run: |
7154
julia --project=test/TestApp/ -e '
7255
using Pkg
@@ -75,27 +58,24 @@ jobs:
7558
- run: cd test/TestApp/compile; ./compile.sh
7659
- run: julia --project=test/TestApp/ --color=yes --check-bounds=yes test/mpi/runtests.jl test/TestApp/compile/TestApp.so
7760
- uses: julia-actions/julia-processcoverage@v1
78-
- uses: codecov/codecov-action@v1
61+
- uses: codecov/codecov-action@v5
7962
with:
80-
file: lcov.info
63+
verbose: true
64+
token: ${{ secrets.CODECOV_TOKEN }}
65+
flags: mpi
8166
docs:
8267
name: Documentation
8368
runs-on: ubuntu-latest
8469
steps:
85-
- uses: actions/checkout@v2
86-
- uses: julia-actions/setup-julia@v1
70+
- uses: actions/checkout@v5
71+
- uses: julia-actions/setup-julia@v2
8772
with:
88-
version: '1.8'
73+
version: '1.10'
8974
- run: |
9075
julia --project=docs -e '
9176
using Pkg
9277
Pkg.develop(PackageSpec(path=pwd()))
9378
Pkg.instantiate()'
94-
# - run: |
95-
# julia --project=docs -e '
96-
# using Documenter: doctest
97-
# using Gridap
98-
# doctest(Gridap)'
9979
- run: julia --project=docs docs/make.jl
10080
env:
10181
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

NEWS.md

Lines changed: 85 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,97 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [0.4.0] 2024-04-12
8+
## [0.4.10] - 2025-09-29
9+
10+
### Added
11+
12+
- Added support for multiple ghost layers on cartesian models. Since PR[#182](https://github.com/gridap/GridapDistributed.jl/pull/182).
13+
- Added new way of doing AD for MultiField, where partials are computed separately for each field then merged together. Since PR[#176](https://github.com/gridap/GridapDistributed.jl/pull/176).
14+
15+
### Fixed
16+
17+
- Fixed issue [#177](https://github.com/gridap/GridapDistributed.jl/issues/177) and [#170](https://github.com/gridap/GridapDistributed.jl/issues/170). Since PR[#180](https://github.com/gridap/GridapDistributed.jl/pull/180).
18+
- Fixed issue where calling `Boundary(with_ghost, dmodel)` would return the local processor boundaries (which include the faces at the interface between processors) instead of returning the local part of the global boundary. Since PR[#180](https://github.com/gridap/GridapDistributed.jl/pull/180).
19+
20+
## [0.4.9] - 2025-08-08
21+
22+
### Added
23+
24+
- Added a new framework for redistributing dofs, which is more efficient and flexible than the previous one. Since PR[#179](https://github.com/gridap/GridapDistributed.jl/pull/179).
25+
26+
### Fixed
27+
28+
- Fixed bug when redistributing periodic cartesian models. Since PR[#179](https://github.com/gridap/GridapDistributed.jl/pull/179).
29+
30+
## [0.4.8] - 2025-06-11
31+
32+
### Added
33+
34+
- Added support for Gridap v0.19, with distributed counterparts for the new feaures introduced. This includes support for polytopal meshes, polytopal methods and patch assembly. Since PR[#175](https://github.com/gridap/GridapDistributed.jl/pull/175).
35+
- Added `MacroDiscreteModel`, which gives a global numbering and classification of the interfaces between processors. Since PR[#175](https://github.com/gridap/GridapDistributed.jl/pull/175).
36+
37+
## [0.4.7] - 2025-03-04
38+
39+
### Added
40+
41+
- Extended support for automatic differentiation to multi-field spaces and skeleton triangulations. Since PR[#169](https://github.com/gridap/GridapDistributed.jl/pull/169).
42+
43+
## [0.4.6] - 2024-12-03
44+
45+
### Added
46+
47+
- Added support for automatic differentiation with ForwardDiff. Since PR[#167](https://github.com/gridap/GridapDistributed.jl/pull/167).
48+
- Added ConstantFESpaces. Since PR[#166](https://github.com/gridap/GridapDistributed.jl/pull/166).
49+
50+
## [0.4.5] - 2024-10-08
51+
52+
### Fixed
53+
54+
- Fixed bug in `num_cells` in the case where a `DistributedTriangulation` contained ghost cells. Since PR[#160](https://github.com/gridap/GridapDistributed.jl/pull/160).
55+
- Fixed bug in writevtk when dealing with empty processors. Since PR[#158](https://github.com/gridap/GridapDistributed.jl/pull/158).
56+
57+
## [0.4.4] - 2024-08-14
58+
59+
### Added
60+
61+
- Added kwargs for VTK encoding options. Since PR[#156](https://github.com/gridap/GridapDistributed.jl/pull/156).
62+
- Reimplemented distributed ZeroMeanFESpaces. Since PR[#155](https://github.com/gridap/GridapDistributed.jl/pull/155).
63+
64+
### Fixed
65+
66+
- Fixed distributed interpolators for Vector-Valued FESpaces. Since PR[#152](https://github.com/gridap/GridapDistributed.jl/pull/152).
67+
68+
## [0.4.3] - 2024-07-18
69+
70+
### Added
71+
72+
- Added distributed refinement of unstructured meshes. Since PR[#149](https://github.com/gridap/GridapDistributed.jl/pull/149).
73+
74+
- Added keyword arguments in the signature of the constructor of `DistributedMeasure`. Since PR[#150](https://github.com/gridap/GridapDistributed.jl/pull/150).
75+
76+
- Added DiracDelta in distributed setting. Since PR[#133](https://github.com/gridap/GridapDistributed.jl/pull/133).
77+
78+
## [0.4.2] - 2024-07-4
79+
80+
### Added
81+
82+
- Added uniform anisotropic refinement of distributed cartesian meshes. Since PR[#148](https://github.com/gridap/GridapDistributed.jl/pull/148).
83+
84+
## [0.4.1] - 2024-06-25
85+
86+
### Fixed
87+
88+
- Fixed bug in block-assembly whenever owners of touched dofs were not present in the local portion of the FESpace. Since PR[#147](https://github.com/gridap/GridapDistributed.jl/pull/147).
89+
90+
## [0.4.0] - 2024-04-12
991

1092
### Changed
1193

1294
- `DistributedCellField` now inherits from `CellField`. To accomodate the necessary API, we now save a pointer to the `DistributedTriangulation` where it is defined. This also requires `DistributedSingleFieldFESpace` to save the triangulation. Since PR[#141](https://github.com/gridap/GridapDistributed.jl/pull/141).
1395
- All the distributed `Multifield` cellfield types are now represented by a `DistributedMultiFieldCellField`. Both `DistributedMultiFieldFEFunction` and `DistributedMultiFieldFEBasis` structs have been removed and replaced with constant aliases, which makes it more consistent with single-field types. Since PR[#141](https://github.com/gridap/GridapDistributed.jl/pull/141).
1496
- Major refactor of ODE module. Implementation has been significantly simplified, while increasing the capability of the API. All `TransientDistributedObjects` structs have been removed, and replaced by `DistributedTransientObjects = DistributedObjects{TransientObject}`. Full support for EX/IM/IMEX methods. See Gridap's release for details. Since PR[#141](https://github.com/gridap/GridapDistributed.jl/pull/141).
1597

16-
## [0.3.6] 2024-01-28
98+
## [0.3.6] - 2024-01-28
1799

18100
### Added
19101

@@ -78,7 +160,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
78160

79161
### Fixed
80162

81-
- Added missing parameter to `allocate_jacobian`, needed after Gridap v0.17.18. Since PR [126](https://github.com/gridap/GridapDistributed.jl/pull/126).
163+
- Added missing parameter to `allocate_jacobian`, needed after Gridap v0.17.18. Since PR [126](https://github.com/gridap/GridapDistributed.jl/pull/126).
82164

83165
## [0.2.8] - 2023-07-31
84166

Project.toml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
name = "GridapDistributed"
22
uuid = "f9701e48-63b3-45aa-9a63-9bc6c271f355"
33
authors = ["S. Badia <santiago.badia@monash.edu>", "A. F. Martin <alberto.f.martin@anu.edu.au>", "F. Verdugo <f.verdugo.rojano@vu.nl>"]
4-
version = "0.4.0"
4+
version = "0.4.10"
55

66
[deps]
77
BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
8+
CircularArrays = "7a955b69-7140-5f4e-a0ed-f168c5e2e749"
89
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"
10+
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
911
Gridap = "56d4f2e9-7ea1-5844-9cf6-b9c51ca7ce8e"
1012
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1113
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
@@ -15,10 +17,12 @@ SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1"
1517
WriteVTK = "64499a7a-5c06-52f2-abe2-ccb03c286192"
1618

1719
[compat]
18-
BlockArrays = "0.16.38"
19-
FillArrays = "0.8.4,1"
20-
Gridap = "0.18"
21-
LinearAlgebra = "1.3"
20+
BlockArrays = "1"
21+
CircularArrays = "1.4.0"
22+
FillArrays = "1"
23+
ForwardDiff = "0.10, 1"
24+
Gridap = "0.19.4"
25+
LinearAlgebra = "1"
2226
MPI = "0.16, 0.17, 0.18, 0.19, 0.20"
2327
PartitionedArrays = "0.3.3"
2428
SparseArrays = "1.3"

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,11 @@ The domain is discretized using the parallel Cartesian-like mesh generator built
7373

7474
## Using parallel solvers
7575

76-
`GridapDistributed.jl` is _not_ a library of parallel linear solvers. The linear solver kernel within `GridapDistributed.jl`, defined with the backslash operator `\`, is just a sparse LU solver applied to the global system gathered on a master task (not scalable, but very useful for testing and debug purposes).
76+
`GridapDistributed.jl` is _not_ a library of parallel linear solvers. The linear solver kernel within `GridapDistributed.jl`, defined with the backslash operator `\`, is just a sparse LU solver applied to the global system gathered on a master task (not scalable, but very useful for testing and debug purposes).
7777

78-
We provide the full set of scalable linear and nonlinear solvers in the [PETSc](https://petsc.org/release/) library in [`GridapPETSc.jl`](https://github.com/gridap/GridapPETSc.jl). For an example which combines `GridapDistributed` with `GridapPETSc.jl`, we refer to the following [tutorial](https://gridap.github.io/Tutorials/dev/pages/t016_poisson_distributed/). Additional examples can be found in the `test/` folder of `GridapPETSc`. Other linear solver libraries on top of `GridapDistributed` can be developed in the future.
78+
We provide the full set of scalable linear and nonlinear solvers in the [PETSc](https://petsc.org/release/) library in [`GridapPETSc.jl`](https://github.com/gridap/GridapPETSc.jl). For an example which combines `GridapDistributed` with `GridapPETSc.jl`, we refer to the following [tutorial](https://gridap.github.io/Tutorials/dev/pages/t016_poisson_distributed/). Additional examples can be found in the `test/` folder of `GridapPETSc`.
79+
80+
We also provide native Julia parallel solvers and preconditioners in [`GridapSolvers.jl`](https://github.com/gridap/GridapSolvers.jl).
7981

8082
## Partitioned meshes
8183

docs/src/Adaptivity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
```@autodocs
44
Modules = [GridapDistributed]
5-
Pages = ["Adaptivity.jl"]
5+
Pages = ["Adaptivity.jl","Redistribution.jl"]
66
```

docs/src/Geometry.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,13 @@
33
```@autodocs
44
Modules = [GridapDistributed]
55
Pages = ["Geometry.jl"]
6-
```
6+
```
7+
8+
## MacroDiscreteModels
9+
10+
These are functionalities to select and globally number the interfaces between processors:
11+
12+
```@autodocs
13+
Modules = [GridapDistributed]
14+
Pages = ["MacroDiscreteModels.jl"]
15+
```

0 commit comments

Comments
 (0)