File competences.hxx

Parent directory (mesh_handle)

Definition of the additional competences/functionalities that can be used for Template Class mesh.

Definition (mesh_handle/competences.hxx)

Detailed Description

Especially, competences to cache functionalities of elements instead of calculating them each time a function is called are provided.

for developers or users that want to provide their own competence: All competences have the same inheritance pattern: We use the CRTP pattern as we may need to access members of the derived classes like Template Class element. The Template Struct t8_crtp_operator is used for convenience/clear code (avoid to type a static cast explicitly each time we need functionality of TUnderlying). Especially for the competences to cache functionality, the access of members is not necessary, such that it is not obvious why we use the crtp. For competences that extend the functionality of the element, this is required. We use it for all competences for consistency and compatibility with Template Class element.

We use Template Struct t8_crtp_operator instead of Template Struct t8_crtp_basic to circumvent diamond shaped inheritance pattern in the case that multiple competences are used together. The distinction of the classes is made by the second template parameter of Template Struct t8_crtp_operator.

Includes

Included By

Namespaces

Classes