Skip to content

Commit 4be25ee

Browse files
2 parents aeb522d + 9134b54 commit 4be25ee

146 files changed

Lines changed: 12937 additions & 8479 deletions

File tree

Some content is hidden

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

.git-blame-ignore-revs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
# `pre-commit run --all-files` (https://github.com/Ferrite-FEM/Ferrite.jl/pull/928)
22
68e1ab15bea4618f76b9ed1d850e2ce33375e266
3+
# Apply Runic.jl formatting (https://github.com/Ferrite-FEM/Ferrite.jl/pull/1096)
4+
c50ce06f2261398ecfe6da4578e50baff88cf563

.github/workflows/Check.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,30 @@ jobs:
1010
pre-commit:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@v6
1414
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
15+
env:
16+
# Skip runic-pre-commit since we use runic-action below instead
17+
SKIP: runic
18+
19+
runic:
20+
name: "Runic"
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v6
24+
- uses: julia-actions/setup-julia@v2
25+
with:
26+
version: '1.11'
27+
- uses: julia-actions/cache@v2
28+
- uses: fredrikekre/runic-action@v1
29+
with:
30+
version: "1.4" # Keep version in sync with .pre-commit-config.yaml
1531

1632
explicit-imports:
1733
runs-on: ubuntu-latest
1834
name: "ExplicitImports.jl"
1935
steps:
20-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@v6
2137
# - uses: julia-actions/setup-julia@v2
2238
# with:
2339
# version: '1'

.github/workflows/Documentation.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ on:
66
tags: ['*']
77
jobs:
88
docs:
9-
name: Julia 1.11 - ubuntu-latest
9+
name: Julia 1.12 - ubuntu-latest
1010
runs-on: ubuntu-latest
1111
timeout-minutes: 60
1212
steps:
13-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@v6
1414
- uses: julia-actions/setup-julia@v2
1515
with:
16-
version: '1.11'
16+
version: '1.12'
1717
- uses: julia-actions/cache@v2
1818
- name: Install dependencies
1919
run: julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.precompile()'

.github/workflows/Downstream.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@ jobs:
2626
# - {user: 'Ferrite-FEM', repo: 'FerriteDistributed.jl'} # Requires more efforts to be updated to 1.0
2727
- {user: 'Ferrite-FEM', repo: 'FerriteGmsh.jl'}
2828
- {user: 'Ferrite-FEM', repo: 'FerriteMeshParser.jl'}
29+
- {user: 'Ferrite-FEM', repo: 'FerriteInterfaceElements.jl'}
2930
# - {user: 'Ferrite-FEM', repo: 'FerriteViz.jl'} # Requires release
3031
steps:
31-
- uses: actions/checkout@v4
32+
- uses: actions/checkout@v6
3233
- uses: julia-actions/setup-julia@v2
3334
with:
3435
version: ${{ matrix.julia-version }}
3536
- uses: julia-actions/cache@v2
3637
# - uses: julia-actions/julia-buildpkg@v1
3738
- name: Clone Downstream
38-
uses: actions/checkout@v4
39+
uses: actions/checkout@v6
3940
with:
4041
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
4142
path: downstream

.github/workflows/SpellCheck.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Spell Check
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
typos-check:
7+
name: Spell Check with Typos
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout Actions Repository
11+
uses: actions/checkout@v6
12+
- name: Check spelling
13+
uses: crate-ci/typos@v1.44.0

.github/workflows/Test.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ jobs:
99
name: Julia ${{ matrix.julia-version }} - ${{ matrix.os }}
1010
runs-on: ${{ matrix.os }}
1111
timeout-minutes: 40
12-
continue-on-error: ${{ matrix.julia-version == 'nightly' }}
12+
continue-on-error: ${{ matrix.julia-version == 'pre' }}
1313
strategy:
1414
matrix:
15-
julia-version: ['1.10', '1', 'nightly']
15+
julia-version: ['lts', '1', 'pre']
1616
os: ['ubuntu-latest']
1717
include:
1818
- os: windows-latest
1919
julia-version: '1'
2020
- os: macOS-latest
2121
julia-version: '1'
2222
steps:
23-
- uses: actions/checkout@v4
23+
- uses: actions/checkout@v6
2424
- uses: julia-actions/setup-julia@v2
2525
with:
2626
version: ${{ matrix.julia-version }}
@@ -34,12 +34,14 @@ jobs:
3434
Pkg.add("JET")
3535
Pkg.develop(path = pwd())
3636
include(joinpath(pwd(), "test/jet.jl"))
37-
if: ${{ matrix.os == 'ubuntu-latest' && matrix.julia-version != 'nightly' }}
37+
if: ${{ matrix.os == 'ubuntu-latest' && matrix.julia-version != 'pre' }}
3838
- uses: julia-actions/julia-processcoverage@v1
3939
with:
4040
directories: 'src,ext'
41-
- uses: codecov/codecov-action@v4
41+
- uses: codecov/codecov-action@v5
4242
with:
43-
file: lcov.info
43+
files: lcov.info
44+
plugins: noop
45+
disable_search: true
4446
env:
4547
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ docs/src/examples/
1313
docs/src/tutorials/
1414
docs/src/howto/
1515
docs/src/gallery/
16+
docs/src/topics/downloaded_assets/
1617
docs/src/changelog.md
1718
*.DS_Store
1819
/Manifest.toml

