5 #include <dune/functions/common/functionconcepts.hh> 6 #include <dune/functions/functionspacebases/concepts.hh> 8 #include <amdis/common/ConceptsBase.hpp> 9 #include <amdis/common/Logical.hpp> 10 #include <amdis/common/TypeTraits.hpp> 22 template <
class A,
class B>
24 : std::is_same<remove_cvref_t<A>, remove_cvref_t<B>> {};
26 template <
class A,
class B>
33 template <
class A0,
class... As,
class B0,
class... Bs>
35 :
and_t<IsSimilar<A0, B0>::value, IsSimilar<Types<As...>, Types<Bs...>>::value> {};
38 template <
class... Ts>
41 template <
class T0,
class... Ts>
43 : std::is_same<Types<T0,Ts...>, Types<Ts...,T0>> {};
68 template <
class F,
class... Args>
69 auto require(F&& f, Args&&... args) -> decltype(
78 auto require(MI&& idx) -> decltype(
87 template <
class PBF,
class GV>
88 auto require(PBF
const& pbf, GV
const& gridView) -> decltype(
98 template <
class... Ts>
101 template <
class... Ts>
106 template <
class A,
class B>
109 template <
class A,
class B>
119 template <
class F,
class... Args>
122 template <
class F,
class... Args>
132 template <
class F,
class Signature>
133 constexpr
bool Functor = Dune::Functions::Concept::isFunction<F, Signature>();
135 template <
class F,
class Signature>
136 using Functor_t = bool_t<Functor<F,Signature>>;
140 template <
class F,
class... Args>
143 template <
class F,
class... Args>
144 using Predicate_t = Functor_t<F, bool(Args...)>;
149 constexpr
bool MultiIndex = models<Definition::MultiIndex(MI)>;
152 using MultiIndex_t = models_t<Definition::MultiIndex(MI)>;
156 template <
class Range,
class Index>
157 constexpr
bool HasIndexAccess = models<Dune::Functions::Concept::HasIndexAccess(Range, Index)>;
159 template <
class Range,
class Index>
160 using HasIndexAccess_t = models_t<Dune::Functions::Concept::HasIndexAccess(Range, Index)>;
165 constexpr
bool BasisNode = models<Dune::Functions::Concept::BasisNode(N)>;
168 using BasisNode_t = models_t<Dune::Functions::Concept::BasisNode(N)>;
172 template <
class Tree,
class GV>
173 constexpr
bool BasisTree = models<Dune::Functions::Concept::BasisTree<GV>(
Tree)>;
175 template <
class Tree,
class GV>
176 using BasisTree_t = models_t<Dune::Functions::Concept::BasisTree<GV>(
Tree)>;
180 template <
class LV,
class GB =
typename LV::GlobalBasis>
181 constexpr
bool LocalView = models<Dune::Functions::Concept::LocalView<GB>(LV)>;
183 template <
class LV,
class GB =
typename LV::GlobalBasis>
184 using LocalView_t = models_t<Dune::Functions::Concept::LocalView<GB>(LV)>;
188 template <
class GB,
class GV =
typename GB::Gr
idView>
189 constexpr
bool GlobalBasis = models<Dune::Functions::Concept::GlobalBasis<GV>(GB)>;
191 template <
class GB,
class GV =
typename GB::Gr
idView>
192 using GlobalBasis_t = models_t<Dune::Functions::Concept::GlobalBasis<GV>(GB)>;
194 template <
class PBF,
class GV>
195 constexpr
bool PreBasisFactory = models<Definition::PreBasisFactory(PBF,GV)>;
197 template <
class PBF,
class GV>
198 using PreBasisFactory_t = models_t<Definition::PreBasisFactory(PBF,GV)>;
constexpr bool BasisTree
A Dune::Functions::BasisTree type.
Definition: Concepts.hpp:173
constexpr bool MultiIndex
A multi-index type.
Definition: Concepts.hpp:149
Definition: Concepts.hpp:39
Definition: Concepts.hpp:66
constexpr bool Functor
A Functor is a function F with signature Signature.
Definition: Concepts.hpp:133
A variadic type list.
Definition: TypeTraits.hpp:146
Global basis defined on a pre-basis.
Definition: GlobalBasis.hpp:44
Definition: FieldMatVec.hpp:12
constexpr bool Predicate
A predicate is a function that returns a boolean.
Definition: Concepts.hpp:141
Definition: AdaptBase.hpp:6
constexpr bool HasIndexAccess
A Dune::Functions::HasIndexAccess type.
Definition: Concepts.hpp:157
The restriction of a finite element basis to a single element.
Definition: LocalView.hpp:14
constexpr bool Similar
Types are the same, up to decay of qualifiers.
Definition: Concepts.hpp:107
Definition: Concepts.hpp:23
Definition: Concepts.hpp:50
constexpr bool Callable
A Collable is a function F that can be called with arguments of type Args....
Definition: Concepts.hpp:120
constexpr bool BasisNode
A Dune::Functions::BasisNode type.
Definition: Concepts.hpp:165
Definition: Concepts.hpp:85
Definition: Concepts.hpp:75
constexpr bool Same
Types are the same.
Definition: Concepts.hpp:99