symfem

Symfem: a symbolic finite element definition library.

Subpackages

Submodules

Package Contents

Functions

add_element(element_class)

Add an element to Symfem.

create_element(→ symfem.finite_element.FiniteElement)

Make a finite element.

create_reference(→ symfem.references.Reference)

Make a reference cell.

Attributes

__version__

__citation__

__github__

__git__

symfem.add_element(element_class: Type)

Add an element to Symfem.

Parameters:

element_class – The class defining the element.

symfem.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_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.__version__ = '2024.1.1'
symfem.__citation__ = 'https://doi.org/10.21105/joss.03556 (Scroggs, 2021)'
symfem.__github__ = 'https://github.com/mscroggs/symfem'
symfem.__git__ = 'https://github.com/mscroggs/symfem.git'