diff --git a/elements/src/include/ae108/elements/integrator/IntegratorBase.h b/elements/src/include/ae108/elements/integrator/IntegratorBase.h
index 17e281e9c60c45048a2fb52977d558996b2fb0c2..c2e2820f95a9ee7c8c7fd0aaa32482ac90f07e09 100644
--- a/elements/src/include/ae108/elements/integrator/IntegratorBase.h
+++ b/elements/src/include/ae108/elements/integrator/IntegratorBase.h
@@ -22,11 +22,12 @@ namespace ae108 {
 namespace elements {
 namespace integrator {
 
-template <class SizeType_, class ValueType_, SizeType_ Size_,
+template <class SizeType_, class ValueType_, class RealType_, SizeType_ Size_,
           SizeType_ Dimension_>
 struct IntegratorBase {
   using size_type = SizeType_;
   using value_type = ValueType_;
+  using real_type = RealType_;
 
   /**
    * @brief Contains vectors of function evaluations at each selected point.
diff --git a/elements/src/include/ae108/elements/integrator/IsoparametricIntegrator.h b/elements/src/include/ae108/elements/integrator/IsoparametricIntegrator.h
index 5ef576ae1587cc828179c4b393dd1b9443268bd6..be380115f4ae0c2db424546f0a1dd4b584fec3ea 100644
--- a/elements/src/include/ae108/elements/integrator/IsoparametricIntegrator.h
+++ b/elements/src/include/ae108/elements/integrator/IsoparametricIntegrator.h
@@ -27,11 +27,11 @@ namespace ae108 {
 namespace elements {
 namespace integrator {
 
-template <class Shape_, class Quadrature_>
+template <class Shape_, class Quadrature_, class ValueType_ = double,
+          class RealType_ = double>
 class IsoparametricIntegrator final
-    : public IntegratorBase<typename Shape_::size_type,
-                            typename Shape_::value_type, Shape_::size(),
-                            Shape_::dimension()> {
+    : public IntegratorBase<typename Shape_::size_type, ValueType_, RealType_,
+                            Shape_::size(), Shape_::dimension()> {
 public:
   using Embedding = embedding::IsoparametricEmbedding<Shape_>;
   using Quadrature = Quadrature_;
@@ -72,8 +72,9 @@ private:
   typename Quadrature::template Collection<PostTransform> J_;
 };
 
-template <class Shape_, class Quadrature_>
-struct IntegrateTrait<IsoparametricIntegrator<Shape_, Quadrature_>> {
+template <class Shape_, class Quadrature_, class ValueType_, class RealType_>
+struct IntegrateTrait<
+    IsoparametricIntegrator<Shape_, Quadrature_, ValueType_, RealType_>> {
   /**
    * @tparam DiscretizedFunction Equal to an
    * Integrator::DiscretizedFunction<...>.