:py:mod:`symfem.create` ======================= .. py:module:: symfem.create .. autoapi-nested-parse:: Create elements and references. Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: symfem.create.add_element symfem.create.create_reference symfem.create.create_element symfem.create._order_is_allowed Attributes ~~~~~~~~~~ .. autoapisummary:: symfem.create._folder symfem.create._elementmap symfem.create._elementlist symfem.create._fname .. py:data:: _folder .. py:data:: _elementmap :type: Dict[str, Dict[str, Type]] .. py:data:: _elementlist :type: List[Type] :value: [] .. py:function:: add_element(element_class: Type) Add an element to Symfem. :param element_class: The class defining the element. .. py:data:: _fname .. py:function:: create_reference(cell_type: str, vertices: Optional[symfem.geometry.SetOfPointsInput] = None) -> symfem.references.Reference Make a reference cell. :param cell_type: The reference cell type. Supported values: point, interval, triangle, quadrilateral, tetrahedron, hexahedron, prism, pyramid, dual polygon(number_of_triangles) :param vertices: The vertices of the reference. .. py:function:: create_element(cell_type: str, element_type: str, order: int, vertices: Optional[symfem.geometry.SetOfPointsInput] = None, **kwargs: Any) -> symfem.finite_element.FiniteElement Make a finite element. :param cell_type: The reference cell type. Supported values: point, interval, triangle, quadrilateral, tetrahedron, hexahedron, prism, pyramid, dual polygon(number_of_triangles) :param 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 :param order: The order of the element. :param vertices: The vertices of the reference. .. py:function:: _order_is_allowed(element_class: Type, ref: str, order: int) -> bool Check that an order is valid for an element. :param element_class: The element class :param ref: The reference cell :param order: The polynomial order