Ferrite-FEM / Ferrite-FEM/FerriteInterpolations.jl

Upstream (Ferrite): general per-cell DOF transformations (Kirby)

Aperta
#2 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
upstream
Lingua principale
Julia
Stelle
7
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Several elements have DOFs whose physical meaning depends on the cell geometry (derivative DOFs, normal-derivative DOFs, tangential moments under the contravariant Piola map, ...). The physical DOFs relate to the reference DOFs by a cell-dependent matrix M(J), and since the DOFs are shared between neighboring cells the transformation must be applied consistently across the mesh. Ferrite's orientation machinery (`adjust_dofs_during_distribution` + `get_direction`'s ±1) cannot express this; upstream support for general DOF transformations is needed (R. Kirby, *A general approach to transforming finite elements*, SMAI-JCM 2018).

Notes:
- For elements whose DOFs are all cell-local this is already expressible in this package (see `TaylorMapping` in `src/taylor.jl`) — the blocker is cross-cell coordination.
- A lighter special case would unblock scalar TNT alone: sign-aware edge-DOF distribution for scalar elements (edge moments with odd weights flip sign under edge reversal).
- Also limits Radau to the interval: its asymmetric edge points on quads/hexes need orientation-dependent transformations.

Upstream WIP: https://github.com/Ferrite-FEM/Ferrite.jl/pull/1391 (restructured 2026-08: now separates the mapping F from the DOF transformation M along the lines of the design notes below — a `dof_transformation(ip)` trait plus an `apply_dof_transformation!` stage in `reinit!` after `apply_mapping!`, applied uniformly to values/gradients/hessians). Ships only diagonal M (cubic Hermite on `RefLine`, affine 1D, per-dof Jacobian scaling, orientation via sign(J)), but the trait is openly dispatched like `mapping_type`, so block-M elements (2D/3D Hermite, Morley, Argyris vertex blocks) may become implementable in this package once it lands — the same pattern the Regge experiment proved for the mapping side (#4). Still missing: entity-orientation conventions beyond sign(J) (normal-derivative edge dofs), dense/block M implementations, and consolidating the Piola ±1 signs (`get_direction`) into the transformation stage (acknowledged in the PR as future work).

🤖 Created with [Claude Code](https://claude.com/claude-code)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.