Repository navigation
Add optional dependencies for elements add add more Ferrite elements - #593
Open
fredrikekre wants to merge 2 commits into
Open
fredrikekre wants to merge 2 commits into
fredrikekre wants to merge 2 commits into
Conversation
Some elements need an additional package on top of the implementation's
own package (e.g. Ferrite.jl elements that live in FerriteInterpolations.jl).
Add a special parameter DEPENDENCIES to the implementation strings in
.def files, e.g.
ferrite:
triangle: Bernstein DEGREES=1:4 DEPENDENCIES=FerriteInterpolations
Like DEGREES and DEGREEMAP it is stripped before the implementation sees
the parameters. The dependencies are collected per element
(Element.implementation_dependencies) and passed to the implementation's
install and example_import methods, so that the install instructions and
the import line of the example snippets include them, and a note is
added to the element's implementation notes. install_implementations.py
loads the elements and installs the dependencies of every implementation,
and Ferrite's verification loads them before creating the interpolation.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add ferrite entries, with DEPENDENCIES=FerriteInterpolations, for the elements implemented in FerriteInterpolations.jl: Bernstein, BDFM, bubble, conforming Crouzeix-Raviart, Crouzeix-Falk, dPc and vector dPc, Gauss-Legendre, Nedelec second kind (Lagrange variant), Radau, Taylor, TNT curl and div, and trimmed serendipity curl and div. dPc on the interval coincides with Ferrite's DiscontinuousLagrange. Ferrite's degree equals DefElement's for all of them. Verification passes for every example within the supported degrees and cells. Not included: enriched Galerkin (its basis is linearly dependent on a single cell, so the verification's full-rank check rejects any implementation), Fortin-Soulie (FerriteInterpolations implements the element as in the original paper, as continuous P2 plus a cell bubble, which the verification cannot compare with symfem's element), and transition (no example is in the supported range). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For Ferrite.jl we decided to put most of the more exotic elements in a separate add-on package, FerriteInterpolations.jl.
First commit introduces the new optional
DEPENDENCIESparameter that is used to generate the code snippets for installation and element instantiation. The second commit make use of this and adds verification to many more Ferrite elements.See commit messages for more details.
Created by 🤖 under my guidance and review.