35 for (
unsigned int i=0; i<4; i++)
42 n_duplicated_nodes_(0)
66 for (
unsigned int i=0; i<edge.side(0)->dim()+1; ++i)
67 obj.
nodes[i] = edge.side(0)->node(i).idx();
69 objects_[edge.side(0)->dim()].push_back(obj);
80 for (
unsigned int i=0; i<ele->dim()+1; i++)
81 l.
nodes[i] = ele->node_idx(i);
82 for (
unsigned int i=0; i<ele->dim()+1; i++)
111 while (node_elements.size() > 0)
114 std::queue<unsigned int> q;
115 q.push(*node_elements.begin());
116 node_elements.erase(node_elements.begin());
117 std::set<unsigned int> component;
118 while (q.size() > 0) {
120 component.insert(elem.idx());
122 for (
unsigned int sid=0; sid<elem->n_sides(); ++sid) {
123 auto side = elem.
side(sid);
124 for (
unsigned int esid=0; esid < side->edge()->n_sides; ++esid) {
126 if (adj_el_idx != elem.idx())
128 auto it = std::find(node_elements.begin(), node_elements.end(), adj_el_idx);
129 if (
it != node_elements.end()) {
130 node_elements.erase(
it);
138 components.push_back(component);
144 if (components.size() > 0) {
146 components.erase(components.begin());
148 for (
auto component : components) {
151 for (
auto el_idx : component) {
156 if (elem->
nodes[i] == n.idx())
157 elem->
nodes[i] = new_nid;