Changes in version 2016.2.0

FIAT 2016.2.0 was released on 2016-11-30.

Summary of changes

  • More elegant edge-based degrees of freedom are used for generalized Regge finite elements. This is a internal change and is not visible to other parts of FEniCS.
  • The name of the mapping for generalized Regge finite element is changed to “double covariant piola” from “pullback as metric”. Geometrically, this mapping is just the pullback of covariant 2-tensor fields in terms of proxy matrix-fields. Because the mapping for 1-forms in FEniCS is currently named “covariant piola”, this mapping for symmetric tensor product of 1-forms is thus called “double covariant piola”. This change causes multiple internal changes downstream in UFL and FFC. But this change should not be visible to the end-user.
  • Added support for the Hellan-Herrmann-Johnson element (symmetric matrix fields with normal-normal continuity in 2D).
  • Add method FiniteElement.is_nodal() for checking element nodality
  • Add NodalEnrichedElement which merges dual bases (nodes) of given elements and orthogonalizes basis for nodality
  • Restructuring finite_element.py with the addition of a non-nodal class FiniteElement and a nodal class CiarletElement. FiniteElement is designed to be used to create elements where, in general, a nodal basis isn’t well-defined. CiarletElement implements the usual nodal abstraction of a finite element.
  • Removing trace.py and trace_hdiv.py with a new implementation of the trace element of an HDiv-conforming element: HDivTrace. It is also mathematically equivalent to the former DiscontinuousLagrangeTrace, that is, the DG field defined only on co-dimension 1 entities.
  • All nodal finite elements inherit from CiarletElement, and the non-nodal TensorProductElement, EnrichedElement and HDivTrace inherit from FiniteElement.

Detailed changes

  • Enable Travis CI on GitHub
  • Add Firedrake quadrilateral cell
  • Add tensor product cell
  • Add facet -> cell coordinate transformation
  • Add Bubble element
  • Add discontinuous Taylor element
  • Add broken element and H(div) trace element
  • Add element restrictions onto mesh entities
  • Add tensor product elements (for tensor product cells)
  • Add H(div) and H(curl) element-modifiers for TPEs
  • Add enriched element, i.e. sum of elements (e.g. for building Mini)
  • Add multidimensional taylor elements
  • Add Gauss Lobatto Legendre elements
  • Finding non-vanishing DoFs on a facets
  • Add tensor product quadrature rule
  • Make regression tests working again after few years
  • Prune modules having only __main__ code including transform_morley, transform_hermite (ff86250820e2b18f7a0df471c97afa87207e9a7d)
  • Remove newdubiner module (b3b120d40748961fdd0727a4e6c62450198d9647, reference removed by cb65a84ac639977b7be04962cc1351481ca66124)
  • Switch from homebrew factorial/gamma to math module (wraps C std lib)