diff --git a/src/language/utils/IntegrateOnCells.hpp b/src/language/utils/IntegrateOnCells.hpp index 669190ca6b31895a66165671e08a192fcbda4b3f..0290b3692514e8be569d76de3fff3060eed6e301 100644 --- a/src/language/utils/IntegrateOnCells.hpp +++ b/src/language/utils/IntegrateOnCells.hpp @@ -566,38 +566,38 @@ class IntegrateOnCells<OutputType(InputType)> : public PugsFunctionAdapter<Outpu } public: - template <typename MeshType, typename OutputArrayT> + template <typename MeshType, typename ArrayT> static PUGS_INLINE void integrateTo(const FunctionSymbolId& function_symbol_id, const IQuadratureDescriptor& quadrature_descriptor, const MeshType& mesh, - OutputArrayT& value) + ArrayT& value) { constexpr size_t Dimension = MeshType::Dimension; if (quadrature_descriptor.isTensorial()) { - _tensorialIntegrateTo<MeshType, OutputArrayT>(function_symbol_id, quadrature_descriptor, mesh, - AllCells<Dimension>{mesh.connectivity()}, value); + _tensorialIntegrateTo<MeshType, ArrayT>(function_symbol_id, quadrature_descriptor, mesh, + AllCells<Dimension>{mesh.connectivity()}, value); } else { - _directIntegrateTo<MeshType, OutputArrayT>(function_symbol_id, quadrature_descriptor, mesh, - AllCells<Dimension>{mesh.connectivity()}, value); + _directIntegrateTo<MeshType, ArrayT>(function_symbol_id, quadrature_descriptor, mesh, + AllCells<Dimension>{mesh.connectivity()}, value); } } - template <typename MeshType, typename OutputArrayT> - static PUGS_INLINE Array<OutputType> + template <typename MeshType, template <typename DataType> typename ArrayT> + static PUGS_INLINE ArrayT<OutputType> integrate(const FunctionSymbolId& function_symbol_id, const IQuadratureDescriptor& quadrature_descriptor, const MeshType& mesh, - const Array<CellId>& cell_list) + const ArrayT<CellId>& cell_list) { - Array<OutputType> value(size(cell_list)); + ArrayT<OutputType> value(size(cell_list)); if (quadrature_descriptor.isTensorial()) { - _tensorialIntegrateTo<MeshType, OutputArrayT>(function_symbol_id, quadrature_descriptor, mesh, - CellList{cell_list}, value); + _tensorialIntegrateTo<MeshType, ArrayT<OutputType>>(function_symbol_id, quadrature_descriptor, mesh, + CellList{cell_list}, value); } else { - _directIntegrateTo<MeshType, OutputArrayT>(function_symbol_id, quadrature_descriptor, mesh, CellList{cell_list}, - value); + _directIntegrateTo<MeshType, ArrayT<OutputType>>(function_symbol_id, quadrature_descriptor, mesh, + CellList{cell_list}, value); } return value;