Compile error when setting Tpetra_DefaultNode to KokkosSerialWrapperNode if OpenMP is enabled
Created by: barche
Compiling master with the following config
-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
-DTrilinos_ENABLE_FEI=OFF \
-DTrilinos_ENABLE_STKClassic=OFF \
-DTrilinos_ENABLE_SEACAS=OFF \
-DTrilinos_ENABLE_Sundance=OFF \
-DTrilinos_ENABLE_TESTS=OFF \
-DTrilinos_ENABLE_OpenMP:BOOL=ON \
-DTpetra_DefaultNode:STRING=Kokkos::Compat::KokkosSerialWrapperNode \
-DTpetra_INST_SERIAL:BOOL=ON \
-DTPL_ENABLE_MPI:BOOL=ON \
-DTrilinos_ENABLE_PyTrilinos:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DTPL_ENABLE_Netcdf=OFF \
-DTPL_ENABLE_QT=OFF \
-DTPL_ENABLE_GLM=OFF \
-DBUILD_SHARED_LIBS:BOOL=ON \
yields the error:
In file included from /home/myusername/src/build/aur/trilinos/src/Trilinos/packages/panzer/dof-mgr/src/Panzer_FieldAggPattern.hpp:51:0,
from /home/myusername/src/build/aur/trilinos/src/Trilinos/packages/panzer/dof-mgr/src/Panzer_DOFManager_decl.hpp:51,
from /home/myusername/src/build/aur/trilinos/src/Trilinos/packages/panzer/dof-mgr/src/Panzer_DOFManager.cpp:45:
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/teuchos/core/src/Teuchos_RCP.hpp: In instantiation of 'Teuchos::RCP<T>::RCP(const Teuchos::RCP<T2>&) [with T2 = const Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >; T = const Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> >]':
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/panzer/dof-mgr/src/Panzer_DOFManager_impl.hpp:997:71: required from 'Teuchos::RCP<const Tpetra::Map<LocalOrdinalT, GlobalOrdinalT, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > > panzer::DOFManager<LocalOrdinalT, GlobalOrdinalT>::buildOverlapMapFromElements(const panzer::DOFManager<LocalOrdinalT, GlobalOrdinalT>::ElementBlockAccess&) const [with LocalOrdinalT = int; GlobalOrdinalT = int]'
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/panzer/dof-mgr/src/Panzer_DOFManager.cpp:48:24: required from here
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/teuchos/core/src/Teuchos_RCP.hpp:289:38: error: cannot convert 'const Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >*' to 'const Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> >*' in initialization
node_(r_ptr.access_private_node())
^
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/teuchos/core/src/Teuchos_RCP.hpp: In instantiation of 'Teuchos::RCP<T>::RCP(const Teuchos::RCP<T2>&) [with T2 = const Tpetra::Map<int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >; T = const Tpetra::Map<int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> >]':
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/panzer/dof-mgr/src/Panzer_DOFManager_impl.hpp:997:71: required from 'Teuchos::RCP<const Tpetra::Map<LocalOrdinalT, GlobalOrdinalT, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> > > panzer::DOFManager<LocalOrdinalT, GlobalOrdinalT>::buildOverlapMapFromElements(const panzer::DOFManager<LocalOrdinalT, GlobalOrdinalT>::ElementBlockAccess&) const [with LocalOrdinalT = int; GlobalOrdinalT = long long int]'
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/panzer/dof-mgr/src/Panzer_DOFManager.cpp:51:24: required from here
/home/myusername/src/build/aur/trilinos/src/Trilinos/packages/teuchos/core/src/Teuchos_RCP.hpp:289:38: error: cannot convert 'const Tpetra::Map<int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >*' to 'const Tpetra::Map<int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> >*' in initialization
If I remove the Tpetra_DefaultNode
definition it appears to compile fine. Not sure if this is a bug or the config I supplied is invalid, but I thought I'd report it anyway while the build finishes ;)
Possibly related to issue #509.