# 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)