SpECTRE Documentation Coverage Report
Current view: top level - Parallel/Protocols - ArrayElementsAllocator.hpp Hit Total Coverage
Commit: 298623cdd84dec4702f71d2fbf9fd1e7d4ee486b Lines: 1 4 25.0 %
Date: 2024-10-05 00:18:03
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include <type_traits>
       7             : 
       8             : #include "Utilities/TMPL.hpp"
       9             : 
      10           0 : namespace Parallel::protocols {
      11             : /*!
      12             :  * \brief Conforming types implement a strategy to create elements for array
      13             :  * parallel components
      14             :  *
      15             :  * Conforming classes must provide the following type aliases:
      16             :  *
      17             :  * - `array_allocation_tags<ParallelComponent>`: A `tmpl::list` of tags that are
      18             :  *   needed to perform the allocation. These tags will be parsed from input-file
      19             :  *   options (see \ref dev_guide_parallelization_parallel_components). The array
      20             :  *   parallel component will be passed in as a template parameter.
      21             :  *
      22             :  * Conforming classes must implement the following static member functions:
      23             :  *
      24             :  * - `apply<ParallelComponent>`: This function is responsible for creating the
      25             :  *   array elements. It has the same signature as the `allocate_array` function
      26             :  *   (see \ref dev_guide_parallelization_parallel_components), but takes the
      27             :  *   array parallel component as an additional first template parameter.
      28             :  *
      29             :  * See `elliptic::DefaultElementsAllocator` for an example implementation of
      30             :  * this protocol.
      31             :  */
      32           1 : struct ArrayElementsAllocator {
      33             :   template <typename ConformingType>
      34           0 :   struct test {};
      35             : };
      36             : }  // namespace Parallel::protocols

Generated by: LCOV version 1.14