From 2f09c98c387e24e024cbc41ef532b7f704e005bb Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <github@naumov.de>
Date: Wed, 28 Jun 2017 01:09:47 +0200
Subject: [PATCH] [PL] HM: Fix template instantiation declarations.

---
 .../CreateHydroMechanicsProcess.cpp               |  5 -----
 .../HydroMechanics/CreateHydroMechanicsProcess.h  | 15 +++++++++++++++
 ProcessLib/HydroMechanics/HydroMechanicsProcess.h |  3 +++
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp
index 298efe7c713..31774e41bdb 100644
--- a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp
+++ b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp
@@ -21,11 +21,6 @@ namespace ProcessLib
 {
 namespace HydroMechanics
 {
-template <int DisplacementDim>
-class HydroMechanicsProcess;
-
-extern template class HydroMechanicsProcess<2>;
-extern template class HydroMechanicsProcess<3>;
 
 template <int DisplacementDim>
 std::unique_ptr<Process> createHydroMechanicsProcess(
diff --git a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h
index bb7707df04b..1784407547e 100644
--- a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h
+++ b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h
@@ -41,5 +41,20 @@ std::unique_ptr<Process> createHydroMechanicsProcess(
     unsigned const integration_order,
     BaseLib::ConfigTree const& config);
 
+extern template std::unique_ptr<Process> createHydroMechanicsProcess<2>(
+    MeshLib::Mesh& mesh,
+    std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
+    std::vector<ProcessVariable> const& variables,
+    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+    unsigned const integration_order,
+    BaseLib::ConfigTree const& config);
+
+extern template std::unique_ptr<Process> createHydroMechanicsProcess<3>(
+    MeshLib::Mesh& mesh,
+    std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
+    std::vector<ProcessVariable> const& variables,
+    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+    unsigned const integration_order,
+    BaseLib::ConfigTree const& config);
 }  // namespace HydroMechanics
 }  // namespace ProcessLib
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h
index 5211eb23453..6eb5fe5934c 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h
+++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h
@@ -257,5 +257,8 @@ private:
         _local_to_global_index_map_single_component;
 };
 
+extern template class HydroMechanicsProcess<2>;
+extern template class HydroMechanicsProcess<3>;
+
 }  // namespace HydroMechanics
 }  // namespace ProcessLib
-- 
GitLab