symfem.elements.hhj

Hellan-Herrmann-Johnson elements on simplices.

This element’s definition appears in https://arxiv.org/abs/1909.09687 (Arnold, Walker, 2020)

For an alternative construction see (Sinwel, 2009) and sections 4.4.2.2 and 4.4.3.2 https://numa.jku.at/media/filer_public/b7/42/b74263c9-f723-4076-b1b2-c2726126bf32/phd-sinwel.pdf or (Pechstein, Schöberl, 2018) for a more recent version for tetrahedra https://doi.org/10.1007/s00211-017-0933-3

Classes

HellanHerrmannJohnson

A Hellan-Herrmann-Johnson element.

Module Contents

class symfem.elements.hhj.HellanHerrmannJohnson(reference: symfem.references.Reference, order: int, variant: str = 'equispaced')

Bases: symfem.finite_element.CiarletElement

A Hellan-Herrmann-Johnson element.

variant = 'equispaced'
init_kwargs() dict[str, Any]

Return the kwargs used to create this element.

Returns:

Keyword argument dictionary

property lagrange_subdegree: int

Get the Lagrange subdegree of the element.

This is the degree of the highest degree Lagrange space whose polynomial space is a subspace of this element’s polynomial space.

property lagrange_superdegree: int | None

Get the Lagrange superdegree of the element.

This is the degree of the highest degree Lagrange space whose polynomial space is a superspace of this element’s polynomial space.

property polynomial_subdegree: int

Get the polynomial subdegree of the element.

This is the degree of the highest degree complete polynomial space that is a subspace of this element’s polynomial space.

property polynomial_superdegree: int | None

Get the polynomial superdegree of the element.

This is the degree of the highest degree complete polynomial space that is a superspace of this element’s polynomial space.

names = ['Hellan-Herrmann-Johnson', 'HHJ']
references = ['triangle', 'tetrahedron']
min_order = 0
continuity = 'inner H(div)'
value_type = 'symmetric matrix'
last_updated = '2025.12'