.pre-commit-config.yaml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
repos:
2-
- repo: https://github.com/pre-commit/pre-commit-hooks
3-
rev: v3.2.0
2+
- repo: 'https://github.com/pre-commit/pre-commit-hooks'
3+
rev: v5.0.0
44
hooks:
5-
- id: check-added-large-files
6-
- id: check-case-conflict
7-
- id: check-toml
8-
- id: check-yaml
9-
- id: end-of-file-fixer
10-
- id: mixed-line-ending
11-
- id: trailing-whitespace
5+
- id: check-added-large-files
6+
- id: check-case-conflict
7+
- id: check-toml
8+
- id: check-yaml
9+
- id: end-of-file-fixer
10+
- id: mixed-line-ending
11+
- id: trailing-whitespace
12+
- repo: 'https://github.com/fredrikekre/runic-pre-commit'
13+
rev: v2.0.1
14+
hooks:
15+
- id: runic
16+
additional_dependencies:
17+
- 'Runic@1.4' # Keep version in sync with .github/workflows/Check.yml

.typos.toml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[files]
2+
extend-exclude = ["*.svg", "*.toml"]
3+
4+
[default.extend-words]
5+
ue = "ue"
6+
ba = "ba"
7+
nd = "nd"
8+
9+
[type.qrtables]
10+
extend-glob = ["**/gaussquad_*_table.jl", "**/generate_quadrature.jl"]
11+
12+
[type.qrtables.extend-words]
13+
Methode = "Methode"
14+
Numer = "Numer"
15+
Secrest = "Secrest"
16+
17+
[type.feintro]
18+
extend-glob = ["**/fe_intro.md"]
19+
20+
[type.feintro.extend-words]
21+
Strang = "Strang"

CHANGELOG.md

