def hdiv_element(cell): if cell == "tet": return finat.RaviartThomas(FIAT.reference_element.UFCTetrahedron(), 3, variant="integral(3)") elif cell == "quad": interval = FIAT.reference_element.UFCInterval() return finat.FlattenedDimensions( finat.EnrichedElement([ finat.HDivElement( finat.TensorProductElement([ finat.GaussLobattoLegendre(interval, 3), finat.GaussLegendre(interval, 3) ])), finat.HDivElement( finat.TensorProductElement([ finat.GaussLegendre(interval, 3), finat.GaussLobattoLegendre(interval, 3) ])) ]))
"Brezzi-Douglas-Marini": finat.BrezziDouglasMarini, "Brezzi-Douglas-Fortin-Marini": finat.BrezziDouglasFortinMarini, "Bubble": finat.Bubble, "FacetBubble": finat.FacetBubble, "Crouzeix-Raviart": finat.CrouzeixRaviart, "Discontinuous Lagrange": finat.DiscontinuousLagrange, "DPC": finat.DPC, "Discontinuous Raviart-Thomas": lambda c, d: finat.DiscontinuousElement(finat.RaviartThomas(c, d)), "Discontinuous Taylor": finat.DiscontinuousTaylor, "Gauss-Legendre": finat.GaussLegendre, "Gauss-Lobatto-Legendre": finat.GaussLobattoLegendre, "HDiv Trace": finat.HDivTrace, "Hellan-Herrmann-Johnson": finat.HellanHerrmannJohnson, "Hermite": finat.Hermite, "Argyris": finat.Argyris, "Morley":