======== Elements ======== Overview ~~~~~~~~ The elements of Muscat (Points, Bars, Square, Triangles, Tetrahedras...) are gathered under an enumeration called **ElementType**. This enum can be found in the file ``ElementsDescription.py/h``. This description itself includes several information for each elements. As each element are represented by a unique number, bit masks are defined to provide more information about each element. .. code-block:: cpp ElementType::Bar_2 & ElementType::MaskP1; // evaluate to true ElementType::Quadrangle_4 & ElementType::MaskP2; // evaluate to false ElementType::Tetrahedron_10 & ElementType::MaskD2; // evaluate to false ElementType::Tetrahedron_4 & ElementType::MaskD3; // evaluate to true .. note:: The name of the elements in the enum is made up with the geometrical support (*example: Triangle*) immediately followed by an '_' and the number of node that compose the given element (*example: 3*). Therefore, several quadratic elements exist for some given geometric support, each differentiated by the number of node (*example: Quadrangle_8 and Quadrangle_9*) Descriptions of the Elements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A data structure mapping an **ElementType** to its **ElementDescription** object exists. This description of each elements involves: - **name**: the element name - **geoSupport**: the geometrical support of this element - **dimension**: the dimensionality (0,1,2,3) - **numberOfNodes**: number of nodes of this element - **linear**: true if the the jacobian matrix is constant in the elemen - **degree**: the higher degree of the polynomial