Skip to content

Commit

Permalink
Merge branch 'master' into cuda-heat-example-w-quaditer
Browse files Browse the repository at this point in the history
  • Loading branch information
Abdelrahman912 committed Oct 3, 2024
2 parents b87d78b + 9359cfd commit e10e2f6
Show file tree
Hide file tree
Showing 108 changed files with 4,159 additions and 2,755 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/Check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
run: |
using Ferrite, ExplicitImports, Metis, BlockArrays
# Check Ferrite
allow_unanalyzable = (ApplyStrategy, ColoringAlgorithm) # baremodules
allow_unanalyzable = (ColoringAlgorithm,) # baremodules
check_no_implicit_imports(Ferrite; allow_unanalyzable)
check_no_stale_explicit_imports(Ferrite; allow_unanalyzable)
check_all_qualified_accesses_via_owners(Ferrite)
Expand Down
59 changes: 59 additions & 0 deletions .github/workflows/Downstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Based on https://github.com/JuliaDiff/ChainRulesCore.jl/blob/main/.github/workflows/IntegrationTest.yml
name: Downstream

on:
push:
branches: ['master']
tags: ['*']
pull_request:

concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

jobs:
test:
name: ${{ matrix.package.repo }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
julia-version: ['1']
os: ['ubuntu-latest']
package:
# - {user: 'Ferrite-FEM', repo: 'FerriteDistributed.jl'} # Requires more efforts to be updated to 1.0
- {user: 'Ferrite-FEM', repo: 'FerriteGmsh.jl'}
- {user: 'Ferrite-FEM', repo: 'FerriteMeshParser.jl'}
# - {user: 'Ferrite-FEM', repo: 'FerriteViz.jl'} # Requires release
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.julia-version }}
- uses: julia-actions/cache@v2
# - uses: julia-actions/julia-buildpkg@v1
- name: Clone Downstream
uses: actions/checkout@v4
with:
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
path: downstream
- name: Load this and run the downstream tests
shell: julia --project=downstream {0}
run: |
using Pkg
try
# force it to use this PR's version of the package
Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps
Pkg.update()
Pkg.test() # resolver may fail with test time deps
catch err
rethrow() # Currently all packages tested are under Ferrite-FEM control so don't expect breakage
err isa Pkg.Resolve.ResolverError || rethrow()
# If we can't resolve that means this is incompatible by SemVer and this is fine
# It means we marked this as a breaking change, so we don't need to worry about
# Mistakenly introducing a breaking change, as we have intentionally made one
@info "Not compatible with this release. No problem." exception=err
exit(0) # Exit immediately, as a success
end
846 changes: 418 additions & 428 deletions CHANGELOG.md

Large diffs are not rendered by default.

28 changes: 17 additions & 11 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
---
cff-version: 1.2.0
title: "Ferrite.jl"
message: "If you use Ferrite.jl, please cite it using the metadata from this file."
title: Ferrite.jl
message: If you use Ferrite.jl, please cite it using the metadata from this file.
type: software
authors:
- family-names: "Carlsson"
given-names: "Kristoffer"
orcid: "https://orcid.org/0000-0001-9092-3092"
- family-names: "Ekre"
given-names: "Fredrik"
orcid: "https://orcid.org/0000-0003-2476-5406"
- name: "Ferrite.jl contributors"
repository-code: 'https://github.com/Ferrite-FEM/Ferrite.jl'
url: 'https://github.com/Ferrite-FEM/Ferrite.jl'
- family-names: Carlsson
given-names: Kristoffer
orcid: https://orcid.org/0000-0001-9092-3092
- family-names: Ekre
given-names: Fredrik
orcid: https://orcid.org/0000-0003-2476-5406
- name: Ferrite.jl contributors
website: https://github.com/Ferrite-FEM/Ferrite.jl/graphs/contributors
identifiers:
- type: doi
value: 10.5281/zenodo.13862652
description: DOI representing all versions of Ferrite.jl (Zenodo Concept DOI)
repository-code: https://github.com/Ferrite-FEM/Ferrite.jl
url: https://github.com/Ferrite-FEM/Ferrite.jl
license: MIT
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ almost instant feedback in the browser.

## Reporting issues

If you have found a bug or a problem with Ferrite.jl you can open an [issue][new-issue]. Try
If you have found a bug or a problem with Ferrite you can open an [issue][new-issue]. Try
to include as much information about the problem as possible and preferably some code that
can be copy-pasted to reproduce it (see [How to create a Minimal, Reproducible
Example][so-mre]).
Expand Down
8 changes: 6 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "Ferrite"
uuid = "c061ca5d-56c9-439f-9c0e-210fe06d3992"
version = "0.3.14"
version = "1.0.0"

