diff --git a/dune/fufem-forms/unaryoperators.hh b/dune/fufem-forms/unaryoperators.hh index 22ec4fc4792b03f5d53bf866b60c88799e2e29e7..444383afe1df7442c43260c57b038a3a11ea47f8 100644 --- a/dune/fufem-forms/unaryoperators.hh +++ b/dune/fufem-forms/unaryoperators.hh @@ -138,11 +138,9 @@ namespace Dune::Fufem::Forms { }; else if constexpr(Node::isPower and Node::ChildType::isLeaf) return [&](const auto& i) { - using Field = typename LeafNode::FiniteElement::Traits::LocalBasisType::Traits::RangeFieldType; - static constexpr auto components = Node::degree(); + auto result = Range(0); auto componentIndex = i / leafNode_->size(); auto shapeFunctionIndex = i % leafNode_->size(); - auto result = Dune::FieldVector<Field,components>(0); result[componentIndex] = values[shapeFunctionIndex]; return result; }; @@ -230,8 +228,8 @@ namespace Dune::Fufem::Forms { return Dune::MetaType<LeafFEJacobian>(); else if constexpr(Node::isPower and Node::ChildType::isLeaf) { - static constexpr auto components = Node::degree(); - static constexpr auto dimension = LeafNode::FiniteElement::Traits::LocalBasisType::Traits::dimDomain; + constexpr auto components = Node::degree(); + constexpr auto dimension = LeafNode::FiniteElement::Traits::LocalBasisType::Traits::dimDomain; return Dune::MetaType<Dune::FieldMatrix<LeafFERangeField,components,dimension>>(); } } @@ -304,12 +302,9 @@ namespace Dune::Fufem::Forms { }; else if constexpr(Node::isPower and Node::ChildType::isLeaf) return [&](const auto& i) { - using F = typename LeafNode::FiniteElement::Traits::LocalBasisType::Traits::RangeFieldType; - static constexpr auto components = Node::degree(); - static constexpr auto dimension = LeafNode::FiniteElement::Traits::LocalBasisType::Traits::dimDomain; + auto result = Range(0); auto componentIndex = i / leafNode_->size(); auto shapeFunctionIndex = i % leafNode_->size(); - auto result = Dune::FieldMatrix<F,components,dimension>(0); result[componentIndex] = globalJacobians[shapeFunctionIndex][0]; return result; };