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

Define cell local number in node cells table

parent 18a93e1d
Branches
Tags
1 merge request!6Feature/crs
......@@ -230,6 +230,7 @@ public:
static constexpr bool has_face = (dimension>1);
ConnectivityMatrix m_cell_to_node_matrix;
NodeValuePerCell<unsigned short> m_cell_to_node_local_cell;
ConnectivityMatrix m_cell_to_face_matrix;
FaceValuePerCell<bool> m_cell_face_is_reversed;
......@@ -356,6 +357,12 @@ private:
m_connectivity_computer.computeLocalChildItemNumberInItem(m_cell_to_node_matrix,
m_node_to_cell_matrix,
m_node_to_cell_local_node);
m_cell_to_node_local_cell = NodeValuePerCell<unsigned short>(*this);
m_connectivity_computer.computeLocalChildItemNumberInItem(m_node_to_cell_matrix,
m_cell_to_node_matrix,
m_cell_to_node_local_cell);
if constexpr (Dimension>1) {
this->_computeFaceCellConnectivities();
}
......
......@@ -55,6 +55,27 @@ computeLocalChildItemNumberInItem(const ConnectivityMatrix& item_to_child_items_
}
void ConnectivityComputer::
computeLocalChildItemNumberInItem(const ConnectivityMatrix& item_to_child_items_matrix,
const ConnectivityMatrix& child_item_to_items_matrix,
NodeValuePerCell<unsigned short>& child_item_number_in_item_matrix) const
{
for (unsigned int r=0; r<child_item_to_items_matrix.numRows(); ++r) {
const auto& child_item_to_items = child_item_to_items_matrix.rowConst(r);
for (unsigned short J=0; J<child_item_to_items.length; ++J) {
const unsigned int j = child_item_to_items(J);
const auto& item_to_child_items = item_to_child_items_matrix.rowConst(j);
for (unsigned int R=0; R<item_to_child_items.length; ++R) {
if (item_to_child_items(R) == r) {
child_item_number_in_item_matrix(r,J) = R;
break;
}
}
}
}
}
void ConnectivityComputer::
computeLocalChildItemNumberInItem(const ConnectivityMatrix& item_to_child_items_matrix,
......
......@@ -13,6 +13,10 @@ struct ConnectivityComputer
const ConnectivityMatrix& child_item_to_items_matrix,
CellValuePerNode<unsigned short>& child_item_number_in_item_matrix) const;
void computeLocalChildItemNumberInItem(const ConnectivityMatrix& item_to_child_items_matrix,
const ConnectivityMatrix& child_item_to_items_matrix,
NodeValuePerCell<unsigned short>& child_item_number_in_item_matrix) const;
void computeLocalChildItemNumberInItem(const ConnectivityMatrix& item_to_child_items_matrix,
const ConnectivityMatrix& child_item_to_items_matrix,
CellValuePerFace<unsigned short>& child_item_number_in_item_matrix) const;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment