DUNE-ACFEM (unstable)
boundaryindicator.hh
63 template<class T, std::enable_if_t<(IsIndicator<T>::value && !Expressions::IsClosure<T>::value), int> = 0>
199 std::string pfx = std::is_reference<Indicator>::value ? (RefersConst<Indicator>::value ? "cref" : "ref") : "";
220 : StorageType(OperationTraits<LogicalOrOperation>{}, std::forward<T0>(t0), std::forward<T1>(t1))
232 std::string pfxL = std::is_reference<T0>::value ? (RefersConst<T0>::value ? "cref" : "ref") : "";
233 std::string pfxR = std::is_reference<T1>::value ? (RefersConst<T1>::value ? "cref" : "ref") : "";
255 : StorageType(OperationTraits<LogicalAndOperation>{}, std::forward<T0>(t0), std::forward<T1>(t1))
266 std::string pfxL = std::is_reference<T0>::value ? (RefersConst<T0>::value ? "cref" : "ref") : "";
267 std::string pfxR = std::is_reference<T1>::value ? (RefersConst<T1>::value ? "cref" : "ref") : "";
322 constexpr auto operate(Expressions::DontOptimize, OperationTraits<LogicalOrOperation>, T0&& t0, T1&& t1)
345 constexpr auto operate(Expressions::DontOptimize, OperationTraits<LogicalAndOperation>, T0&& t0, T1&& t1)
constexpr decltype(auto) expressionClosure(T &&t)
BoundaryIndicators do not need a closure.
Definition: boundaryindicator.hh:64
OptimizeTag< 0 > DontOptimize
Bottom level is overloaded to do nothing.
Definition: optimizationbase.hh:74
std::string operationName(F &&f, const std::string &arg)
Verbose print of an operation, helper function to produce noise.
Definition: operationtraits.hh:601
constexpr auto one(T &&t)
Use the one fraction as canonical zero element for scalars.
Definition: constantoperations.hh:88
constexpr auto zero(T &&t)
Use the zero fraction as canonical zero element for scalars.
Definition: constantoperations.hh:80
auto operator||(T0 &&t0, T1 &&t1)
Union of two indicators.
Definition: boundaryindicator.hh:316
auto operator&&(T0 &&t0, T1 &&t1)
Intersection of two indicators.
Definition: boundaryindicator.hh:338
auto operator-(T0 &&t0, T1 &&t1)
Difference in the sense of .
Definition: boundaryindicator.hh:361
auto operator+(T0 &&t0, T1 &&t1)
Union of two indicators.
Definition: boundaryindicator.hh:331
constexpr auto operator!(T &&t)
Boolean negation, take the complement.
Definition: boundaryindicator.hh:293
constexpr auto operate(Expressions::DontOptimize, OperationTraits< LogicalAndOperation >, T0 &&t0, T1 &&t1)
Definition: boundaryindicator.hh:345
integral_constant< T, V > Constant
Short-cut for any integral constant.
Definition: types.hh:40
Constant< bool, V > BoolConstant
Short-cut for integral constant of type bool.
Definition: types.hh:48
BoolConstant<(std::is_const< T >::value||std::is_const< std::remove_reference_t< T > >::value)> RefersConst
TrueType if const or a reference to a const.
Definition: types.hh:133
BoundaryIndicator::Constant< false > EmptyBoundaryIndicator
A boundary indicator applying to no part of the boundary.
Definition: boundaryindicator.hh:373
BoundaryIndicator::Constant< true > EntireBoundaryIndicator
A boundary indicator applying to all parts of the boundary.
Definition: boundaryindicator.hh:376
BoundaryIndicator::IsProperOperand< T > IsProperBoundaryIndicator
Indentify a boundary indicator after type-normalization.
Definition: boundaryindicator.hh:384
Definition: boundaryindicator.hh:60
Apply to boundary segments which carry the respective id.
Definition: boundaryindicator.hh:150
bool applies(const Intersection &intersection) const
Definition: boundaryindicator.hh:158
BoundaryIdIndicator(int id)
Construct the indicator with the given id.
Definition: boundaryindicator.hh:152
Boundary indicators need to inherit this tag-class in order to signal that they are boundary indicato...
Definition: boundaryindicator.hh:39
Turn any boundary-indicator into its complement.
Definition: boundaryindicator.hh:181
bool applies(const Intersection &intersection) const
Definition: boundaryindicator.hh:192
Paraphrase isOne and isZero to indicator function talk.
Definition: boundaryindicator.hh:140
Intersection of two indicators, apply iff both apply.
Definition: boundaryindicator.hh:249
TrueType if T is a BoundaryIndicator.
Definition: boundaryindicator.hh:49
Union of two indicators, apply to the union of both boundary parts.
Definition: boundaryindicator.hh:214
bool applies(const Intersection &intersection) const
Definition: boundaryindicator.hh:225
Default expression traits definition is a recursion in order to ease disambiguation.
Definition: expressiontraits.hh:54
Terminals may derive from this class to express that they are expressions.
Definition: terminal.hh:25
A tag structure which can be attached as base-class to expressions modelling a 1 (in a field,...
Definition: tags.hh:158
