symfem.create

Create elements and references.

Module Contents

Functions

add_element(element_class)

Add an element to Symfem.

create_reference(→ symfem.references.Reference)

Make a reference cell.

create_element(→ symfem.finite_element.FiniteElement)

Make a finite element.

_order_is_allowed(→ bool)

Check that an order is valid for an element.

Attributes

_folder

_elementmap

_elementlist

_fname

symfem.create._folder
symfem.create._elementmap: Dict[str, Dict[str, Type]]
symfem.create._elementlist: List[Type] = []
symfem.create.add_element(element_class: Type)

Add an element to Symfem.

Parameters:

element_class – The class defining the element.

symfem.create._fname
symfem.create.create_reference(cell_type: str, vertices: symfem.geometry.SetOfPointsInput | None = None) symfem.references.Reference

Make a reference cell.

Parameters:
  • cell_type – The reference cell type. Supported values: point, interval, triangle, quadrilateral, tetrahedron, hexahedron, prism, pyramid, dual polygon(number_of_triangles)

  • vertices – The vertices of the reference.

symfem.create.create_element(cell_type: str, element_type: str, order: int, vertices: symfem.geometry.SetOfPointsInput | None = None, **kwargs: Any) symfem.finite_element.FiniteElement

Make a finite element.

Parameters:
  • cell_type – The reference cell type. Supported values: point, interval, triangle, quadrilateral, tetrahedron, hexahedron, prism, pyramid, dual polygon(number_of_triangles)

  • element_type – The type of the element. Supported values: Lagrange, P, vector Lagrange, vP, matrix Lagrange, symmetric matrix Lagrange, dPc, vector dPc, Crouzeix-Raviart, CR, Crouzeix-Falk, CF, conforming Crouzeix-Raviart, conforming CR, serendipity, S, serendipity Hcurl, Scurl, BDMCE, AAE, serendipity Hdiv, Sdiv, BDMCF, AAF, direct serendipity, Regge, Nedelec, Nedelec1, N1curl, Ncurl, Nedelec2, N2curl, Raviart-Thomas, RT, N1div, Brezzi-Douglas-Marini, BDM, N2div, Q, vector Q, vQ, NCE, RTCE, Qcurl, NCF, RTCF, Qdiv, Morley, Morley-Wang-Xu, MWX, Hermite, Mardal-Tai-Winther, MTW, Argyris, bubble, dual polynomial, dual P, dual, Buffa-Christiansen, BC, rotated Buffa-Christiansen, RBC, Brezzi-Douglas-Fortin-Marini, BDFM, Brezzi-Douglas-Duran-Fortin, BDDF, Hellan-Herrmann-Johnson, HHJ, Arnold-Winther, AW, conforming Arnold-Winther, Bell, Kong-Mulder-Veldhuizen, KMV, Bernstein, Bernstein-Bezier, Hsieh-Clough-Tocher, Clough-Tocher, HCT, CT, reduced Hsieh-Clough-Tocher, rHCT, Taylor, discontinuous Taylor, bubble enriched Lagrange, bubble enriched vector Lagrange, Bogner-Fox-Schmit, BFS, Fortin-Soulie, FS, Bernardi-Raugel, Wu-Xu, transition, Guzman-Neilan, nonconforming Arnold-Winther, nonconforming AW, TScurl, trimmed serendipity Hcurl, TSdiv, trimmed serendipity Hdiv, TNT, tiniest tensor, TNTcurl, tiniest tensor Hcurl, TNTdiv, tiniest tensor Hdiv, Arnold-Boffi-Falk, ABF, Arbogast-Correa, AC, AC full, Arbogast-Correa full, Rannacher-Turek, P1-iso-P2, P2-iso-P1, iso-P2 P1, Huang-Zhang, HZ, enriched Galerkin, EG, enriched vector Galerkin, locking-free enriched Galerkin, LFEG, P1 macro, Alfeld-Sorokina, AS

  • order – The order of the element.

  • vertices – The vertices of the reference.

symfem.create._order_is_allowed(element_class: Type, ref: str, order: int) bool

Check that an order is valid for an element.

Parameters:
  • element_class – The element class

  • ref – The reference cell

  • order – The polynomial order