Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
5bb7d4a
DistributedDiscreteGeometry implementation
zjwegert Jun 7, 2024
1ac42f2
Fix test
zjwegert Jun 7, 2024
643efc2
Missing MPI test call
zjwegert Jun 8, 2024
2c1d835
Include name in DistributedDiscreteGeometry
zjwegert Jun 10, 2024
1b5a490
Added _get_value_at_coords to avoid interpolation
zjwegert Jun 18, 2024
e80c763
Remove unused test
zjwegert Jun 19, 2024
5195d51
added periodic testing, suggests that weak method is likely required …
zjwegert Jun 19, 2024
e0fb298
add dep
zjwegert Jun 19, 2024
67faf83
fix test
zjwegert Jun 19, 2024
82d4597
Revert changes
zjwegert Jun 20, 2024
de2d2bb
tests passing
zjwegert Jun 20, 2024
c9da43d
Added periodic tests
zjwegert Jun 20, 2024
ef1fc9a
Allow propagation of dual numbers in _get_value_...
zjwegert Jun 21, 2024
0fcedea
Adjust to use Gridap.Arrays API
zjwegert Jun 21, 2024
9cabe09
Merge branch 'master' into distributed_discrete_geometry
zjwegert Jul 9, 2024
969d173
Bump new Algoim version
ericneiva Oct 18, 2024
d0b2a93
Update NEWS.md
ericneiva Oct 18, 2024
03e11c8
New GE 0.9.5
ericneiva Oct 18, 2024
ca1256a
Update NEWS.md [skip ci]
ericneiva Oct 18, 2024
100ec34
Merge pull request #97 from gridap/bump_algoim-0-2-2
ericneiva Oct 18, 2024
629f195
Merge pull request #2 from gridap/master
zjwegert Oct 20, 2024
fb3732c
Merge pull request #90 from zjwegert/distributed_discrete_geometry
JordiManyer Nov 11, 2024
5af2a2b
Revised some of the changes
JordiManyer Nov 11, 2024
f04cbcb
Minor
JordiManyer Nov 11, 2024
ec1c4c6
Merge pull request #99 from gridap/distributed
JordiManyer Nov 11, 2024
5d31c82
Update NEWS.md
JordiManyer Nov 11, 2024
3185beb
Started refactoring the distributed code
JordiManyer Nov 14, 2024
1d82808
Added add_ghost_cells and generate_cell_gids for distributed SubFacet…
JordiManyer Nov 14, 2024
946cdc1
Fixed distributed moment-fitted quads (maybe?)
JordiManyer Nov 14, 2024
7eac5af
Fixes
JordiManyer Nov 14, 2024
af3720f
Minor
JordiManyer Nov 14, 2024
392b451
Updated NEWS
JordiManyer Nov 14, 2024
6850b68
Distributed ghost skeleton
zjwegert Nov 25, 2024
2b7e04f
Merge pull request #101 from zjwegert/distributed
JordiManyer Nov 25, 2024
a8bb48d
Minor
JordiManyer Feb 27, 2025
00e38c6
Merge branch 'distributed' of github.com:gridap/GridapEmbedded.jl int…
JordiManyer Feb 27, 2025
c305cfb
Update CI actions
JordiManyer Mar 4, 2025
28d4404
Update x86 CI actions
JordiManyer Mar 4, 2025
921a96c
Added temp dirs
JordiManyer Mar 5, 2025
6adb1c4
Merge pull request #100 from gridap/distributed
JordiManyer Mar 5, 2025
fd4893e
Bump codecov/codecov-action from 1 to 5
dependabot[bot] Mar 5, 2025
7274c83
Swapped LightGraphs for Graphs
JordiManyer Mar 5, 2025
be5d2f7
Bump julia version for x86 tests
JordiManyer Apr 14, 2025
ed64edb
Updated NEWS.md
JordiManyer Apr 14, 2025
a291874
Merge pull request #108 from gridap/graphs
JordiManyer Apr 14, 2025
8b23914
Added compute_active_model for SubFacetTriangulations
JordiManyer Apr 14, 2025
2bf3124
Fixed remove_ghost_cells for empty parts and AppendedTriangulations
JordiManyer Apr 14, 2025
55715ec
Added CutFaceBoundaryTriangulations
JordiManyer Apr 14, 2025
27ae611
Merge branch 'master' of github.com:gridap/GridapEmbedded.jl into geo…
JordiManyer Apr 14, 2025
cb903a4
Minor
JordiManyer Apr 14, 2025
02c9f8a
Added Differentiable triangulations
JordiManyer Apr 14, 2025
92a1c5a
Merge pull request #107 from gridap/dependabot/github_actions/codecov…
JordiManyer Apr 14, 2025
a2f8867
Added Geometrical differentiation tests
JordiManyer Apr 17, 2025
07aee71
Minor
JordiManyer Apr 17, 2025
9c22c37
Started documenting the library
JordiManyer Apr 17, 2025
2977507
Added documentation skeleton
JordiManyer Apr 18, 2025
3a60103
More docs
JordiManyer Apr 18, 2025
56e159f
More docs
JordiManyer Apr 18, 2025
42e77ed
Finished documentation
JordiManyer Apr 18, 2025
e603243
UPdated NEWS.md
JordiManyer Apr 18, 2025
11421bf
Added documentation to the README
JordiManyer Apr 18, 2025
0c59722
Updated Gridap version
JordiManyer Apr 19, 2025
4712641
Bumped version
JordiManyer Apr 19, 2025
86da7ef
Added distributed implementation and tests
JordiManyer Apr 19, 2025
23bea0d
Minor
JordiManyer Apr 19, 2025
224d06b
Minor
JordiManyer Apr 19, 2025
f89f6be
Minor
JordiManyer Apr 19, 2025
2e20ac5
Bugfixes
JordiManyer May 2, 2025
d5ed89e
Minor
JordiManyer May 2, 2025
bbd20ef
Bugfix
JordiManyer May 5, 2025
8ff022a
Minor
JordiManyer May 9, 2025
7e51624
Minor
JordiManyer May 9, 2025
5ff3fb0
Minor
JordiManyer May 16, 2025
e3613f9
Merge pull request #109 from gridap/geometrical-derivatives
JordiManyer May 16, 2025
17a63b9
Minor
JordiManyer Jun 3, 2025
48b66a0
Updated compats
JordiManyer Jun 10, 2025
4183970
Bumped version
JordiManyer Jun 11, 2025
b596a9a
Merge pull request #110 from gridap/polytopal
JordiManyer Jun 11, 2025
747f102
Add missing update_trian! method for multifield
zjwegert Jul 9, 2025
3aea544
minor
zjwegert Jul 9, 2025
3659182
Update NEWS.md
zjwegert Jul 9, 2025
d825d2c
Bump version
zjwegert Jul 9, 2025
85136c4
Fix precompilation
zjwegert Jul 10, 2025
c48a452
Update NEWS.md
zjwegert Jul 10, 2025
96f4d97
Update NEWS.md
zjwegert Jul 10, 2025
19bed4d
Merge pull request #112 from zjwegert/fix-diff_trian-multifield
JordiManyer Jul 10, 2025
59911d6
Setup branch to start dev
ericneiva Jul 14, 2025
3d9a396
Revert "Setup branch to start dev"
ericneiva Jul 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/" # Location of package manifests
schedule:
interval: "monthly"
59 changes: 16 additions & 43 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,22 @@ jobs:
fail-fast: false
matrix:
version:
- '1.8'
- '1.10'
os:
- ubuntu-latest
arch:
- x64
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: actions/cache@v1
env:
cache-name: cache-artifacts
with:
path: ~/.julia/artifacts
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v1
- uses: codecov/codecov-action@v5
with:
file: lcov.info
drivers:
Expand All @@ -42,27 +33,18 @@ jobs:
fail-fast: false
matrix:
version:
- '1.8'
- '1.10'
os:
- ubuntu-latest
arch:
- x64
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: actions/cache@v1
env:
cache-name: cache-artifacts
with:
path: ~/.julia/artifacts
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- run: |
julia --color=yes --project=. --check-bounds=yes --depwarn=error -e '
Expand All @@ -77,27 +59,18 @@ jobs:
fail-fast: false
matrix:
version:
- '1.8'
- '1.10'
os:
- ubuntu-latest
arch:
- x64
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: actions/cache@v1
env:
cache-name: cache-artifacts
with:
path: ~/.julia/artifacts
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- run: |
julia --color=yes --project=. --check-bounds=yes --depwarn=error -e '
Expand All @@ -109,10 +82,10 @@ jobs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: '1.8'
version: '1.10'
- run: |
julia --project=docs -e '
using Pkg
Expand Down
17 changes: 4 additions & 13 deletions .github/workflows/ci_x86.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,17 @@ jobs:
fail-fast: false
matrix:
version:
- '1.8'
- '1.10'
os:
- ubuntu-latest
arch:
- x86
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: actions/cache@v1
env:
cache-name: cache-artifacts
with:
path: ~/.julia/artifacts
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
/docs/build/
/docs/site/
Manifest.toml
LocalPreferences.toml
.vscode/
*.swp
34 changes: 33 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,44 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [0.9.8] - 2025-7-10

