|
Tpetra Matrix/Vector Services Version of the Day
|
00001 #include "Tpetra_BlockMultiVector.hpp" 00002 00003 #ifdef HAVE_TPETRA_EXPLICIT_INSTANTIATION 00004 00005 // #include "Tpetra_ExplicitInstantiationHelpers.hpp" 00006 00007 #include "Tpetra_BlockMultiVector_def.hpp" 00008 00009 #include <Kokkos_SerialNode.hpp> 00010 #if defined(HAVE_KOKKOS_TBB) 00011 # include <Kokkos_TBBNode.hpp> 00012 #endif 00013 #if defined(HAVE_KOKKOS_THREADPOOL) 00014 # include <Kokkos_TPINode.hpp> 00015 #endif 00016 #if defined(HAVE_KOKKOS_THRUST) 00017 # include <Kokkos_ThrustGPUNode.hpp> 00018 #endif 00019 00020 namespace Tpetra { 00021 00022 #if defined(HAVE_TPETRA_INST_FLOAT) 00023 TPETRA_BLOCKMULTIVECTOR_INSTANT(float,int,int,Kokkos::SerialNode) 00024 #if defined(HAVE_KOKKOS_TBB) 00025 TPETRA_BLOCKMULTIVECTOR_INSTANT(float,int,int,Kokkos::TBBNode) 00026 #endif 00027 #if defined(HAVE_KOKKOS_THREADPOOL) 00028 TPETRA_BLOCKMULTIVECTOR_INSTANT(float,int,int,Kokkos::TPINode) 00029 #endif 00030 #if defined(HAVE_KOKKOS_THRUST) && defined(HAVE_KOKKOS_CUDA_FLOAT) 00031 TPETRA_BLOCKMULTIVECTOR_INSTANT(float,int,int,Kokkos::ThrustGPUNode) 00032 #endif 00033 #endif 00034 00035 #if defined(HAVE_TPETRA_INST_DOUBLE) 00036 TPETRA_BLOCKMULTIVECTOR_INSTANT(double,int,int,Kokkos::SerialNode) 00037 #if defined(HAVE_KOKKOS_TBB) 00038 TPETRA_BLOCKMULTIVECTOR_INSTANT(double,int,int,Kokkos::TBBNode) 00039 #endif 00040 #if defined(HAVE_KOKKOS_THREADPOOL) 00041 TPETRA_BLOCKMULTIVECTOR_INSTANT(double,int,int,Kokkos::TPINode) 00042 #endif 00043 #if defined(HAVE_KOKKOS_THRUST) && defined(HAVE_KOKKOS_CUDA_DOUBLE) 00044 TPETRA_BLOCKMULTIVECTOR_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00045 #endif 00046 #endif 00047 00048 #if defined(HAVE_TPETRA_INST_COMPLEX_FLOAT) 00049 TPETRA_BLOCKMULTIVECTOR_INSTANT(std::complex<float>,int,int,Kokkos::SerialNode) 00050 #if defined(HAVE_KOKKOS_TBB) 00051 TPETRA_BLOCKMULTIVECTOR_INSTANT(std::complex<float>,int,int,Kokkos::TBBNode) 00052 #endif 00053 #if defined(HAVE_KOKKOS_THREADPOOL) 00054 TPETRA_BLOCKMULTIVECTOR_INSTANT(std::complex<float>,int,int,Kokkos::TPINode) 00055 #endif 00056 // no complex on GPU support for now 00057 //#if defined(HAVE_KOKKOS_THRUST) && defined(HAVE_KOKKOS_CUDA_DOUBLE) 00058 // TPETRA_BLOCKMULTIVECTOR_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00059 //#endif 00060 #endif 00061 00062 #if defined(HAVE_TPETRA_INST_COMPLEX_DOUBLE) 00063 TPETRA_BLOCKMULTIVECTOR_INSTANT(std::complex<double>,int,int,Kokkos::SerialNode) 00064 #if defined(HAVE_KOKKOS_TBB) 00065 TPETRA_BLOCKMULTIVECTOR_INSTANT(std::complex<double>,int,int,Kokkos::TBBNode) 00066 #endif 00067 #if defined(HAVE_KOKKOS_THREADPOOL) 00068 TPETRA_BLOCKMULTIVECTOR_INSTANT(std::complex<double>,int,int,Kokkos::TPINode) 00069 #endif 00070 // no complex on GPU support for now 00071 //#if defined(HAVE_KOKKOS_THRUST) && defined(HAVE_KOKKOS_CUDA_DOUBLE) 00072 // TPETRA_BLOCKMULTIVECTOR_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00073 //#endif 00074 #endif 00075 00076 00077 } // namespace Tpetra 00078 00079 #endif // HAVE_TPETRA_EXPLICIT_INSTANTIATION
1.7.4