Skip to content
Snippets Groups Projects
Commit 31b27760 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Continue debugging (more prints and few fixes) [ci-skip]

parent 120899bb
Branches
No related tags found
1 merge request!204Remove m_cell_global_index from Connectivity
......@@ -327,13 +327,19 @@ ConnectivityDispatcher<Dimension>::_buildSubItemNumberToIdMap()
this->_dispatchedInfo<ItemOfItemT>().m_sub_item_numbers_to_recv_by_proc;
auto& sub_item_number_id_map = this->_dispatchedInfo<ItemOfItemT::sub_item_type>().m_number_to_id_map;
for (size_t i_rank = 0; i_rank < parallel::size(); ++i_rank) {
int sub_item_id = 0;
for (size_t i_rank = 0; i_rank < parallel::size(); ++i_rank) {
for (size_t i = 0; i < cell_sub_item_number_to_recv_by_proc[i_rank].size(); ++i) {
int sub_item_number = cell_sub_item_number_to_recv_by_proc[i_rank][i];
std::cout << "looking for " << sub_item_number;
auto [iterator, inserted] = sub_item_number_id_map.insert(std::make_pair(sub_item_number, sub_item_id));
if (inserted)
sub_item_id++;
if (inserted) {
std::cout << ": inserted with item_id " << sub_item_id << '\n';
++sub_item_id;
} else {
std::cout << ": *exists* with item_id " << iterator->second << '\n';
}
}
}
}
......@@ -444,9 +450,22 @@ ConnectivityDispatcher<Dimension>::_buildItemToSubItemDescriptor()
const auto& sub_item_number_id_map = this->_dispatchedInfo<sub_item_type>().m_number_to_id_map;
std::cout << "sub_item_number_id_map = ";
std::cout << rang::fgB::magenta << rang::style::reversed;
for (auto&& i_sub : sub_item_number_id_map) {
std::cout << ' ' << i_sub.first << "->" << i_sub.second;
}
std::cout << rang::fg::reset << rang::style::reset;
std::cout << '\n';
const auto& recv_item_of_item_numbers_by_proc =
this->_dispatchedInfo<ItemOfItemT>().m_sub_item_numbers_to_recv_by_proc;
for (size_t i_rank = 0; i_rank < parallel::size(); ++i_rank) {
std::cout << rang::fgB::blue << "recv_item_of_item_numbers_by_proc[" << i_rank
<< "] = " << recv_item_of_item_numbers_by_proc[i_rank] << rang::fg::reset << '\n';
}
std::vector<std::vector<unsigned int>> item_to_subitem_legacy;
size_t number_of_node_by_cell = 0;
for (size_t i_rank = 0; i_rank < parallel::size(); ++i_rank) {
......@@ -903,10 +922,13 @@ ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType
this->_buildItemReferenceList<ItemType::node>();
std::cout << "m_new_descriptor.nodeNumberVector() = " << m_new_descriptor.nodeNumberVector() << '\n';
std::cout << rang::fgB::blue << m_new_descriptor.nodeNumberVector() << rang::fg::reset << '\n';
std::cout << "m_new_descriptor.nodeOwnerVector() = " << m_new_descriptor.nodeOwnerVector() << '\n';
std::cout << rang::fgB::blue << m_new_descriptor.nodeOwnerVector() << rang::fg::reset << '\n';
std::cout << "m_new_descriptor.cellOwnerVector().size() = " << m_new_descriptor.cellOwnerVector().size()
<< '\n';
std::cout << rang::fgB::blue << m_new_descriptor.cellOwnerVector() << rang::fg::reset << '\n';
std::cout << "m_new_descriptor.cellTypeVector().size() = " << m_new_descriptor.cellTypeVector().size()
<< '\n';
std::cout << "m_new_descriptor.cellToNodeMatrix().numberOfRows() = "
......@@ -917,9 +939,6 @@ ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType
<< ")" << m_new_descriptor.cellToNodeMatrix()[cell_id] << '\n';
}
std::cout.flush();
parallel::barrier();
m_dispatched_connectivity = ConnectivityType::build(m_new_descriptor);
{
......
......@@ -273,14 +273,16 @@ class ConnectivityDispatcher
const auto& recv_item_id_correspondance_by_proc =
this->_dispatchedInfo<item_type>().m_recv_id_correspondance_by_proc;
ItemValue<MutableDataType, item_type> new_item_value(*m_dispatched_connectivity);
size_t shift = 0;
for (size_t i_rank = 0; i_rank < parallel::size(); ++i_rank) {
const auto& recv_item_id_correspondance = recv_item_id_correspondance_by_proc[i_rank];
const auto& recv_item_value = recv_item_value_by_proc[i_rank];
parallel_for(
recv_item_value.size(), PUGS_LAMBDA(size_t r) {
const ItemId& item_id = recv_item_id_correspondance[r];
new_item_value[item_id] = recv_item_value[r];
recv_item_value.size(), PUGS_LAMBDA(size_t index) {
const ItemId shifted_item_id = recv_item_id_correspondance[index] + shift;
new_item_value[shifted_item_id] = recv_item_value[index];
});
shift += recv_item_value.size();
}
return new_item_value;
}
......
......@@ -42,7 +42,27 @@ MeshBuilderBase::_dispatch()
std::shared_ptr dispatched_connectivity = p_dispatcher->dispatchedConnectivity();
NodeValue<Rd> dispatched_xr = p_dispatcher->dispatch(mesh.xr());
m_mesh = std::make_shared<MeshVariant>(std::make_shared<const MeshType>(dispatched_connectivity, dispatched_xr));
std::cout << rang::fgB::magenta << "dispatched xr=" << dispatched_xr << rang::fg::reset << '\n';
auto dispatched_mesh = std::make_shared<const MeshType>(dispatched_connectivity, dispatched_xr);
{
const auto& d_connectivity = dispatched_mesh->connectivity();
auto cell_to_node_matrix = d_connectivity.cellToNodeMatrix();
auto d_xr = dispatched_mesh->xr();
auto d_cell_number = d_connectivity.cellNumber();
for (CellId cell_id = 0; cell_id < dispatched_mesh->numberOfCells(); ++cell_id) {
std::cout << cell_id << "(" << d_cell_number[cell_id] << "):\n";
const auto cell_nodes = cell_to_node_matrix[cell_id];
for (size_t i_node = 0; i_node < cell_nodes.size(); ++i_node) {
const NodeId node_id = cell_nodes[i_node];
std::cout << i_node << ": " << d_xr[node_id] << '\n';
}
}
}
m_mesh = std::make_shared<MeshVariant>(dispatched_mesh);
// m_mesh = std::make_shared<MeshVariant>(std::make_shared<const MeshType>(dispatched_connectivity, dispatched_xr));
}
template void MeshBuilderBase::_dispatch<1>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment