27 const std::vector<std::shared_ptr<const operations::BaseCollapseNewAttributeStrategy>>&
31 std::integral_constant<int64_t, 1>{},
38 auto cache = visitor.take_cache();
41 auto update_attributes = [&](
auto&& m) {
42 using T = std::remove_reference_t<
decltype(m)>;
43 if constexpr (!std::is_const_v<T>) {
44 for (
const auto& collapse_ptr : new_attr_strategies) {
45 if (&m == &collapse_ptr->mesh()) {
46 collapse_ptr->update(m, cache, tuples);
59 const std::vector<std::shared_ptr<const operations::BaseCollapseNewAttributeStrategy>>&
63 auto candidates = top_dimension_cofaces(mesh, simplex);
69 return std::vector<simplex::Simplex>{1};
73 for (
const auto& c : candidates) {
74 if (return_data.has_variant(mesh, nsimplex)) {
76 [&mesh](
const auto& rt) -> std::vector<simplex::Simplex> {
79 return_data.get_variant(mesh, nsimplex));
83 assert(return_data.has_variant(mesh, nsimplex));