Lines changed: 97 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,76 @@ 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-
## [Unreleased]
8+
## [Next] - xxxx-xx-xx
9+
10+
## [v1.3.0] - 2026-01-09
11+
12+
### Added
13+
- New function `Ferrite.write_facetset` for exporting facet sets to VTK. ([#1132], [#1259])
14+
15+
### Documentation
16+
- Fix errors in incompressible elasticity tutorial. ([#1251])
17+
- Add utility for downloading meshes (and other assets) for tutorials. ([#1037])
18+
19+
## [v1.2.0] - 2025-11-14
20+
21+
### Added
22+
- Support for directly assembling to `SparseMatrixCSR` (from `SparseMatricesCSR.jl`). ([#864])
23+
- Enhance `generate_grid` to support outputting line meshes embedded in two and three
24+
spatial dimensions. ([#1122], [#1214])
25+
26+
### Fixes
27+
- Fix L2 projection of tensor fields on discontinuous interpolations. ([#1197], [#1198])
28+
- Fix VTK output of tensor data in embedded domains. ([#1212], [#1213])
29+
- Fix VTK nodal output for discontinuous output. ([#1194])
30+
- Fix `facetskeleton` for mixed grids. ([#1223])
31+
- Fix normal vector computation for boundary integration in embedded domains. ([#1226],
32+
[#1235])
33+
- Relax vector input type from `Vector` to `AbstractVector` in `evaluate_at_points!`.
34+
([#1183])
35+
- The result of grid coloring is now not dependent on iteration order of dictionaries and sets. This may change the coloring obtained from `create_coloring`
36+
compared to previous Ferrite versions.
37+
38+
### Documentation updates
39+
- Extended assembly docs with information on how to support direct assembly into new matrix
40+
types. ([#864])
41+
- Add a list of research papers where Ferrite was used for simulations. Please add
42+
your paper! ([#1221])
43+
- Add section on global and local DoF numbering. ([#1089])
44+
- Fix some typos and grammar ([#1210], [#1224], [#1228])
45+
46+
## [v1.1.0] - 2025-05-01
47+
48+
### Added
49+
- New vector interpolations for H(div) and H(curl) spaces (`Nedelec`, `RaviartThomas`,
50+
`BrezziDouglasMarini`). ([#1045],[#1162])
51+
- New boundary condition type, `ProjectedDirichlet`, for H(div) and H(curl) interpolations. ([#1151])
52+
It can be added to a constraint handler the same way as for a regular `Dirichlet`.
53+
- Support for exporting discontinuous fields to VTK. ([#867])
54+
This happens automatically when a DofHandler with a discontinuous field is used
55+
to construct the `VTKGridFile`, but can be requested with the `write_discontinuous`
56+
keyword argument.
57+
58+
### Fixes
59+
- `addboundaryfacetset` has been fixed for mixed grids. ([#1176])
60+
- `evaluate_at_grid_nodes` now respects the precision of the input dof vector. ([#1044])
961

1062
### Removed
11-
- The deprecated third type parameter for interpolations have been removed. Old code which
12-
tries to use three parameters will now throw the somewhat cryptic error:
63+
- The deprecated third type parameter for interpolations has been removed. ([#1083])
64+
Old code which tries to use three parameters will now throw the somewhat cryptic error:
1365
```
1466
julia> Lagrange{2, RefCube, 1}()
1567
ERROR: too many parameters for type
1668
```
17-
([#1083])
69+
70+
### Documentation updates
71+
- A comparison between different assembly strategies have been added to the docs. ([#1063])
72+
- The affine constraints docs have been extended. ([#1146])
73+
74+
### Other
75+
- Ferrite now uses [Runic.jl](https://github.com/fredrikekre/Runic.jl) for code formatting.
76+
([#1096])
77+
- Ferrite now supports `ForwardDiff` v1. ([#1178])
1878

1979
## [v1.0.0] - 2024-09-30
2080

@@ -149,7 +209,7 @@ more discussion).
149209
- ip_function = Lagrange{2, RefTetrahedron, 2}()
150210
- ip_geometry = Lagrange{2, RefTetrahedron, 1}()
151211
- cv = CellScalarValues(qr, ip_function, ip_geometry)
152-
+ ip_function = Lagrange{2, RefTetrahedron, 2}()
212+
+ ip_function = Lagrange{RefTriangle, 2}()
153213
+ cv = CellValues(qr, ip_function)
154214
```
155215
and if you have quadratic (or higher order) elements in the grid you must now pass the
@@ -158,8 +218,8 @@ more discussion).
158218
qr = QuadratureRule(...)
159219
- ip_function = Lagrange{2, RefTetrahedron, 2}()
160220
- cv = CellScalarValues(qr, ip_function)
161-
+ ip_function = Lagrange{2, RefTetrahedron, 2}()
162-
+ ip_geometry = Lagrange{2, RefTetrahedron, 1}()
221+
+ ip_function = Lagrange{RefTriangle, 2}()
222+
+ ip_geometry = Lagrange{RefTriangle, 1}()
163223
+ cv = CellValues(qr, ip_function, ip_geometry)
164224
```
165225

@@ -627,7 +687,7 @@ poking into Ferrite internals:
627687
- Fix grid coloring for cell sets with 0 or 1 cells. ([#600])
628688
### Other improvements
629689
- Documentation improvements:
630-
- Simplications and clarifications to hyperelasticity example. ([#591])
690+
- Simplifications and clarifications to hyperelasticity example. ([#591])
631691
- Remove duplicate docstring entry for `vtk_point_data`. ([#602])
632692
- Update documentation about initial conditions. ([#601], [#604])
633693

@@ -843,6 +903,8 @@ poking into Ferrite internals:
843903
[v0.3.13]: https://github.com/Ferrite-FEM/Ferrite.jl/releases/tag/v0.3.13
844904
[v0.3.14]: https://github.com/Ferrite-FEM/Ferrite.jl/releases/tag/v0.3.14
845905
[v1.0.0]: https://github.com/Ferrite-FEM/Ferrite.jl/releases/tag/v1.0.0
906+
[v1.1.0]: https://github.com/Ferrite-FEM/Ferrite.jl/releases/tag/v1.1.0
907+
[v1.2.0]: https://github.com/Ferrite-FEM/Ferrite.jl/releases/tag/v1.2.0
846908
[#352]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/352
847909
[#363]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/363
848910
[#378]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/378
@@ -1015,6 +1077,8 @@ poking into Ferrite internals:
10151077
[#779]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/779
10161078
[#835]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/835
10171079
[#855]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/855
1080+
[#864]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/864
1081+
[#867]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/867
10181082
[#880]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/880
10191083
[#888]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/888
10201084
[#914]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/914
@@ -1024,6 +1088,31 @@ poking into Ferrite internals:
10241088
[#949]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/949
10251089
[#953]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/953
10261090
[#974]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/974
1091+
[#1044]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1044
1092+
[#1045]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1045
10271093
[#1058]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1058
10281094
[#1059]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1059
1095+
[#1063]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1063
10291096
[#1083]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1083
1097+
[#1089]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1089
1098+
[#1096]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1096
1099+
[#1122]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1122
1100+
[#1146]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1146
1101+
[#1151]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1151
1102+
[#1162]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1162
1103+
[#1176]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1176
1104+
[#1178]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1178
1105+
[#1183]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1183
1106+
[#1194]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1194
1107+
[#1197]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1197
1108+
[#1198]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1198
1109+
[#1210]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1210
1110+
[#1212]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1212
1111+
[#1213]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1213
1112+
[#1214]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1214
1113+
[#1221]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1221
1114+
[#1223]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1223
1115+
[#1224]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1224
1116+
[#1226]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1226
1117+
[#1228]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1228
1118+
[#1235]: https://github.com/Ferrite-FEM/Ferrite.jl/issues/1235

0 commit comments

Comments
 (0)