AMDiS
2.11-git
The Adaptive Multi-Dimensional Simulation Toolbox
Loading...
Searching...
No Matches
NodeTags.hpp
1
#pragma once
2
3
#include <type_traits>
4
5
#include <dune/common/typetree/nodeconcepts.hh>
6
7
namespace
AMDiS
8
{
9
struct
LeafNodeTag
{};
10
struct
DynamicPowerNodeTag
{};
11
struct
PowerNodeTag
{};
12
struct
CompositeNodeTag
{};
13
14
template
<
class
Node>
15
struct
NodeTag
;
16
17
template
<
class
Node>
18
using
NodeTag_t =
typename
NodeTag<Node>::type
;
19
20
template
<
class
N>
21
requires
Dune::TypeTree::Concept::TreeNode<N>
22
struct
NodeTag
<N>
23
{
24
using
type = std::conditional_t<Dune::TypeTree::Concept::LeafTreeNode<N>,
25
AMDiS::LeafNodeTag
,
26
std::conditional_t<Dune::TypeTree::Concept::UniformInnerTreeNode<N>,
27
std::conditional_t<Dune::TypeTree::Concept::StaticDegreeInnerTreeNode<N>,
28
AMDiS::PowerNodeTag
,
29
AMDiS::DynamicPowerNodeTag
30
>,
31
AMDiS::CompositeNodeTag
32
>
33
>;
34
};
35
36
37
}
// end namespace AMDiS
AMDiS::CompositeNodeTag
Definition
NodeTags.hpp:12
AMDiS::DynamicPowerNodeTag
Definition
NodeTags.hpp:10
AMDiS::LeafNodeTag
Definition
NodeTags.hpp:9
AMDiS::NodeTag
Definition
NodeTags.hpp:15
AMDiS::PowerNodeTag
Definition
NodeTags.hpp:11
amdis
typetree
NodeTags.hpp
Generated by
1.9.8