dune-multidomaingrid 2.8
Loading...
Searching...
No Matches
utility.hh
Go to the documentation of this file.
1#ifndef DUNE_MULTIDOMAINGRID_UTILITY_HH
2#define DUNE_MULTIDOMAINGRID_UTILITY_HH
3
4#include <algorithm>
5#include <tuple>
6#include <dune/geometry/type.hh>
7#include <dune/common/iteratorfacades.hh>
8
9namespace Dune {
10
11namespace mdgrid {
12
13namespace util {
14
16
17 std::size_t operator()(GeometryType gt) const {
18 std::size_t hash = gt.dim() * 509;
19 return gt.dim() < 2 ? hash : hash + static_cast<std::size_t>(gt.id());
20 }
21
22};
23
24template<typename T, typename binary_function>
26
28 binary_function func;
29
30 collect_elementwise_struct(T& r, binary_function f = binary_function()) :
31 result(r),
32 func(f)
33 {}
34
35 void operator()(T& val) {
36 std::transform(val.begin(),val.end(),result.begin(),result.begin(),func);
37 }
38};
39
40template<typename binary_function, typename T>
41collect_elementwise_struct<T,binary_function> collect_elementwise(T& result, binary_function f = binary_function()) {
43}
44
45} // namespace util
46
47} // namespace mdgrid
48
49} // namespace Dune
50
51
52#endif // DUNE_MULTIDOMAINGRID_UTILITY_HH
Definition: multidomaingrid.hh:8
collect_elementwise_struct< T, binary_function > collect_elementwise(T &result, binary_function f=binary_function())
Definition: utility.hh:41
Definition: utility.hh:15
std::size_t operator()(GeometryType gt) const
Definition: utility.hh:17
void operator()(T &val)
Definition: utility.hh:35
collect_elementwise_struct(T &r, binary_function f=binary_function())
Definition: utility.hh:30
binary_function func
Definition: utility.hh:28