symfem.elements.guzman_neilan

Guzman-Neilan elements on simplices.

This element’s definition appears in https://doi.org/10.1137/17M1153467 (Guzman and Neilan, 2018)

Classes

GuzmanNeilanFirstKind

Guzman-Neilan finite element.

GuzmanNeilanSecondKind

Guzman-Neilan second kind finite element.

Functions

make_piecewise_lagrange(...)

Make the basis functions of a piecewise Lagrange space.

Module Contents

class symfem.elements.guzman_neilan.GuzmanNeilanFirstKind(reference: symfem.references.Reference, order: int)

Bases: symfem.finite_element.CiarletElement

Guzman-Neilan finite element.

property lagrange_subdegree: int
Abstractmethod:

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
Abstractmethod:

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
Abstractmethod:

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
Abstractmethod:

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 = ['Guzman-Neilan first kind', 'Guzman-Neilan']
references = ['triangle', 'tetrahedron']
min_order = 1
max_order
continuity = 'L2'
value_type = 'vector macro'
last_updated = '2025.12'
class symfem.elements.guzman_neilan.GuzmanNeilanSecondKind(reference: symfem.references.Reference, order: int)

Bases: symfem.finite_element.CiarletElement

Guzman-Neilan second kind finite element.

property lagrange_subdegree: int
Abstractmethod:

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
Abstractmethod:

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
Abstractmethod:

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
Abstractmethod:

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 = ['Guzman-Neilan second kind']
references = ['triangle', 'tetrahedron']
min_order = 1
max_order
continuity = 'L2'
value_type = 'vector macro'
last_updated = '2025.12'
symfem.elements.guzman_neilan.make_piecewise_lagrange(sub_cells: list[symfem.geometry.SetOfPoints], cell_name, order: int, zero_on_boundary: bool = False, zero_at_centre: bool = False) list[symfem.piecewise_functions.PiecewiseFunction]

Make the basis functions of a piecewise Lagrange space.

Parameters:
  • sub_cells – A list of vertices of sub cells

  • cell_name – The cell type of the sub cells

  • order – The polynomial order

  • zero_in_boundary – Should the functions be zero on the boundary?

  • zero_at_centre – Should the functions be zero at the centre?

Returns:

The basis functions