21 const std::vector<dof_id_type> & trial_primary_nodes,
22 const std::unordered_map<dof_id_type, std::vector<dof_id_type>> & node_to_elem_map,
23 const unsigned int patch_size,
27 _trial_primary_nodes(trial_primary_nodes),
28 _node_to_elem_map(node_to_elem_map),
29 _patch_size(patch_size)
53 unsigned int patch_size =
56 std::vector<std::size_t> return_index(patch_size);
58 for (
const auto & node_id : range)
63 query_pt(i) = node(i);
77 std::vector<dof_id_type> neighbor_nodes(return_index.size());
78 for (
unsigned int i = 0; i < return_index.size(); ++i)
91 bool need_to_track =
false;
93 if (
_mesh.
nodeRef(node_id).processor_id() == processor_id)
101 const std::vector<dof_id_type> & elems_connected_to_node = node_to_elem_pair->second;
104 for (
const auto & dof : elems_connected_to_node)
107 need_to_track =
true;
115 for (
const auto & neighbor_node_id : neighbor_nodes)
117 if (
_mesh.
nodeRef(neighbor_node_id).processor_id() == processor_id)
118 need_to_track =
true;
123 "Missing entry in node to elem map");
124 const std::vector<dof_id_type> & elems_connected_to_node = node_to_elem_pair->second;
126 for (
const auto & dof : elems_connected_to_node)
129 need_to_track =
true;
153 const std::vector<dof_id_type> & elems_connected_to_node = node_to_elem_pair->second;
155 for (
const auto & dof : elems_connected_to_node)
160 for (
unsigned int neighbor_it = 0; neighbor_it < neighbor_nodes.size(); neighbor_it++)
164 "Missing entry in node to elem map");
165 const std::vector<dof_id_type> & elems_connected_to_node = node_to_elem_pair->second;
167 for (
const auto & dof : elems_connected_to_node)
SecondaryNeighborhoodThread(const MooseMesh &mesh, const std::vector< dof_id_type > &trial_primary_nodes, const std::unordered_map< dof_id_type, std::vector< dof_id_type > > &node_to_elem_map, const unsigned int patch_size, KDTree &_kd_tree)