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<...>.