17 return a.input.global_id() < b.input.global_id();
20 const int64_t& facet_id) ->
bool {
21 return value.input.global_id() < facet_id;
27 m_data.emplace_back(m, input_tuple);
42 -> AltData::const_iterator
44 assert(std::is_sorted(m_data.begin(), m_data.end(), sort_op));
45 auto it = std::lower_bound(m_data.begin(), m_data.end(), input_facet, sort_int_op);
46 auto end = m_data.cend();
51 if (it != end && it->input.global_id() != input_facet) {
58 auto it = get_alternative_data_it(t.global_cid());
59 assert(it != m_data.cend());
74 auto map = [&data](
const size_t index) ->
Tuple {
76 const int8_t& local_boundary_index = data.local_boundary_indices[index];
89 std::array<Tuple, 2> r{{map(0), map(1)}};
102 assert(!alts[0].is_null() || !alts[1].is_null());
103 if (!alts[0].is_null()) {
The Tuple is the basic navigation tool in our mesh data structure.
static const SimplexDart & get_singleton(wmtk::PrimitiveType simplex_type)
Dart dart_from_tuple(const wmtk::Tuple &t) const
AltData::const_iterator get_alternative_data_it(const int64_t &input_facet) const
const Data & get_alternatives_data(const Tuple &t) const
CollapseAlternateFacetData()
~CollapseAlternateFacetData()
CollapseAlternateFacetOptionData Data
void add(const Mesh &m, const Tuple &input_tuple)
std::array< Tuple, 2 > get_alternatives(const PrimitiveType mesh_pt, const Tuple &t, const PrimitiveType simplex_dimension) const
Tuple get_alternative(const PrimitiveType mesh_pt, const Tuple &t, const PrimitiveType simplex_dimension) const
int8_t find_local_dart_action(PrimitiveType pt, const Tuple &source, const Tuple &target)