diff --git a/test/freeflow/navierstokes/analyticalsolutionvectors.hh b/test/freeflow/navierstokes/analyticalsolutionvectors.hh
index 90c0842538ed61e24508c0c10c626bbcff9e0144..eb3e2bb9850a4dc26cf3953560664933538b5fa5 100644
--- a/test/freeflow/navierstokes/analyticalsolutionvectors.hh
+++ b/test/freeflow/navierstokes/analyticalsolutionvectors.hh
@@ -103,6 +103,14 @@ private:
     std::vector<VelocityVector> analyticalVelocity_;
     std::vector<VelocityVector> analyticalVelocityOnFace_;
 };
+
+template<class Problem>
+NavierStokesAnalyticalSolutionVectors(std::shared_ptr<Problem> p)
+-> NavierStokesAnalyticalSolutionVectors<Problem>;
+
+template<class Problem, class Scalar>
+NavierStokesAnalyticalSolutionVectors(std::shared_ptr<Problem> p, Scalar t)
+-> NavierStokesAnalyticalSolutionVectors<Problem, Scalar>;
 } // end namespace Dumux
 
 #endif
diff --git a/test/freeflow/navierstokes/angeli/main.cc b/test/freeflow/navierstokes/angeli/main.cc
index e392b941a88d9fc574ce38e1f155a200abc1926b..1ba0fb16dac369e679578bca348af6412625da5b 100644
--- a/test/freeflow/navierstokes/angeli/main.cc
+++ b/test/freeflow/navierstokes/angeli/main.cc
@@ -113,7 +113,7 @@ int main(int argc, char** argv)
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     IOFields::initOutputModule(vtkWriter); // Add model specific output fields
-    NavierStokesAnalyticalSolutionVectors<Problem> analyticalSolVectors(problem, tStart);
+    NavierStokesAnalyticalSolutionVectors analyticalSolVectors(problem, tStart);
     vtkWriter.addField(analyticalSolVectors.getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(analyticalSolVectors.getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(analyticalSolVectors.getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");
diff --git a/test/freeflow/navierstokes/channel/1d/main.cc b/test/freeflow/navierstokes/channel/1d/main.cc
index 8890c711d1973a782173806e38b4cb972c9619af..fed25692a7e7d9be7eb9997e828264e810d0d21f 100644
--- a/test/freeflow/navierstokes/channel/1d/main.cc
+++ b/test/freeflow/navierstokes/channel/1d/main.cc
@@ -98,7 +98,7 @@ int main(int argc, char** argv)
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     IOFields::initOutputModule(vtkWriter); // Add model specific output fields
 
-    NavierStokesAnalyticalSolutionVectors<Problem> analyticalSolVectors(problem);
+    NavierStokesAnalyticalSolutionVectors analyticalSolVectors(problem);
     vtkWriter.addField(analyticalSolVectors.getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(analyticalSolVectors.getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(analyticalSolVectors.getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");
diff --git a/test/freeflow/navierstokes/channel/2d/main.cc b/test/freeflow/navierstokes/channel/2d/main.cc
index 621d7bd4837279eb2f00acfb7b970cd87b4bc90d..97e866e12809e07bb81d2afb37d7fb4dc6ab6309 100644
--- a/test/freeflow/navierstokes/channel/2d/main.cc
+++ b/test/freeflow/navierstokes/channel/2d/main.cc
@@ -119,7 +119,7 @@ int main(int argc, char** argv)
 
     if (problem->hasAnalyticalSolution())
     {
-        NavierStokesAnalyticalSolutionVectors<Problem> analyticalSolVectors(problem);
+        NavierStokesAnalyticalSolutionVectors analyticalSolVectors(problem);
 
         vtkWriter.addField(analyticalSolVectors.getAnalyticalPressureSolution(), "pressureExact");
         vtkWriter.addField(analyticalSolVectors.getAnalyticalVelocitySolution(), "velocityExact");
diff --git a/test/freeflow/navierstokes/donea/main.cc b/test/freeflow/navierstokes/donea/main.cc
index 0576644ff85d36be92cc12f234f613563cc90a5d..a777e1babc58e03ef7f29637d0e4eaee194f756b 100644
--- a/test/freeflow/navierstokes/donea/main.cc
+++ b/test/freeflow/navierstokes/donea/main.cc
@@ -100,7 +100,7 @@ int main(int argc, char** argv)
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     IOFields::initOutputModule(vtkWriter); // Add model specific output fields
 
-    NavierStokesAnalyticalSolutionVectors<Problem> analyticalSolVectors(problem);
+    NavierStokesAnalyticalSolutionVectors analyticalSolVectors(problem);
     vtkWriter.addField(analyticalSolVectors.getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(analyticalSolVectors.getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(analyticalSolVectors.getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");
diff --git a/test/freeflow/navierstokes/kovasznay/main.cc b/test/freeflow/navierstokes/kovasznay/main.cc
index 5f974f2aec433643dba7c52a5cf93c8bbc2fb08f..c42b7457bc7b5d3ef5614f0bf5409236cb90b56c 100644
--- a/test/freeflow/navierstokes/kovasznay/main.cc
+++ b/test/freeflow/navierstokes/kovasznay/main.cc
@@ -128,7 +128,7 @@ int main(int argc, char** argv)
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     IOFields::initOutputModule(vtkWriter); // Add model specific output fields
 
-    NavierStokesAnalyticalSolutionVectors<Problem> analyticalSolVectors(problem);
+    NavierStokesAnalyticalSolutionVectors analyticalSolVectors(problem);
     vtkWriter.addField(analyticalSolVectors.getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(analyticalSolVectors.getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(analyticalSolVectors.getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");
diff --git a/test/freeflow/navierstokes/sincos/main.cc b/test/freeflow/navierstokes/sincos/main.cc
index 9664be22cff6a8cd287006b3cf877aa8663f78b6..d358514427c4b089f2a18b6c731ab8330aaa9546 100644
--- a/test/freeflow/navierstokes/sincos/main.cc
+++ b/test/freeflow/navierstokes/sincos/main.cc
@@ -188,7 +188,7 @@ int main(int argc, char** argv)
     vtkWriter.addField(sourceX, "sourceX");
     vtkWriter.addField(sourceY, "sourceY");
 
-    NavierStokesAnalyticalSolutionVectors<Problem> analyticalSolVectors(problem, 0.0);
+    NavierStokesAnalyticalSolutionVectors analyticalSolVectors(problem, 0.0);
     vtkWriter.addField(analyticalSolVectors.getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(analyticalSolVectors.getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(analyticalSolVectors.getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");