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

Use m_item_to_item_matrix instead of m_cell_to_face_matrix

parent 14445273
No related branches found
No related tags found
1 merge request!6Feature/crs
......@@ -97,6 +97,8 @@ void Connectivity<3>::_computeFaceCellConnectivities()
}
{
auto& cell_to_face_matrix
= m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
std::vector<std::vector<unsigned int>> cell_to_face_vector(this->numberOfCells());
for (size_t j=0; j<cell_to_face_vector.size(); ++j) {
cell_to_face_vector[j].resize(cell_nb_faces[j]);
......@@ -110,7 +112,7 @@ void Connectivity<3>::_computeFaceCellConnectivities()
}
++l;
}
m_cell_to_face_matrix = cell_to_face_vector;
cell_to_face_matrix = cell_to_face_vector;
}
FaceValuePerCell<bool> cell_face_is_reversed(*this);
......@@ -146,12 +148,14 @@ void Connectivity<3>::_computeFaceCellConnectivities()
}
}
m_connectivity_computer.computeInverseConnectivityMatrix(m_cell_to_face_matrix,
const auto& cell_to_face_matrix
= m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
m_connectivity_computer.computeInverseConnectivityMatrix(cell_to_face_matrix,
m_face_to_cell_matrix);
m_face_to_cell_local_face = CellValuePerFace<unsigned short>(*this);
m_connectivity_computer.computeLocalChildItemNumberInItem(m_cell_to_face_matrix,
m_connectivity_computer.computeLocalChildItemNumberInItem(cell_to_face_matrix,
m_face_to_cell_matrix,
m_face_to_cell_local_face);
......
......@@ -237,6 +237,12 @@ class Connectivity final
return m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::node)];
}
KOKKOS_INLINE_FUNCTION
ConnectivityMatrix cellToFaceMatrix() const
{
return m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
}
KOKKOS_INLINE_FUNCTION
ConnectivityMatrix nodeToCellMatrix() const
{
......@@ -245,7 +251,6 @@ class Connectivity final
NodeValuePerCell<unsigned short> m_cell_to_node_local_cell;
ConnectivityMatrix m_cell_to_face_matrix;
FaceValuePerCell<bool> m_cell_face_is_reversed;
ConnectivityMatrix m_face_to_cell_matrix;
......@@ -407,7 +412,9 @@ inline const ConnectivityMatrix&
Connectivity<3>::itemToItemMatrix<TypeOfItem::cell,
TypeOfItem::face>() const
{
return m_cell_to_face_matrix;
const auto& cell_to_face_matrix
= m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
return cell_to_face_matrix;
}
template <>
......@@ -460,7 +467,9 @@ inline const ConnectivityMatrix&
Connectivity<2>::itemToItemMatrix<TypeOfItem::cell,
TypeOfItem::face>() const
{
return m_cell_to_face_matrix;
const auto& cell_to_face_matrix
= m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
return cell_to_face_matrix;
}
template <>
......@@ -525,8 +534,9 @@ inline const ConnectivityMatrix&
Connectivity<1>::itemToItemMatrix<TypeOfItem::cell,
TypeOfItem::face>() const
{
#warning in 1d, faces and node are the same
return m_cell_to_face_matrix;
const auto& cell_to_face_matrix
= m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
return cell_to_face_matrix;
}
template <>
......
......@@ -134,10 +134,11 @@ class MeshData
});
const auto& cell_to_node_matrix = m_mesh.connectivity().cellToNodeMatrix();
const auto& cell_to_face_matrix = m_mesh.connectivity().cellToFaceMatrix();
Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) {
const auto& cell_nodes = cell_to_node_matrix.rowConst(j);
const auto& cell_faces = m_mesh.connectivity().m_cell_to_face_matrix.rowConst(j);
const auto& cell_faces = cell_to_face_matrix.rowConst(j);
const auto& cell_face_is_reversed = m_mesh.connectivity().m_cell_face_is_reversed.itemValues(j);
for (size_t L=0; L<cell_faces.length; ++L) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment