Skip to content

Commit 8ddb33a

Browse files
authored
Merge branch 'master' into docs_patch2603
2 parents 6bfee05 + 4eec1a3 commit 8ddb33a

59 files changed

Lines changed: 1449 additions & 877 deletions

Some content is hidden

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

.github/workflows/Changelog.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Taken from https://github.com/JuliaDocs/Documenter.jl/blob/8591fb1c85a9ddc78ea7ae91f43cd4edab9c1252/.github/workflows/Changelog.yml
2+
#
3+
# Enforces the update of a changelog file on every pull request
4+
# Can be skipped with the `skip changelog` label
5+
name: Changelog Update Check
6+
on:
7+
pull_request:
8+
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
9+
10+
jobs:
11+
changelog:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: dangoslen/changelog-enforcer@v3
15+
with:
16+
skipLabels: 'skip changelog'

.github/workflows/Check.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- uses: julia-actions/setup-julia@v2
2525
with:
2626
version: '1.11'
27-
- uses: julia-actions/cache@v2
27+
- uses: julia-actions/cache@v3
2828
- uses: fredrikekre/runic-action@v1
2929
with:
3030
version: "1.4" # Keep version in sync with .pre-commit-config.yaml
@@ -37,7 +37,7 @@ jobs:
3737
# - uses: julia-actions/setup-julia@v2
3838
# with:
3939
# version: '1'
40-
- uses: julia-actions/cache@v2
40+
- uses: julia-actions/cache@v3
4141
- uses: julia-actions/julia-buildpkg@v1
4242
- name: Install dependencies
4343
shell: julia {0}

.github/workflows/Documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- uses: julia-actions/setup-julia@v2
1515
with:
1616
version: '1.12'
17-
- uses: julia-actions/cache@v2
17+
- uses: julia-actions/cache@v3
1818
- name: Install dependencies
1919
run: julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.precompile()'
2020
- name: Build and deploy

.github/workflows/Downstream.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
- uses: julia-actions/setup-julia@v2
3434
with:
3535
version: ${{ matrix.julia-version }}
36-
- uses: julia-actions/cache@v2
36+
- uses: julia-actions/cache@v3
3737
# - uses: julia-actions/julia-buildpkg@v1
3838
- name: Clone Downstream
3939
uses: actions/checkout@v6

.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.45.0

.github/workflows/Test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- uses: julia-actions/setup-julia@v2
2525
with:
2626
version: ${{ matrix.julia-version }}
27-
- uses: julia-actions/cache@v2
27+
- uses: julia-actions/cache@v3
2828
- uses: julia-actions/julia-buildpkg@v1
2929
- uses: julia-actions/julia-runtest@v1
3030
- name: JET tests
@@ -34,11 +34,11 @@ 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@v5
41+
- uses: codecov/codecov-action@v6
4242
with:
4343
files: lcov.info
4444
plugins: noop

.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: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Next] - xxxx-xx-xx
99

