symfem.elements.tnt

TiNiest Tensor product (TNT) elements.

These elements’ definitions appear in https://doi.org/10.1090/S0025-5718-2013-02729-9 (Cockburn, Qiu, 2013)

Classes

TNT

TiNiest Tensor scalar finite element.

TNTcurl

TiNiest Tensor Hcurl finite element.

TNTdiv

TiNiest Tensor Hdiv finite element.

Functions

p(→ symfem.functions.ScalarFunction)

Return the kth Legendre polynomial.

b(→ symfem.functions.ScalarFunction)

Return the function B_k.

Module Contents

symfem.elements.tnt.p(k: int, v: sympy.core.symbol.Symbol) symfem.functions.ScalarFunction

Return the kth Legendre polynomial.

Parameters:
  • k – k

  • v – The variable to use

Returns:

The kth Legendre polynomial

symfem.elements.tnt.b(k: int, v: sympy.core.symbol.Symbol) symfem.functions.ScalarFunction

Return the function B_k.

This function is defined on page 4 (606) of https://doi.org/10.1090/S0025-5718-2013-02729-9 (Cockburn, Qiu, 2013).

Parameters:
  • k – k

  • v – The variable to use

Returns:

The function B_k

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

Bases: symfem.finite_element.CiarletElement

TiNiest Tensor scalar finite 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 = ['tiniest tensor', 'TNT']
references = ['quadrilateral', 'hexahedron']
min_order = 2
continuity = 'C0'
value_type = 'scalar'
last_updated = '2025.03'
class symfem.elements.tnt.TNTcurl(reference: symfem.references.Reference, order: int, variant: str = 'equispaced')

Bases: symfem.finite_element.CiarletElement

TiNiest Tensor Hcurl finite 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 = ['tiniest tensor Hcurl', 'TNTcurl']
references = ['quadrilateral', 'hexahedron']
min_order = 1
continuity = 'H(curl)'
value_type = 'vector'
last_updated = '2025.10'
class symfem.elements.tnt.TNTdiv(reference: symfem.references.Reference, order: int, variant: str = 'equispaced')

Bases: symfem.finite_element.CiarletElement

TiNiest Tensor Hdiv finite 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 = ['tiniest tensor Hdiv', 'TNTdiv']
references = ['quadrilateral', 'hexahedron']
min_order = 1
continuity = 'H(div)'
value_type = 'vector'
last_updated = '2025.10'