Example #1
0
def test_quad_rtcf():
    W0_h = FIAT.Lagrange(UFCInterval(), 1)
    W1_h = FIAT.DiscontinuousLagrange(UFCInterval(), 0)

    W0_v = FIAT.DiscontinuousLagrange(UFCInterval(), 0)
    W0 = FIAT.Hdiv(FIAT.TensorProductElement(W0_h, W0_v))

    W1_v = FIAT.Lagrange(UFCInterval(), 1)
    W1 = FIAT.Hdiv(FIAT.TensorProductElement(W1_h, W1_v))

    elem = FIAT.EnrichedElement(W0, W1)
    assert {0: [0, 1, 2], 1: [0, 1, 3]} == entity_support_dofs(elem, (1, 0))
    assert {0: [0, 2, 3], 1: [1, 2, 3]} == entity_support_dofs(elem, (0, 1))
Example #2
0
def test_prism_hdiv(space, degree, horiz_expected, vert_expected):
    W0_h = FIAT.supported_elements[space](UFCTriangle(), degree)
    W1_h = FIAT.DiscontinuousLagrange(UFCTriangle(), degree - 1)

    W0_v = FIAT.DiscontinuousLagrange(UFCInterval(), degree - 1)
    W0 = FIAT.Hdiv(FIAT.TensorProductElement(W0_h, W0_v))

    W1_v = FIAT.Lagrange(UFCInterval(), degree)
    W1 = FIAT.Hdiv(FIAT.TensorProductElement(W1_h, W1_v))

    elem = FIAT.EnrichedElement(W0, W1)
    assert horiz_expected == entity_support_dofs(elem, (2, 0))
    assert vert_expected == entity_support_dofs(elem, (1, 1))
Example #3
0
 def __init__(self, cell, degree):
     super(DiscontinuousLagrange,
           self).__init__(FIAT.DiscontinuousLagrange(cell, degree))