SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/BoundaryConditions - Tags.hpp Hit Total Coverage
Commit: 37c384043430860f87787999aa7399d01bb3d213 Lines: 3 12 25.0 %
Date: 2024-04-20 02:24:02
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 <string>
       7             : 
       8             : #include "DataStructures/DataBox/PrefixHelpers.hpp"
       9             : #include "DataStructures/DataBox/Tag.hpp"
      10             : #include "DataStructures/DataBox/TagName.hpp"
      11             : #include "Elliptic/BoundaryConditions/BoundaryConditionType.hpp"
      12             : #include "Options/String.hpp"
      13             : #include "Utilities/TaggedTuple.hpp"
      14             : 
      15             : namespace elliptic {
      16           1 : namespace OptionTags {
      17             : 
      18             : template <typename Tag>
      19           0 : struct BoundaryConditionType {
      20           0 :   static std::string name() { return db::tag_name<Tag>(); }
      21           0 :   using type = elliptic::BoundaryConditionType;
      22           0 :   static constexpr Options::String help =
      23             :       "Type of boundary conditions to impose on this variable";
      24             : };
      25             : 
      26             : }  // namespace OptionTags
      27             : 
      28           0 : namespace Tags {
      29             : 
      30             : /// The `elliptic::BoundaryConditionType` to impose on the variable represented
      31             : /// by `Tag`, e.g. Dirichlet or Neumann boundary conditions
      32             : template <typename Tag>
      33           1 : struct BoundaryConditionType : db::PrefixTag, db::SimpleTag {
      34           0 :   using type = elliptic::BoundaryConditionType;
      35           0 :   using tag = Tag;
      36             : };
      37             : 
      38             : /// The `elliptic::BoundaryConditionType` to impose on the variables represented
      39             : /// by `Tags`, e.g. Dirichlet or Neumann boundary conditions
      40             : template <typename Tags>
      41           1 : struct BoundaryConditionTypes : db::SimpleTag {
      42           0 :   using type = tuples::tagged_tuple_from_typelist<
      43             :       db::wrap_tags_in<elliptic::Tags::BoundaryConditionType, Tags>>;
      44             : };
      45             : 
      46             : }  // namespace Tags
      47             : }  // namespace elliptic

Generated by: LCOV version 1.14