-
Notifications
You must be signed in to change notification settings - Fork 104
Moment based reffes #1048
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Moment based reffes #1048
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #1048 +/- ##
==========================================
- Coverage 89.24% 86.79% -2.46%
==========================================
Files 211 231 +20
Lines 26799 28476 +1677
==========================================
+ Hits 23918 24715 +797
- Misses 2881 3761 +880
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
src/ReferenceFEs/ReferenceFEs.jl
Outdated
| export nedelec | ||
| export bezier | ||
| export modalC0 | ||
| export cr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't we name Crouziex-Raviart reffename: crouziex_raviart = CrouziexRaviart() for clarity and consistency with raviart_thomas = RaviartThomas() ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the literature, people just refer to it as "cr" just like "bdm". I would suggest that we should name "raviart_thomas" as "RT" instead, which is how people refer to it in the literature and probably modify "cr" to "CR" and "bdm" to "BDM".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I prefer longer names. CR, RT, ... could mean anything. If you start abbreviating you end up with fortran77 codes...
If a user doesn't know that CR means Crouziex-Raviart, maybe they should not be using it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also: If you don't know what Raviart-Thomas is, you can google it. Going the other direction is not as easy.
- fix @inbounds propagation to prevent bound checks - fix getindex in performence mode
…o moment-based-reffes
[Moment based reffes] Merge master
FEEC 0-form with moment DOFs (integral of scalar trace over faces). Modal/moment variant of lagrangian/serendipity/bezier/modalC0
it didn't make sense to use linear combination of nodes as DOFs of a lagrangian reference FE
FEEC 0-form with moment DOFs (integral of scalar trace over faces). Modal/moment variant of lagrangian/serendipity/bezier/modalC0
it didn't make sense to use linear combination of nodes as DOFs of a lagrangian reference FE
I was initially reluctant to implement this for non scalar valued bases, but then I realized that `MonomialBasis` always implemented `get_orders` for tensor-valued bases, so I updated the doc in function.
…p.jl into moment-based-reffes
[moment-based-reffes] Geometric decomposition on n-cubes, choice of poly basis in Lagrangian and Serendipity FES
- Enable chosing the term of component-wise tensor product polynomial bases - Fixed allocation issue in derivatives evaluations - Generalized their derivatives to basis with tensor-type value having dependent components - enabled return_type to work on linear-combination of PolynomialBasis
following Santi's review
following Santi's review
[Moment based reffes] Improve CompWiseTensorPolyBasis and fix perf regression, minor renamings
So we've been having a look at the current implementation of Raviart-Thomas and Nedelec. It has become clear that the current implementation
Moreover, there has been interest lately in implementing more types of moment-based discretisations like Crouzeix-Raviart.
We believe the best way to solve all these issues at once is to create some extendable machinery to easily create moment-based FEs.
TODOs:
New RefFEs:
Other: Polynomial bases
The solution to the first issue requires extending Jacobi-type polynomial bases. Although it could be done blindly, I think we could try to merge a lot of code together. In the future we might want to have even more basis of polynomials, which would require a lot of copied code.