SpECTRE Documentation Coverage Report
Current view: top level - Domain/Tags - ElementDistribution.hpp Hit Total Coverage
Commit: c3e43f8d41800b0ecefb9d1393f1de1d5a280c8f Lines: 1 11 9.1 %
Date: 2026-07-24 22:09:25
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 1.14