diff --git a/src/amdis/assembler/ConvectionDiffusionOperator.hpp b/src/amdis/assembler/ConvectionDiffusionOperator.hpp
index 388370abc02d65561b351b99b3234b008088867c..5a694cfc828befbabbd798b9cf356bd674ed611a 100644
--- a/src/amdis/assembler/ConvectionDiffusionOperator.hpp
+++ b/src/amdis/assembler/ConvectionDiffusionOperator.hpp
@@ -94,7 +94,8 @@ namespace AMDiS
 
         // Compute the shape function gradients on the real element
         using WorldVector = FieldVector<RangeFieldType,Context::dow>;
-        thread_local std::vector<WorldVector> gradients(shapeGradients.size());
+        thread_local std::vector<WorldVector> gradients;
+        gradients.resize(shapeGradients.size());
 
         for (std::size_t i = 0; i < gradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], gradients[i]);
diff --git a/src/amdis/assembler/FirstOrderTestDivTrialvec.hpp b/src/amdis/assembler/FirstOrderTestDivTrialvec.hpp
index 5cdbeab30c818ca90454eeffdba526943da80ad5..a49618b776a5fe8754930be73dccb45c047455dd 100644
--- a/src/amdis/assembler/FirstOrderTestDivTrialvec.hpp
+++ b/src/amdis/assembler/FirstOrderTestDivTrialvec.hpp
@@ -76,7 +76,8 @@ namespace AMDiS
         colLocalFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > colGradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > colGradients;
+        colGradients.resize(shapeGradients.size());
 
         for (std::size_t i = 0; i < colGradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], colGradients[i]);
diff --git a/src/amdis/assembler/FirstOrderTestGradTrial.hpp b/src/amdis/assembler/FirstOrderTestGradTrial.hpp
index bccf890d72ed0d0289b9df7755692603e6a1e0e3..55aaf203987897f6a59397449b95ba83620dba1b 100644
--- a/src/amdis/assembler/FirstOrderTestGradTrial.hpp
+++ b/src/amdis/assembler/FirstOrderTestGradTrial.hpp
@@ -74,7 +74,8 @@ namespace AMDiS
         colLocalFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > colGradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > colGradients;
+        colGradients.resize(shapeGradients.size());
         for (std::size_t i = 0; i < colGradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], colGradients[i]);
 
diff --git a/src/amdis/assembler/FirstOrderTestPartialTrial.hpp b/src/amdis/assembler/FirstOrderTestPartialTrial.hpp
index d69dcb68b094c22ae90b48a6fc41590e93015f21..5c316fb1da885cc2302c6a0fe0ed442379c4da4a 100644
--- a/src/amdis/assembler/FirstOrderTestPartialTrial.hpp
+++ b/src/amdis/assembler/FirstOrderTestPartialTrial.hpp
@@ -79,7 +79,8 @@ namespace AMDiS
         colLocalFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<RangeFieldType> colPartial(shapeGradients.size());
+        thread_local std::vector<RangeFieldType> colPartial;
+        colPartial.resize(shapeGradients.size());
         for (std::size_t i = 0; i < colPartial.size(); ++i) {
           colPartial[i] = jacobian[comp_][0] * shapeGradients[i][0][0];
           for (std::size_t j = 1; j < jacobian.M(); ++j)
diff --git a/src/amdis/assembler/FirstOrderTestvecGradTrial.hpp b/src/amdis/assembler/FirstOrderTestvecGradTrial.hpp
index d06a44dbc79a2538e0933246edf81a30c1e80f98..e3ffd44e8f0a2e907627363735d00f485264ed93 100644
--- a/src/amdis/assembler/FirstOrderTestvecGradTrial.hpp
+++ b/src/amdis/assembler/FirstOrderTestvecGradTrial.hpp
@@ -76,7 +76,8 @@ namespace AMDiS
         colLocalFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > colGradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > colGradients;
+        colGradients.resize(shapeGradients.size());
         for (std::size_t i = 0; i < colGradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], colGradients[i]);
 
