Syntax for finite element spaces

respected sir,

i want syntax for RT_0 element and RT_1 element
i mean i am confused what degree i have to write for RT_0 and RT_1 elements while writing syntax.

Different authors follow different conventions for numbering of Raviart–Thomas spaces. FEniCS follows the same convention as the website DefElement, where the lowest-order Raviart–Thomas element has order k=1. However, in some other references, e.g., the Wikipedia article, the order refers to the degree of the space of polynomials that the divergence operator maps Raviart–Thomas functions to. By that convention, the k=1 case from FEniCS and DefElement would be considered \text{RT}_0.

2 Likes

Following @kamensky explanation, I copy you the code tried with dolfin version 2019.2.0.dev0:

from dolfin import FiniteElement
RT0 = FiniteElement(family='RT', cell='triangle', degree=1)
RT1 = FiniteElement(family='RT', cell='triangle', degree=2)
FiniteElement(family='RT', cell='triangle', degree=0)

which throws an exception from the last statement:

UFLException                              Traceback (most recent call last)
----> 1 FiniteElement(family='RT', cell='triangle', degree=0)

/usr/lib/python3/dist-packages/ufl/finiteelement/finiteelement.py in __init__(self, family, cell, degree, form_degree, quad_scheme, variant)
    151             cell = as_cell(cell)
    152 
--> 153         family, short_name, degree, value_shape, reference_value_shape, sobolev_space, mapping = canonical_element_description(family, cell, degree, form_degree)
    154 
    155         # TODO: Move these to base? Might be better to instead

/usr/lib/python3/dist-packages/ufl/finiteelement/elementlist.py in canonical_element_description(family, cell, order, form_degree)
    455         kmin, kmax = krange
    456         if not (kmin is None or (asarray(order) >= kmin).all()):
--> 457             error('Order "%s" invalid for "%s" finite element.' %
    458                   (order, family))
    459         if not (kmax is None or (asarray(order) <= kmax).all()):

/usr/lib/python3/dist-packages/ufl/log.py in error(self, *message)
    156         "Write error message and raise an exception."
    157         self._log.error(*message)
--> 158         raise self._exception_type(self._format_raw(*message))
    159 
    160     def begin(self, *message):

UFLException: Order "0" invalid for "Raviart-Thomas" finite element.