Add a conforming Arnold-Winther basis

Summary

This merge request adds an implementation of the lowest-order conforming Arnold-Winther finite element for symmetric stresses in two-dimensional elasticity.

The implementation provides:

  • a reference basis generated with Symfem's Dune ordering;
  • vertex values, edge traction moments, and cell moments in the expected Dune local-key order;
  • globally consistent edge orientations based on FaceOrientations;
  • the element-dependent basis transformation described by Aznaran, Farrell, and Kirby;
  • double-contravariant Piola transformations for values and affine divergences;
  • interpolation and continuity tests on one-element, two-element, and refined triangle grids.

Scope and restrictions

The basis currently supports affine triangle grids with dimension == dimensionworld == 2 only.

Non-affine geometries are rejected because their divergence transformation requires derivatives of the geometry Jacobian and their physical degrees of freedom do not yield the constant transformation blocks used here. Embedded surface grids are also rejected: conforming traction and vertex-tensor degrees of freedom would require an explicit transport between neighboring tangent spaces. These extensions should be addressed together with the planned redesign of transformed local finite elements rather than in this merge request.

Basis generation

CodeGeneration_AW.py selects Symfem's dune variant (which is implemented in the fork https://github.com/spraetor/symfem) and verifies the entity, component, and moment ordering before emitting the generated reference basis. The generated formulas are stored in arnoldwintherbasis_inc.hh so building dune-functions does not require Symfem.

Testing

The Arnold-Winther test covers:

  • the Kronecker-delta property of the generated reference element;
  • the transformed physical-element delta property;
  • edge moment numbering under both edge orientations;
  • equality of global indices for shared edge degrees of freedom;
  • consistency of physical edge interpolation;
  • global normal-traction continuity;
  • rejection of non-affine and embedded geometries.
Edited by Simon Praetorius

Merge request reports

Loading