SpECTRE Documentation Coverage Report
Current view: top level - Parallel/Algorithms - AlgorithmNodegroupDeclarations.hpp Hit Total Coverage
Commit: 5f37f3d7c5afe86be8ec8102ab4a768be82d2177 Lines: 1 8 12.5 %
Date: 2024-04-26 23:32: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 "Parallel/ArrayIndex.hpp"
       7             : 
       8             : #include "Parallel/Algorithms/AlgorithmNodegroup.decl.h"
       9             : 
      10             : namespace Parallel {
      11             : namespace Algorithms {
      12             : 
      13             : /*!
      14             :  * \ingroup ParallelGroup
      15             :  * \brief A struct that stores the charm++ types relevant for a particular
      16             :  * nodegroup component
      17             :  *
      18             :  * \details The type traits are:
      19             :  * - `cproxy`: the charm++ proxy.
      20             :  *   See https://charm.readthedocs.io/en/latest/faq/manual.html#what-is-a-proxy
      21             :  * - `cbase`: the charm++ base class. See
      22             :  *   https://charm.readthedocs.io/en/latest/charm++/manual.html#chare-objects
      23             :  * - `algorithm_type`: the chare type (`AlgorithmNodegroup`) for the nodegroup
      24             :  *   component.
      25             :  * - `ckindex`: A charm++ chare index object. Useful for obtaining entry
      26             :  *   method indices that are needed for creating callbacks. See
      27             :  *   https://charm.readthedocs.io/en/latest/charm++/manual.html#creating-a-ckcallback-object
      28             :  * - `cproxy_section`: The charm++ section proxy class. See
      29             :  *   https://charm.readthedocs.io/en/latest/charm++/manual.html?#sections-subsets-of-a-chare-array-group
      30             :  * - component_type: this object. Serves to allow checking the component type in
      31             :  *   both source code and the testing framework.
      32             :  */
      33           1 : struct Nodegroup {
      34             :   template <typename ParallelComponent,
      35             :             typename SpectreArrayIndex>
      36           0 :   using cproxy = CProxy_AlgorithmNodegroup<ParallelComponent,
      37             :                                            SpectreArrayIndex>;
      38             : 
      39             :   template <typename ParallelComponent,
      40             :             typename SpectreArrayIndex>
      41           0 :   using cbase = CBase_AlgorithmNodegroup<ParallelComponent,
      42             :                                          SpectreArrayIndex>;
      43             : 
      44             :   template <typename ParallelComponent,
      45             :             typename SpectreArrayIndex>
      46           0 :   using algorithm_type = AlgorithmNodegroup<ParallelComponent,
      47             :                                             SpectreArrayIndex>;
      48             : 
      49             :   template <typename ParallelComponent,
      50             :             typename SpectreArrayIndex>
      51           0 :   using ckindex = CkIndex_AlgorithmNodegroup<ParallelComponent,
      52             :                                              SpectreArrayIndex>;
      53             : 
      54             :   template <typename ParallelComponent, typename SpectreArrayIndex>
      55           0 :   using cproxy_section =
      56             :       CProxySection_AlgorithmNodegroup<ParallelComponent, SpectreArrayIndex>;
      57             : 
      58           0 :   using component_type = Nodegroup;
      59             : };
      60             : }  // namespace Algorithms
      61             : }  // namespace Parallel

Generated by: LCOV version 1.14