SpECTRE Documentation Coverage Report
Current view: top level - Domain/Tags - ElementDistribution.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 9.1 % 11 1
Test Date: 2026-10-22 17:29:42
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 <cstddef>
       7              : #include <memory>
       8              : #include <optional>
       9              : 
      10              : #include "DataStructures/DataBox/Tag.hpp"
      11              : #include "Domain/Domain.hpp"
      12              : #include "Domain/ElementDistribution.hpp"
      13              : #include "Options/Auto.hpp"
      14              : #include "Options/String.hpp"
      15              : #include "Parallel/Tags/Parallelization.hpp"
      16              : #include "Utilities/TMPL.hpp"
      17              : 
      18              : namespace domain {
      19              : namespace OptionTags {
      20              : /// \ingroup OptionTagsGroup
      21              : /// \ingroup ComputationalDomainGroup
      22            0 : struct ElementDistribution {
      23            0 :   struct RoundRobin {};
      24            0 :   using type = Options::Auto<ElementWeight, RoundRobin>;
      25            0 :   static constexpr Options::String help = {
      26              :       "Weighting pattern to use for ZCurve element distribution. Specify "
      27              :       "RoundRobin to just place each element on the next core."};
      28            0 :   using group = Parallel::OptionTags::Parallelization;
      29              : };
      30              : }  // namespace OptionTags
      31              : 
      32              : namespace Tags {
      33              : /// \ingroup DataBoxTagsGroup
      34              : /// \ingroup ComputationalDomainGroup
      35              : /// Tag that holds method for how to distribute the elements on the given
      36              : /// resources.
      37            1 : struct ElementDistribution : db::SimpleTag {
      38            0 :   using type = std::optional<ElementWeight>;
      39            0 :   using option_tags = tmpl::list<OptionTags::ElementDistribution>;
      40              : 
      41            0 :   static constexpr bool pass_metavariables = false;
      42            0 :   static type create_from_options(const type& element_distribution) {
      43              :     return element_distribution;
      44              :   }
      45              : };
      46              : }  // namespace Tags
      47              : }  // namespace domain
        

Generated by: LCOV version 2.0-1