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)

Module Contents

Classes

GuzmanNeilan

Guzman-Neilan Hdiv finite element.

Functions

make_piecewise_lagrange(...)

Make the basis functions of a piecewise Lagrange space.

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

Bases: symfem.finite_element.CiarletElement

Guzman-Neilan Hdiv finite element.

names = ['Guzman-Neilan']
references = ['triangle', 'tetrahedron']
min_order = 1
max_order
continuity = 'H(div)'
last_updated = '2023.06'
_make_polyset_triangle(reference: symfem.references.Reference, order: int) List[symfem.functions.FunctionInput]

Make the polyset for a triangle.

Parameters:
  • reference – The reference cell

  • order – The polynomial order

Returns:

The polynomial set

_make_polyset_tetrahedron(reference: symfem.references.Reference, order: int) List[symfem.functions.FunctionInput]

Make the polyset for a tetrahedron.

Parameters:
  • reference – The reference cell

  • order – The polynomial order

Returns:

The polynomial set

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