DUNE-ACFEM (unstable)

tags.hh
Go to the documentation of this file.
1 #ifndef __DUNE_ACFEM_EXPRESSIONS_TAGS_HH__
2 #define __DUNE_ACFEM_EXPRESSIONS_TAGS_HH__
3 
9 #include "../mpl/uniquetags.hh"
10 
11 namespace Dune
12 {
13 
14  namespace ACFem
15  {
16 
48  {};
49 
54  {};
55 
62  {};
63 
68  template<std::size_t id>
71  {};
72 
81  {};
82 
85  {};
86 
93  {};
94 
100  {};
101 
106  {};
107 
110  {};
111 
114  {};
115 
122  {};
123 
129  {};
130 
137  : MPL::UniqueTags<SemiPositiveExpression, SemiNegativeExpression, ConstantExpression, TypedValueExpression>
138  {};
139 
144  {};
145 
150  {};
151 
157  : MPL::UniqueTags<PositiveExpression, ConstantExpression, TypedValueExpression>
158  {};
159 
165  : MPL::UniqueTags<NegativeExpression, ConstantExpression, TypedValueExpression>
166  {};
167 
175  template<class A, class Tag>
176  using HasTag = std::is_base_of<Tag, std::decay_t<A> >;
177 
179 
181 
183 
185 
186  } // ACFem
187 
188 } // Dune
189 
190 #endif // __DUNE_ACFEM_EXPRESSIONS_TAGS_HH__
std::is_base_of< Tag, std::decay_t< A > > HasTag
Evaluate to std::true_type if std::decay_t<A> is derived from Tag, otherwise to std::false_type.
Definition: tags.hh:176
A constant.
Definition: tags.hh:93
An independent expression is an expression which does not depend on external state.
Definition: tags.hh:81
A tag structure which can be attached as base-class to expressions modelling a 1 (in a field,...
Definition: tags.hh:166
Something which may be change between different evaluations of an expression.
Definition: tags.hh:106
An expression which is known to be negative.
Definition: tags.hh:150
Complementary to ZeroExpression for use in std::conditional, for example, otherwise unused.
Definition: tags.hh:122
A tag structure which can be attached as base-class to expressions modelling a 1 (in a field,...
Definition: tags.hh:158
Something constant on a given entity.
Definition: tags.hh:85
An expression which is known to be positive.
Definition: tags.hh:144
Non-singular, but somehow zero, whatever that means.
Definition: tags.hh:129
A tag structure signalling that objects of this type can be considered to yield the same values at ru...
Definition: tags.hh:62
Less equal 0 expression.
Definition: tags.hh:114
Greater equal 0 expression.
Definition: tags.hh:110
A terminal expression is an "expression end-point", i.e.
Definition: tags.hh:48
A tag structure signalling that this expression carries its value in its type.
Definition: tags.hh:100
A tag for use with assume() to generate a unique type which is assumed to be "runtime equal" by inher...
Definition: tags.hh:71
A volatile expression will not be replaced by its value except for RuntimeEqual optimizations.
Definition: tags.hh:54
A tag structure which can be attached as base class to zero-expressions like the ZeroGridFunction,...
Definition: tags.hh:138
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 26, 22:29, 2024)