Ferrite-FEM / Ferrite-FEM/FerriteInterpolations.jl

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

未关闭
#2 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
upstream
主要语言
Julia
星标
7
派生
0
PR 合并指标
30 天内没有已合并 PR

描述

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)

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。