diff --git a/src/language/utils/IntegrateOnCells.hpp b/src/language/utils/IntegrateOnCells.hpp
index 0290b3692514e8be569d76de3fff3060eed6e301..8b6008d73672a24ee5473369250f00ce05342d7e 100644
--- a/src/language/utils/IntegrateOnCells.hpp
+++ b/src/language/utils/IntegrateOnCells.hpp
@@ -488,12 +488,10 @@ class IntegrateOnCells<OutputType(InputType)> : public PugsFunctionAdapter<Outpu
               }
             }
           } else if (cell_to_node.size() == 6) {
-            const auto qf = QuadratureManager::instance().getCubeFormula(quadrature_descriptor);
+            const auto qf = QuadratureManager::instance().getPyramidFormula(quadrature_descriptor);
             {   // top pyramid
-              const CubeTransformation T0(xr[cell_to_node[1]], xr[cell_to_node[2]], xr[cell_to_node[3]],
-                                          xr[cell_to_node[4]],   //
-                                          xr[cell_to_node[5]], xr[cell_to_node[5]], xr[cell_to_node[5]],
-                                          xr[cell_to_node[5]]);
+              const PyramidTransformation T0(xr[cell_to_node[1]], xr[cell_to_node[2]], xr[cell_to_node[3]],
+                                             xr[cell_to_node[4]], xr[cell_to_node[5]]);
 
               for (size_t i_point = 0; i_point < qf.numberOfPoints(); ++i_point) {
                 const auto xi = qf.point(i_point);
@@ -503,10 +501,8 @@ class IntegrateOnCells<OutputType(InputType)> : public PugsFunctionAdapter<Outpu
               }
             }
             {   // bottom pyramid
-              const CubeTransformation T1(xr[cell_to_node[4]], xr[cell_to_node[3]], xr[cell_to_node[2]],
-                                          xr[cell_to_node[1]],   //
-                                          xr[cell_to_node[0]], xr[cell_to_node[0]], xr[cell_to_node[0]],
-                                          xr[cell_to_node[0]]);
+              const PyramidTransformation T1(xr[cell_to_node[4]], xr[cell_to_node[3]], xr[cell_to_node[2]],
+                                             xr[cell_to_node[1]], xr[cell_to_node[0]]);
 
               for (size_t i_point = 0; i_point < qf.numberOfPoints(); ++i_point) {
                 const auto xi = qf.point(i_point);
diff --git a/src/scheme/CellIntegrator.hpp b/src/scheme/CellIntegrator.hpp
index 51758560af9b1f59bdd98ef9f7c905fa8d9480a3..e3a73a89ca5bcc6f5fda9039be3900805ef32843 100644
--- a/src/scheme/CellIntegrator.hpp
+++ b/src/scheme/CellIntegrator.hpp
@@ -425,12 +425,10 @@ class CellIntegrator
               }
             }
           } else if (cell_to_node.size() == 6) {
-            const auto qf = QuadratureManager::instance().getCubeFormula(quadrature_descriptor);
+            const auto qf = QuadratureManager::instance().getPyramidFormula(quadrature_descriptor);
             {   // top pyramid
-              const CubeTransformation T0(xr[cell_to_node[1]], xr[cell_to_node[2]], xr[cell_to_node[3]],
-                                          xr[cell_to_node[4]],   //
-                                          xr[cell_to_node[5]], xr[cell_to_node[5]], xr[cell_to_node[5]],
-                                          xr[cell_to_node[5]]);
+              const PyramidTransformation T0(xr[cell_to_node[1]], xr[cell_to_node[2]], xr[cell_to_node[3]],
+                                             xr[cell_to_node[4]], xr[cell_to_node[5]]);
 
               for (size_t i_point = 0; i_point < qf.numberOfPoints(); ++i_point) {
                 const auto xi = qf.point(i_point);
@@ -438,10 +436,8 @@ class CellIntegrator
               }
             }
             {   // bottom pyramid
-              const CubeTransformation T1(xr[cell_to_node[4]], xr[cell_to_node[3]], xr[cell_to_node[2]],
-                                          xr[cell_to_node[1]],   //
-                                          xr[cell_to_node[0]], xr[cell_to_node[0]], xr[cell_to_node[0]],
-                                          xr[cell_to_node[0]]);
+              const PyramidTransformation T1(xr[cell_to_node[4]], xr[cell_to_node[3]], xr[cell_to_node[2]],
+                                             xr[cell_to_node[1]], xr[cell_to_node[0]]);
 
               for (size_t i_point = 0; i_point < qf.numberOfPoints(); ++i_point) {
                 const auto xi = qf.point(i_point);