[deps]
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
Expand Down Expand Up @@ -32,11 +32,13 @@ FerriteMetis = "Metis"
[compat]
BlockArrays = "0.16, 1"
EnumX = "1"
ForwardDiff = "0.10"
Metis = "1.3"
NearestNeighbors = "0.4"
OrderedCollections = "1"
Preferences = "1"
Reexport = "1"
StaticArrays = "1"
Tensors = "1.14"
WriteVTK = "1.13"
julia = "1.9"
Expand All @@ -51,12 +53,14 @@ IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
Metis = "2679e427-3c69-5b7f-982b-ece356f1e94b"
NBInclude = "0db19996-df87-5ea3-a455-e3a50d440464"
OhMyThreads = "67456a42-1dca-4109-a031-0a68de7e3ad5"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce"
TaskLocalValues = "ed4db957-447d-4319-bfb6-7fa9ae7ecf34"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"

[targets]
test = ["BlockArrays", "Downloads", "FerriteGmsh", "ForwardDiff", "Gmsh", "IterativeSolvers", "Metis", "Pkg", "NBInclude", "ProgressMeter", "Random", "SHA", "Test", "TimerOutputs", "Logging"]
test = ["BlockArrays", "Downloads", "FerriteGmsh", "ForwardDiff", "Gmsh", "IterativeSolvers", "Metis", "Pkg", "NBInclude", "OhMyThreads", "ProgressMeter", "Random", "SHA", "TaskLocalValues", "Test", "TimerOutputs", "Logging"]
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
</picture>

![Build Status](https://github.com/Ferrite-FEM/Ferrite.jl/workflows/CI/badge.svg?event=push)
[![codecov.io](http://codecov.io/github/Ferrite-FEM/Ferrite.jl/coverage.svg?branch=master)](http://codecov.io/github/Ferrite-FEM/Ferrite.jl?branch=master)
[![codecov.io](https://codecov.io/github/Ferrite-FEM/Ferrite.jl/coverage.svg?branch=master)](https://codecov.io/github/Ferrite-FEM/Ferrite.jl?branch=master)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13862652.svg)](https://doi.org/10.5281/zenodo.13862652)

A finite element toolbox written in Julia.

Expand All @@ -26,10 +27,10 @@ welcome. See [CONTRIBUTING](CONTRIBUTING.md) for more details.

## Questions

If you have questions about Ferrite.jl you're welcome to reach out to us on the [Julia
If you have questions about Ferrite you're welcome to reach out to us on the [Julia
Slack][julia-slack] under `#ferrite-fem` or on [Zulip][julia-zulip] under `#Ferrite.jl`.
Alternatively you can start a [new discussion][gh-discussion] in the discussion forum on the
repository. Feel free to ask us even if you are not sure the problem is with Ferrite.jl.
repository. Feel free to ask us even if you are not sure the problem is with Ferrite.

If you encounter what you think is a bug please report it, see
[CONTRIBUTING.md](CONTRIBUTING.md#reporting-issues) for more information.
Expand All @@ -40,7 +41,7 @@ Please keep in mind that we are part of the Julia community and adhere to the
[Julia Community Standards][standards].

## Related packages
The following registered packages are part of the `Ferrite.jl` ecosystem in addition to Ferrite itself:
The following registered packages are part of the Ferrite ecosystem in addition to Ferrite itself:
* [Tensors.jl][Tensors]: Used throughout Ferrite for efficient tensor manipulation.
* [FerriteViz.jl][FerriteViz]: [Makie.jl][Makie]-based visualization of Ferrite data.
* [FerriteGmsh.jl][FerriteGmsh]: Create, interact with, and import [Gmsh][Gmsh] meshes into Ferrite.
Expand Down
6 changes: 2 additions & 4 deletions benchmark/benchmarks-boundary-conditions.jl
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,10 @@ for spatial_dim ∈ [2]

# Non-symmetric application
M, f = FerriteAssemblyHelper._assemble_mass(dh, cellvalues, false);
DIRICHLET_SUITE["global"]["apply!(M,f,APPLY_TRANSPOSE)"] = @benchmarkable apply!($M, $f, $ch; strategy=$(Ferrite.APPLY_TRANSPOSE));
DIRICHLET_SUITE["global"]["apply!(M,f,APPLY_INPLACE)"] = @benchmarkable apply!($M, $f, $ch; strategy=$(Ferrite.APPLY_INPLACE));
DIRICHLET_SUITE["global"]["apply!(M,f)"] = @benchmarkable apply!($M, $f, $ch);
# Symmetric application
M, f = FerriteAssemblyHelper._assemble_mass(dh, cellvalues, true);
DIRICHLET_SUITE["global"]["apply!(M_sym,f,APPLY_TRANSPOSE)"] = @benchmarkable apply!($M, $f, $ch; strategy=$(Ferrite.APPLY_TRANSPOSE));
DIRICHLET_SUITE["global"]["apply!(M_sym,f,APPLY_INPLACE)"] = @benchmarkable apply!($M, $f, $ch; strategy=$(Ferrite.APPLY_INPLACE));
DIRICHLET_SUITE["global"]["apply!(M_sym,f)"] = @benchmarkable apply!($M, $f, $ch);

DIRICHLET_SUITE["global"]["apply!(f)"] = @benchmarkable apply!($f, $ch);
DIRICHLET_SUITE["global"]["apply_zero!(f)"] = @benchmarkable apply!($f, $ch);
Expand Down
Loading

0 comments on commit e10e2f6

Please sign in to comment.