diff --git a/Device/Data/Powerfield.h b/Device/Data/Powerfield.h
index 34c38902f812243750f4bec0dd0f456fd4786d9a..4de2677c84eb45e3c92ddbb5d9eb41586a3aee8c 100644
--- a/Device/Data/Powerfield.h
+++ b/Device/Data/Powerfield.h
@@ -399,11 +399,11 @@ std::vector<int> Powerfield<T>::getAxesBinIndices(size_t global_index) const
     ASSERT(m_ll_data);
     size_t remainder = global_index;
     std::vector<int> result;
-    result.resize(m_ll_data->rank());
-    for (size_t i = 0; i < m_ll_data->rank(); ++i) {
-        result[m_ll_data->rank() - 1 - i] =
-            (int)(remainder % m_axes[m_ll_data->rank() - 1 - i]->size());
-        remainder /= m_axes[m_ll_data->rank() - 1 - i]->size();
+    result.resize(rank());
+    for (size_t i = 0; i < rank(); ++i) {
+        result[rank() - 1 - i] =
+            (int)(remainder % m_axes[rank() - 1 - i]->size());
+        remainder /= m_axes[rank() - 1 - i]->size();
     }
     return result;
 }
@@ -413,8 +413,8 @@ size_t Powerfield<T>::getAxisBinIndex(size_t global_index, size_t i_selected_axi
 {
     ASSERT(m_ll_data);
     size_t remainder(global_index);
-    for (size_t i = 0; i < m_ll_data->rank(); ++i) {
-        size_t i_axis = m_ll_data->rank() - 1 - i;
+    for (size_t i = 0; i < rank(); ++i) {
+        size_t i_axis = rank() - 1 - i;
         size_t result = remainder % m_axes[i_axis]->size();
         if (i_selected_axis == i_axis)
             return result;
@@ -427,10 +427,10 @@ template <class T>
 size_t Powerfield<T>::toGlobalIndex(const std::vector<unsigned>& axes_indices) const
 {
     ASSERT(m_ll_data);
-    ASSERT(axes_indices.size() == m_ll_data->rank());
+    ASSERT(axes_indices.size() == rank());
     size_t result = 0;
     size_t step_size = 1;
-    for (size_t i = m_ll_data->rank(); i > 0; --i) {
+    for (size_t i = rank(); i > 0; --i) {
         ASSERT(axes_indices[i - 1] < m_axes[i - 1]->size());
         result += axes_indices[i - 1] * step_size;
         step_size *= m_axes[i - 1]->size();
@@ -442,10 +442,10 @@ template <class T>
 size_t Powerfield<T>::findGlobalIndex(const std::vector<double>& coordinates) const
 {
     ASSERT(m_ll_data);
-    ASSERT(coordinates.size() == m_ll_data->rank());
+    ASSERT(coordinates.size() == rank());
     std::vector<unsigned> axes_indexes;
-    axes_indexes.resize(m_ll_data->rank());
-    for (size_t i = 0; i < m_ll_data->rank(); ++i)
+    axes_indexes.resize(rank());
+    for (size_t i = 0; i < rank(); ++i)
         axes_indexes[i] = static_cast<unsigned>(m_axes[i]->findClosestIndex(coordinates[i]));
     return toGlobalIndex(axes_indexes);
 }