diff --git a/src/amdis/CMakeLists.txt b/src/amdis/CMakeLists.txt index 706ce91d9481db4232090b5ad6295ae0645adc1c..d13f729273157a36b29e8265059b81940b22935d 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 40f64261bd1e76c88fefe86aa5277927eb682ebe..afbf06e06377ed0241700ceefbdf0e16c03aa03d 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 a45f0c0d78c03ef458b92a588fe39290deaabcdf..f90404351b507ed5eebabed11904126e089350f2 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 691db3259d3e93732950d44600f1e8bcd54129ed..fabf702f1661afeacaedd0a3bdc654148f836d0f 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 050ef6af48ea3c6ef80ddb579ec5c93e9a677e4a..b4578993f8c93b557b0b8ac862bd0943c15da194 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" -