10+
## [v1.4.0] - 2026-04-20
11+
12+
### Added
13+
- Add `MultiFieldCellValues` as a `FEValues` object optimized for problems with multiple
14+
fields. ([#872])
15+
- Embedded elements now return mixed tensors
16+
([https://github.com/Ferrite-FEM/Tensors.jl/pull/236]) instead of static arrays.
17+
([#1286])
18+
- `facedof_indices` and `edgedof_indices` are now generated by default. ([#1293])
19+
- Widen interfaces to allow more vector types ([#1252])
20+
- Assembly of rectangular matrices. ([#1279])
21+
22+
### Fixes
23+
- The result of grid coloring is now not dependent on iteration order of dictionaries and
24+
sets. This may change the coloring obtained from `create_coloring` compared to previous
25+
Ferrite versions. ([#1295])
26+
27+
### Performance
28+
- Simplify `InterfaceIterator`. ([#1281])
29+
- The default `allocate_matrix` call has been optimized using specialized code paths.
30+
([#1302])
31+
- Remove redundant views in `InterfaceValues`. ([#1306])
32+
- Optimize `apply!` call on constraint handler. ([#1310])
33+
34+
### Documentation
35+
- Fix typos in the tutorials. ([#865], [#1268], [#1271], [#1278], [#1298], [#1313])
36+
- Replace incorrect `threadid` calls with recommended threading approach in Landau example
37+
([#1294])
38+
39+
### CI
40+
- Add typo checker to CI. ([#865])
41+
- Add changelog check to CI. ([#1321])
42+
- Update actions. ([#1314], [#1315])
43+
1044
## [v1.3.0] - 2026-01-09
1145

1246
### Added
@@ -21,7 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2155
### Added
2256
- Support for directly assembling to `SparseMatrixCSR` (from `SparseMatricesCSR.jl`). ([#864])
2357
- Enhance `generate_grid` to support outputting line meshes embedded in two and three
24-
spatial dimentions. ([#1122], [#1214])
58+
spatial dimensions. ([#1122], [#1214])
2559

2660
### Fixes
2761
- Fix L2 projection of tensor fields on discontinuous interpolations. ([#1197], [#1198])
@@ -36,7 +70,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3670
### Documentation updates
3771
- Extended assembly docs with information on how to support direct assembly into new matrix
3872
types. ([#864])
39-
- Add a list of reserach papers where Ferrite was used for numbeir simulations. Please add
73+
- Add a list of research papers where Ferrite was used for simulations. Please add
4074
your paper! ([#1221])
4175
- Add section on global and local DoF numbering. ([#1089])
4276
- Fix some typos and grammar ([#1210], [#1224], [#1228])
@@ -685,7 +719,7 @@ poking into Ferrite internals:
685719
- Fix grid coloring for cell sets with 0 or 1 cells. ([#600])
686720
### Other improvements
687721
- Documentation improvements:
688-
- Simplications and clarifications to hyperelasticity example. ([#591])
722+
- Simplifications and clarifications to hyperelasticity example. ([#591])
689723
- Remove duplicate docstring entry for `vtk_point_data`. ([#602])
690724
- Update documentation about initial conditions. ([#601], [#604])
691725

CONTRIBUTING.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@ configure pre-commit to run before each commit:
8585
pre-commit install
8686
```
8787

88+
### Spell-checking
89+
Ferrite uses [typos] for spell checking. If you have that installed,
90+
you run it locally with by running `typos` from the top level directory.
91+
To fix mistakes automatically, run `typos -w`, but be careful as e.g. names
92+
and words from other languages might be incorrectly corrected (which is why
93+
it is not included as a [pre-commit] hook). Exceptions should be added to
94+
`.typos.toml`.
95+
8896
[documenter]: https://juliadocs.github.io/Documenter.jl/
8997
[first-contributions]: https://github.com/firstcontributions/first-contributions
9098
[gh-edit-files]: https://docs.github.com/en/repositories/working-with-files/managing-files/editing-files#editing-files-in-another-users-repository
@@ -101,3 +109,4 @@ pre-commit install
101109
[so-mre]: https://stackoverflow.com/help/minimal-reproducible-example
102110
[tim-doc]: https://youtu.be/ZpH1ry8qqfw
103111
[tim-git]: https://youtu.be/cquJ9kPkwR8
112+
[typos]: https://github.com/crate-ci/typos

Project.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "Ferrite"
22
uuid = "c061ca5d-56c9-439f-9c0e-210fe06d3992"
3-
version = "1.3.0"
3+
version = "1.4.0"
44

55
[deps]
66
EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
@@ -11,7 +11,6 @@ OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
1111
Preferences = "21216c6a-2e73-6563-6e65-726566657250"
1212
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
1313
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
14-
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
1514
Tensors = "48a634ad-e948-5137-8d70-aa71f2a747f4"
1615
WriteVTK = "64499a7a-5c06-52f2-abe2-ccb03c286192"
1716

@@ -36,8 +35,7 @@ NearestNeighbors = "0.4"
3635
OrderedCollections = "1"
3736
Preferences = "1"
3837
Reexport = "1"
39-
StaticArrays = "1"
40-
Tensors = "1.14"
38+
Tensors = "1.17"
4139
WriteVTK = "1.13"
4240
julia = "1.10"
4341

@@ -57,9 +55,10 @@ HCubature = "19dc6840-f33b-545b-b366-655c7e3ffd49"
5755
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
5856
SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce"
5957
SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1"
58+
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
6059
TaskLocalValues = "ed4db957-447d-4319-bfb6-7fa9ae7ecf34"
6160
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
6261
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
6362

6463
[targets]
65-
test = ["BlockArrays", "Downloads", "FerriteGmsh", "ForwardDiff", "Gmsh", "IterativeSolvers", "Metis", "NBInclude", "OhMyThreads", "ProgressMeter", "Random", "SHA", "SparseMatricesCSR", "TaskLocalValues", "Test", "TimerOutputs", "Logging", "HCubature"]
64+
test = ["BlockArrays", "Downloads", "FerriteGmsh", "ForwardDiff", "Gmsh", "IterativeSolvers", "Metis", "NBInclude", "OhMyThreads", "ProgressMeter", "Random", "SHA", "SparseMatricesCSR", "StaticArrays", "TaskLocalValues", "Test", "TimerOutputs", "Logging", "HCubature"]

0 commit comments

Comments
 (0)