diff --git a/opm/simulators/linalg/ParallelOverlappingILU0.cpp b/opm/simulators/linalg/ParallelOverlappingILU0.cpp index 5cacd87a6..6b27473cc 100644 --- a/opm/simulators/linalg/ParallelOverlappingILU0.cpp +++ b/opm/simulators/linalg/ParallelOverlappingILU0.cpp @@ -27,30 +27,37 @@ namespace Opm { -#define INSTANCE_PAR(Dim, ...) \ - template class ParallelOverlappingILU0>, \ - Dune::BlockVector>, \ - Dune::BlockVector>, \ - __VA_ARGS__>; \ - template class ParallelOverlappingILU0>, \ - Dune::BlockVector>, \ - Dune::BlockVector>, \ +#define INSTANTIATE_PAR(T, Dim, ...) \ + template class ParallelOverlappingILU0>, \ + Dune::BlockVector>, \ + Dune::BlockVector>, \ + __VA_ARGS__>; \ + template class ParallelOverlappingILU0>, \ + Dune::BlockVector>, \ + Dune::BlockVector>, \ __VA_ARGS__>; #if HAVE_MPI -#define INSTANCE(Dim) \ - INSTANCE_PAR(Dim, Dune::Amg::SequentialInformation) \ - INSTANCE_PAR(Dim, Dune::OwnerOverlapCopyCommunication) +#define INSTANTIATE(T,Dim) \ + INSTANTIATE_PAR(T, Dim, Dune::Amg::SequentialInformation) \ + INSTANTIATE_PAR(T, Dim, Dune::OwnerOverlapCopyCommunication) #else -#define INSTANCE(Dim) \ - INSTANCE_PAR(Dim, Dune::Amg::SequentialInformation) +#define INSTANTIATE(T,Dim) \ + INSTANTIATE_PAR(T, Dim, Dune::Amg::SequentialInformation) #endif -INSTANCE(1) -INSTANCE(2) -INSTANCE(3) -INSTANCE(4) -INSTANCE(5) -INSTANCE(6) +#define INSTANTIATE_TYPE(T) \ + INSTANTIATE(T,1) \ + INSTANTIATE(T,2) \ + INSTANTIATE(T,3) \ + INSTANTIATE(T,4) \ + INSTANTIATE(T,5) \ + INSTANTIATE(T,6) + +INSTANTIATE_TYPE(double) + +#if FLOW_INSTANTIATE_FLOAT +INSTANTIATE_TYPE(float) +#endif } // end namespace Opm