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

Make IConnectivity::getMatrix() public

parent 7b626f99
No related branches found
No related tags found
1 merge request!133Simplify access functions to the number of items
...@@ -123,9 +123,10 @@ class Connectivity final : public IConnectivity ...@@ -123,9 +123,10 @@ class Connectivity final : public IConnectivity
friend class ConnectivityComputer; friend class ConnectivityComputer;
public:
PUGS_INLINE PUGS_INLINE
const ConnectivityMatrix& const ConnectivityMatrix&
_getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const final
{ {
const ConnectivityMatrix& connectivity_matrix = m_item_to_item_matrix[itemTId(item_type_0)][itemTId(item_type_1)]; const ConnectivityMatrix& connectivity_matrix = m_item_to_item_matrix[itemTId(item_type_0)][itemTId(item_type_1)];
if (not connectivity_matrix.isBuilt()) { if (not connectivity_matrix.isBuilt()) {
...@@ -135,7 +136,6 @@ class Connectivity final : public IConnectivity ...@@ -135,7 +136,6 @@ class Connectivity final : public IConnectivity
return connectivity_matrix; return connectivity_matrix;
} }
public:
PUGS_INLINE PUGS_INLINE
CellValue<const CellType> CellValue<const CellType>
cellType() const cellType() const
...@@ -336,7 +336,7 @@ class Connectivity final : public IConnectivity ...@@ -336,7 +336,7 @@ class Connectivity final : public IConnectivity
PUGS_INLINE ItemToItemMatrix<source_item_type, target_item_type> PUGS_INLINE ItemToItemMatrix<source_item_type, target_item_type>
getItemToItemMatrix() const getItemToItemMatrix() const
{ {
return ItemToItemMatrix<source_item_type, target_item_type>(_getMatrix(source_item_type, target_item_type)); return ItemToItemMatrix<source_item_type, target_item_type>(getMatrix(source_item_type, target_item_type));
} }
PUGS_INLINE PUGS_INLINE
......
...@@ -15,7 +15,7 @@ ConnectivityComputer::computeConnectivityMatrix(const ConnectivityType& connecti ...@@ -15,7 +15,7 @@ ConnectivityComputer::computeConnectivityMatrix(const ConnectivityType& connecti
{ {
ConnectivityMatrix item_to_child_item_matrix; ConnectivityMatrix item_to_child_item_matrix;
if (connectivity.isConnectivityMatrixBuilt(child_item_type, item_type)) { if (connectivity.isConnectivityMatrixBuilt(child_item_type, item_type)) {
const ConnectivityMatrix& child_to_item_matrix = connectivity._getMatrix(child_item_type, item_type); const ConnectivityMatrix& child_to_item_matrix = connectivity.getMatrix(child_item_type, item_type);
std::cout << "computing connectivity " << itemName(item_type) << " -> " << itemName(child_item_type) << '\n'; std::cout << "computing connectivity " << itemName(item_type) << " -> " << itemName(child_item_type) << '\n';
...@@ -58,7 +58,7 @@ ConnectivityComputer::_computeInverse(const ConnectivityMatrix& item_to_child_ma ...@@ -58,7 +58,7 @@ ConnectivityComputer::_computeInverse(const ConnectivityMatrix& item_to_child_ma
size_t i = 0; size_t i = 0;
for (const auto& [child_item_id, item_vector] : child_to_item_vector_map) { for (const auto& [child_item_id, item_vector] : child_to_item_vector_map) {
if (child_item_id != i) { if (child_item_id != i) {
throw NotImplementedError("sparse item numerotation NIY\n"); throw NotImplementedError("sparse item numerotation");
} }
++i; ++i;
} }
......
...@@ -9,16 +9,15 @@ ...@@ -9,16 +9,15 @@
class IConnectivity : public std::enable_shared_from_this<IConnectivity> class IConnectivity : public std::enable_shared_from_this<IConnectivity>
{ {
protected: public:
template <typename DataType, typename ItemOfItem, typename ConnectivityPtr> template <typename DataType, typename ItemOfItem, typename ConnectivityPtr>
friend class SubItemValuePerItem; friend class SubItemValuePerItem;
template <typename DataType, typename ItemOfItem, typename ConnectivityPtr> template <typename DataType, typename ItemOfItem, typename ConnectivityPtr>
friend class SubItemArrayPerItem; friend class SubItemArrayPerItem;
virtual const ConnectivityMatrix& _getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const = 0; virtual const ConnectivityMatrix& getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const = 0;
public:
virtual size_t dimension() const = 0; virtual size_t dimension() const = 0;
std::shared_ptr<const IConnectivity> std::shared_ptr<const IConnectivity>
......
...@@ -197,7 +197,7 @@ class SubItemArrayPerItem ...@@ -197,7 +197,7 @@ class SubItemArrayPerItem
static_assert(not std::is_const_v<DataType>, "Cannot allocate SubItemArrayPerItem of const data: only " static_assert(not std::is_const_v<DataType>, "Cannot allocate SubItemArrayPerItem of const data: only "
"view is supported"); "view is supported");
ConnectivityMatrix connectivity_matrix = connectivity._getMatrix(item_type, sub_item_type); ConnectivityMatrix connectivity_matrix = connectivity.getMatrix(item_type, sub_item_type);
m_row_map = connectivity_matrix.rowsMap(); m_row_map = connectivity_matrix.rowsMap();
m_values = Table<std::remove_const_t<DataType>>(connectivity_matrix.numberOfValues(), size_of_arrays); m_values = Table<std::remove_const_t<DataType>>(connectivity_matrix.numberOfValues(), size_of_arrays);
......
...@@ -192,10 +192,10 @@ class SubItemValuePerItem ...@@ -192,10 +192,10 @@ class SubItemValuePerItem
static_assert(not std::is_const_v<DataType>, "Cannot allocate SubItemValuePerItem of const data: only " static_assert(not std::is_const_v<DataType>, "Cannot allocate SubItemValuePerItem of const data: only "
"view is supported"); "view is supported");
ConnectivityMatrix connectivity_matrix = connectivity._getMatrix(item_type, sub_item_type); ConnectivityMatrix connectivity_matrix = connectivity.getMatrix(item_type, sub_item_type);
m_row_map = connectivity_matrix.rowsMap(); m_row_map = connectivity_matrix.rowsMap();
m_values = Array<std::remove_const_t<DataType>>(connectivity_matrix.numberOfValues()); m_values = Array<DataType>(connectivity_matrix.numberOfValues());
} }
~SubItemValuePerItem() = default; ~SubItemValuePerItem() = default;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment