.. _file_mesh_handle_competences.hxx: File competences.hxx ==================== |exhale_lsh| :ref:`Parent directory ` (``mesh_handle``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS Definition of the additional competences/functionalities that can be used for the mesh class. .. contents:: Contents :local: :backlinks: none Definition (``mesh_handle/competences.hxx``) -------------------------------------------- .. toctree:: :maxdepth: 1 program_listing_file_mesh_handle_competences.hxx.rst Detailed Description -------------------- Especially, competences to cache functionalities of elements instead of calculating them each time a function is called are provided. All competences have the same inheritance pattern: We use the CRTP pattern as we may need to access members of the derived class :ref:`exhale_class_classt8__mesh__handle_1_1element`. The :ref:`exhale_struct_structt8__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 the :ref:`exhale_class_classt8__mesh__handle_1_1element` class. Includes -------- - ``array`` (:ref:`file_src_t8_data_t8_element_array_iterator.hxx`) - ``optional`` - ``t8.h`` (:ref:`file_src_t8.h`) - ``t8_eclass.h`` (:ref:`file_src_t8_eclass.h`) - ``t8_types/t8_operators.hxx`` (:ref:`file_src_t8_types_t8_operators.hxx`) - ``t8_types/t8_vec.hxx`` (:ref:`file_src_t8_types_t8_vec.hxx`) - ``vector`` (:ref:`file_src_t8_helper_functions_t8_vector_algorithms.hxx`) Namespaces ---------- - :ref:`namespace_t8_mesh_handle` Classes ------- - :ref:`exhale_struct_structt8__mesh__handle_1_1cache__centroid` - :ref:`exhale_struct_structt8__mesh__handle_1_1cache__vertex__coordinates`