### Added

- Added missing update_trian! method for MultiField. Since PR[#112](https://github.com/gridap/GridapEmbedded.jl/pull/112).

### Fixed

- Fixed failed precompilation due to Gridap v0.19.2. Since PR[#112](https://github.com/gridap/GridapEmbedded.jl/pull/112).

## [0.9.7] - 2025-6-11

### Added

- Added support for Gridap v0.19. Since PR[#110](https://github.com/gridap/GridapEmbedded.jl/pull/110).

## [0.9.6] - 2025-04-19

### Added

- Added support for distributed level-set geometries. Since PR[#99](https://github.com/gridap/GridapEmbedded.jl/pull/99).
- Refactored the distributed code to allow for ghosted/unghosted geometries and triangulations. Since PR[#100](https://github.com/gridap/GridapEmbedded.jl/pull/100).
- Implemented geometrical derivatives. Since PR[#109](https://github.com/gridap/GridapEmbedded.jl/pull/109).
- Added a proper documentation. Since PR[#109](https://github.com/gridap/GridapEmbedded.jl/pull/109).

### Changed

- Swapped `LightGraphs.jl` dependency to `Graphs.jl`, due to the former being deprecated. Since PR[#108](https://github.com/gridap/GridapEmbedded.jl/pull/108).

## [0.9.5] - 2024-10-18

### Added

- Adding `compute_redistribute_weights` and `compute_adaptive_flags` functions for load balancing and adaptive mesh refinement, respectively. Since PR [#95](https://github.com/gridap/GridapEmbedded.jl/pull/95).

### Changed

- Updated to Algoim v0.2.2, which runs on Julia 1.11. Since PR [#97](https://github.com/gridap/GridapEmbedded.jl/pull/97).

## [0.9.4] - 2024-07-09

Expand Down
19 changes: 12 additions & 7 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
name = "GridapEmbedded"
uuid = "8838a6a3-0006-4405-b874-385995508d5d"
authors = ["Francesc Verdugo <f.verdugo.rojano@vu.nl>", "Eric Neiva <eric.neiva@college-de-france.fr>", "Pere Antoni Martorell <pere.antoni.martorell@upc.edu>", "Santiago Badia <santiago.badia@monash.edu>"]
version = "0.9.4"
version = "0.9.8"

[deps]
AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
Algoim = "0eb9048c-21de-4c7a-bfac-056de1940b74"
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
CxxWrap = "1f15a43c-97ca-5a2a-ae31-89f07a497df4"
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
Gridap = "56d4f2e9-7ea1-5844-9cf6-b9c51ca7ce8e"
GridapDistributed = "f9701e48-63b3-45aa-9a63-9bc6c271f355"
LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
MiniQhull = "978d7f02-9e05-4691-894f-ae31a51d76ca"
Expand All @@ -22,20 +23,24 @@ algoimWrapper_jll = "3c43aa7b-5398-51f3-8d75-8f051e6faa4d"

[compat]
AbstractTrees = "0.3.3, 0.4"
Algoim = "0.2"
Algoim = "0.2.2"
Combinatorics = "1"
CxxWrap = "0.14"
CxxWrap = "0.16"
FillArrays = "0.10, 0.11, 0.12, 0.13, 1"
Gridap = "0.17, 0.18"
FiniteDiff = "2.27.0"
ForwardDiff = "0.10.38, 1"
Graphs = "1.12.0"
Gridap = "0.18.12, 0.19"
GridapDistributed = "0.3, 0.4"
LightGraphs = "1.3.3"
MPI = "0.20"
MiniQhull = "0.1.0, 0.2, 0.3, 0.4"
PartitionedArrays = "0.3.4"
julia = "1.3"

[extras]
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]
test = ["Test", "FiniteDiff"]
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

Embedded finite element methods, level set surface descriptions and constructive solid geometry.

[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://gridap.github.io/GridapEmbedded.jl/stable)
[![Build Status](https://github.com/gridap/GridapEmbedded.jl/workflows/CI/badge.svg?branch=master)](https://github.com/gridap/GridapEmbedded.jl/actions?query=workflow%3ACI)
[![Codecov](https://codecov.io/gh/gridap/GridapEmbedded.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/gridap/GridapEmbedded.jl)

Expand Down Expand Up @@ -40,4 +41,3 @@ julia> BimaterialLinElastCutFEM.main(n=4,outputfile="results3")
```

<img src="https://raw.githubusercontent.com/gridap/GridapEmbedded.jl/master/examples/BimaterialLinElastCutFEM/BimaterialLinElastCutFEM_solution.png" width="400">

1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
GridapEmbedded = "8838a6a3-0006-4405-b874-385995508d5d"
27 changes: 19 additions & 8 deletions docs/make.jl
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
using Documenter, GridapEmbedded

pages = [
"Home" => "index.md",
"Constructive Solid Geometry (CSG)" => "CSG.md",
"Embedded Interfaces" => "Interfaces.md",
"Level Set Cutters" => "LevelSetCutters.md",
"Aggregated FEM" => "AggregatedFEM.md",
"Moment-Fitted Quadratures" => "MomentFittedQuadratures.md",
"Geometrical Derivatives" => "GeometricalDerivatives.md",
"Distributed computing" => "Distributed.md",
]

makedocs(;
modules=[GridapEmbedded],
format=Documenter.HTML(),
pages=[
"Home" => "index.md",
],
repo="https://github.com/gridap/GridapEmbedded.jl/blob/{commit}{path}#L{line}",
sitename="GridapEmbedded.jl",
authors="Francesc Verdugo <f.verdugo.rojano@vu.nl>, Eric Neiva <eric.neiva@college-de-france.fr> and Santiago Badia <santiago.badia@monash.edu>",
modules = [GridapEmbedded],
format = Documenter.HTML(
size_threshold=nothing
),
sitename = "GridapEmbedded.jl",
authors = "Francesc Verdugo <f.verdugo.rojano@vu.nl>, Eric Neiva <eric.neiva@college-de-france.fr> and Santiago Badia <santiago.badia@monash.edu>",
pages = pages,
warnonly = false,
)

deploydocs(;
Expand Down
16 changes: 16 additions & 0 deletions docs/src/AggregatedFEM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

# Aggregated FEM

```@meta
CurrentModule = GridapEmbedded.AgFEM
```

```@autodocs
Modules = [AgFEM,]
Order = [:type, :constant, :macro, :function]
Pages = [
"/AgFEM.jl",
"/AgFEMSpaces.jl",
"CellAggregation.jl"
]
```
15 changes: 15 additions & 0 deletions docs/src/CSG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

# Constructive Solid Geometry (CSG)

```@meta
CurrentModule = GridapEmbedded.CSG
```

```@autodocs
Modules = [CSG,]
Order = [:type, :constant, :macro, :function]
Pages = [
"/Nodes.jl",
"/Geometries.jl",
]
```
23 changes: 23 additions & 0 deletions docs/src/Distributed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

# Distributed computing

```@meta
CurrentModule = GridapEmbedded.Distributed
```

We support distributed computing through [GridapDistributed.jl](https://github.com/gridap/GridapDistributed.jl). As per usual, we design our libraries so that the high-level API is unchanged when using distributed computing. This means that for most users, the changes to your driver will be minimal.

The following features are currently supported:

- Level-Set Cutters
- STL Cutters

The folowing features are not yet supported:

- Aggregated FEM
- Moment-Fitted Quadratures

```@autodocs
Modules = [Distributed,]
Order = [:type, :constant, :macro, :function]
```
33 changes: 33 additions & 0 deletions docs/src/GeometricalDerivatives.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Geometrical Derivatives

```@meta
CurrentModule = GridapEmbedded
```

The geometrical differentiation capabilities are based on the following work:

!!! note "Reference"
"Level-set topology optimisation with unfitted finite elements and automatic shape differentiation",
by Z. J. Wegert, J. Manyer, C. Mallon, S. Badia, V. J. Challis (2025)

To see examples of usage, please refer to the tests in `test/LevelSetCuttersTests/GeometricalDifferentiationTests.jl`.

## Discretize then differentiate

```@autodocs
Modules = [GridapEmbedded.Interfaces]
Order = [:type, :constant, :macro, :function]
Pages = [
"/CutFaceBoundaryTriangulations.jl",
]
```

## Autodiff

```@autodocs
Modules = [GridapEmbedded.LevelSetCutters]
Order = [:type, :constant, :macro, :function]
Pages = [
"/DifferentiableTriangulations.jl",
]
```
Loading
Loading