From c24def543a14626fe518a7d536bb188f9bc97d66 Mon Sep 17 00:00:00 2001 From: "Praetorius, Simon" <simon.praetorius@tu-dresden.de> Date: Tue, 26 Mar 2019 17:18:45 +0100 Subject: [PATCH] Instantiate ProblemStat and ProblemInstat for YaspGridBasis explicitly --- src/amdis/CMakeLists.txt | 2 +- src/amdis/ProblemInstat.cpp | 8 ++++---- src/amdis/ProblemInstat.hpp | 4 ++++ src/amdis/ProblemStat.cpp | 7 ++++--- src/amdis/ProblemStat.hpp | 5 ++++- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/amdis/CMakeLists.txt b/src/amdis/CMakeLists.txt index 706ce91d..d13f7292 100644 --- a/src/amdis/CMakeLists.txt +++ b/src/amdis/CMakeLists.txt @@ -8,7 +8,7 @@ dune_library_add_sources(amdis SOURCES Initfile.cpp InitfileParser.cpp ProblemInstatBase.cpp - # ProblemInstat.cpp + ProblemInstat.cpp ProblemStat.cpp StandardProblemIteration.cpp ) diff --git a/src/amdis/ProblemInstat.cpp b/src/amdis/ProblemInstat.cpp index 40f64261..afbf06e0 100644 --- a/src/amdis/ProblemInstat.cpp +++ b/src/amdis/ProblemInstat.cpp @@ -1,10 +1,10 @@ -#define AMDIS_NO_EXTERN_PROBLEMINSTAT +#include "config.h" #include "ProblemInstat.hpp" -#undef AMDIS_NO_EXTERN_PROBLEMINSTAT - namespace AMDiS { // explicit template instatiation - // template class ProblemInstat<YaspGridBasis<2,1>>; + template class ProblemInstat<YaspGridBasis<2,1>>; + template class ProblemInstat<YaspGridBasis<2,2>>; + } // end namespace AMDiS diff --git a/src/amdis/ProblemInstat.hpp b/src/amdis/ProblemInstat.hpp index a45f0c0d..f9040435 100644 --- a/src/amdis/ProblemInstat.hpp +++ b/src/amdis/ProblemInstat.hpp @@ -110,6 +110,10 @@ namespace AMDiS return {name, prob, initialProb}; } + // mark template as explicitly instantiated in cpp file + extern template class ProblemInstat<YaspGridBasis<2,1>>; + extern template class ProblemInstat<YaspGridBasis<2,2>>; + } // end namespace AMDiS #include "ProblemInstat.inc.hpp" diff --git a/src/amdis/ProblemStat.cpp b/src/amdis/ProblemStat.cpp index 691db325..fabf702f 100644 --- a/src/amdis/ProblemStat.cpp +++ b/src/amdis/ProblemStat.cpp @@ -1,9 +1,10 @@ -#define AMDIS_NO_EXTERN_PROBLEMSTAT +#include "config.h" #include "ProblemStat.hpp" -#undef AMDIS_NO_EXTERN_PROBLEMSTAT - namespace AMDiS { + // explicit template instatiation + template class ProblemStat<YaspGridBasis<2,1>>; + template class ProblemStat<YaspGridBasis<2,2>>; } // end namespace AMDiS diff --git a/src/amdis/ProblemStat.hpp b/src/amdis/ProblemStat.hpp index 050ef6af..b4578993 100644 --- a/src/amdis/ProblemStat.hpp +++ b/src/amdis/ProblemStat.hpp @@ -499,7 +499,10 @@ namespace AMDiS return {name, grid, globalBasis}; } + // mark templates as explicitly instantiated in cpp file + extern template class ProblemStat<YaspGridBasis<2,1>>; + extern template class ProblemStat<YaspGridBasis<2,2>>; + } // end namespace AMDiS #include "ProblemStat.inc.hpp" - -- GitLab