diff --git a/src/amdis/assembler/SecondOrderDivTestvecDivTrialvec.hpp b/src/amdis/assembler/SecondOrderDivTestvecDivTrialvec.hpp
index 0e841d53cfef6760ae18741161538680b1922dcf..3b4c0c5b9c33014336040cca08f7e5c8448b61ab 100644
--- a/src/amdis/assembler/SecondOrderDivTestvecDivTrialvec.hpp
+++ b/src/amdis/assembler/SecondOrderDivTestvecDivTrialvec.hpp
@@ -94,11 +94,13 @@ namespace AMDiS
         colLocalFE.localBasis().evaluateJacobian(local, colShapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RowFieldType,Context::dow> > rowGradients(rowShapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RowFieldType,Context::dow> > rowGradients;
+        rowGradients.resize(rowShapeGradients.size());
         for (std::size_t i = 0; i < rowGradients.size(); ++i)
           jacobian.mv(rowShapeGradients[i][0], rowGradients[i]);
 
-        thread_local std::vector<Dune::FieldVector<ColFieldType,Context::dow> > colGradients(colShapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<ColFieldType,Context::dow> > colGradients;
+        colGradients.resize(colShapeGradients.size());
         for (std::size_t i = 0; i < colGradients.size(); ++i)
           jacobian.mv(colShapeGradients[i][0], colGradients[i]);
 
@@ -145,7 +147,8 @@ namespace AMDiS
         localFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients;
+        gradients.resize(shapeGradients.size());
         for (std::size_t i = 0; i < gradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], gradients[i]);
 
diff --git a/src/amdis/assembler/SecondOrderGradTestGradTrial.hpp b/src/amdis/assembler/SecondOrderGradTestGradTrial.hpp
index d8f6ea1ddda6a0418390ee8e290e1c8f56953066..b85e6a16df6ab34db15afcc705e5528e3464fccd 100644
--- a/src/amdis/assembler/SecondOrderGradTestGradTrial.hpp
+++ b/src/amdis/assembler/SecondOrderGradTestGradTrial.hpp
@@ -90,7 +90,8 @@ namespace AMDiS
         localFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients;
+        gradients.resize(shapeGradients.size());
         for (std::size_t i = 0; i < gradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], gradients[i]);
 
@@ -133,7 +134,8 @@ namespace AMDiS
         localFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients;
+        gradients.resize(shapeGradients.size());
         for (std::size_t i = 0; i < gradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], gradients[i]);
 
@@ -183,7 +185,8 @@ namespace AMDiS
         localFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients;
+        gradients.resize(shapeGradients.size());
         for (std::size_t i = 0; i < gradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], gradients[i]);
 
diff --git a/src/amdis/assembler/SecondOrderPartialTestPartialTrial.hpp b/src/amdis/assembler/SecondOrderPartialTestPartialTrial.hpp
index 6539acf8ce1ec785c1a2cc689884f5e9fb8a2295..fe18b705eba823ad91dfb6717aba78f5acd24234 100644
--- a/src/amdis/assembler/SecondOrderPartialTestPartialTrial.hpp
+++ b/src/amdis/assembler/SecondOrderPartialTestPartialTrial.hpp
@@ -80,14 +80,16 @@ namespace AMDiS
         colLocalFE.localBasis().evaluateJacobian(local, colShapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<RowFieldType> rowPartial(rowShapeGradients.size());
+        thread_local std::vector<RowFieldType> rowPartial;
+        rowPartial.resize(rowShapeGradients.size());
         for (std::size_t i = 0; i < rowPartial.size(); ++i) {
           rowPartial[i] = jacobian[compTest_][0] * rowShapeGradients[i][0][0];
           for (std::size_t j = 1; j < jacobian.cols(); ++j)
             rowPartial[i] += jacobian[compTest_][j] * rowShapeGradients[i][0][j];
         }
 
-        thread_local std::vector<ColFieldType> colPartial(colShapeGradients.size());
+        thread_local std::vector<ColFieldType> colPartial;
+        colPartial.resize(colShapeGradients.size());
         for (std::size_t i = 0; i < colPartial.size(); ++i) {
           colPartial[i] = jacobian[compTrial_][0] * colShapeGradients[i][0][0];
           for (std::size_t j = 1; j < jacobian.cols(); ++j)
diff --git a/src/amdis/assembler/StokesOperator.hpp b/src/amdis/assembler/StokesOperator.hpp
index b9dd503273666303b696d2b6a01effdcf4220366..2bb0de76998ad1f13ee7deb4f31670786568adf2 100644
--- a/src/amdis/assembler/StokesOperator.hpp
+++ b/src/amdis/assembler/StokesOperator.hpp
@@ -74,7 +74,8 @@ namespace AMDiS
         velocityLocalFE.localBasis().evaluateJacobian(local, shapeGradients);
 
         // Compute the shape function gradients on the real element
-        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients(shapeGradients.size());
+        thread_local std::vector<Dune::FieldVector<RangeFieldType,Context::dow> > gradients;
+        gradients.resize(shapeGradients.size());
         for (std::size_t i = 0; i < gradients.size(); ++i)
           jacobian.mv(shapeGradients[i][0], gradients[i]);