예제 #1
0
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)
                    ]))
            ]))
예제 #2
0
 "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":