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 = {})
Definition: SimpleInterpolator.hpp:18
Definition: AdaptBase.hpp:6
Definition: SimpleInterpolator.hpp:80
A container-like data-structure not storing anything and with empty implementations in many container...
Definition: FakeContainer.hpp:34
Definition: SimpleInterpolator.hpp:23
Definition: HierarchicNodeToRangeMap.hpp:41
Definition: Assigner.hpp:7