5#include <amdis/common/FakeContainer.hpp>
6#include <amdis/common/FieldMatVec.hpp>
7#include <amdis/functions/EntitySet.hpp>
8#include <amdis/functions/HierarchicNodeToRangeMap.hpp>
9#include <amdis/functions/NodeIndices.hpp>
10#include <amdis/linearalgebra/Traits.hpp>
11#include <amdis/operations/Assigner.hpp>
12#include <amdis/typetree/Traversal.hpp>
21 template <
class Basis,
22 class TreePath = Dune::TypeTree::HybridTreePath<>>
25 template <
class Coeff,
class Gr
idFct,
class BitVector>
26 void operator()(Coeff& coeff, GridFct
const& gf, BitVector
const& bitVec)
const
29 auto lf = localFunction(gf);
30 auto localView = basis_.localView();
32 std::vector<typename Coeff::value_type> localCoeff;
34 for (
const auto& e : entitySet(basis_))
39 auto&& subTree = Dune::TypeTree::child(localView.tree(),treePath_);
40 Traversal::forEachLeafNode(subTree, [&](
auto const& node,
auto const& tp)
42 auto bitVecRange = mappedRangeView(Dune::range(node.size()), [&](std::size_t i) ->
bool {
43 return bitVec[localView.index(node.localIndex(i))];
47 std::vector<bool> mask(bitVecRange.begin(), bitVecRange.end());
48 if (std::all_of(mask.begin(), mask.end(), [](
bool m) { return !m; }))
63 template <
class Coeff,
class Gr
idFct>
64 void operator()(Coeff& coeff, GridFct
const& gf)
const
75 TreePath treePath_ = {};
85 template <
class Basis,
86 class TreePath = Dune::TypeTree::HybridTreePath<>>
87 static auto create(Basis
const& basis, TreePath treePath = {})
A container-like data-structure not storing anything and with empty implementations in many container...
Definition: FakeContainer.hpp:36
Definition: Assigner.hpp:8
Definition: HierarchicNodeToRangeMap.hpp:42
Definition: SimpleInterpolator.hpp:80
Definition: SimpleInterpolator.hpp:24
Definition: SimpleInterpolator.hpp:18