Zoltan2: Fails to build when Tpetra_INST_INT_INT=OFF
Created by: mhoemmen
@trilinos/zoltan2 @trilinos/tpetra @kddevin
Build errors look like this:
CMakeFiles/Zoltan2_pamgenMeshAdapterTest.dir/pamgenMeshAdapterTest.cpp.o: In function `void Zoltan2::globalWeightedCutsByPart<Zoltan2::PamgenMeshAdapter<Zoltan2::BasicUserTypes<double, int, int> > >(Teuchos::RCP<Zoltan2::Environment const> const&, Teuchos::RCP<Teuchos::Comm<int> const> const&, Teuchos::RCP<Zoltan2::GraphModel<Zoltan2::PamgenMeshAdapter<Zoltan2::BasicUserTypes<double, int, int> >::base_adapter_t> const> const&, Teuchos::ArrayView<Zoltan2::PamgenMeshAdapter<Zoltan2::BasicUserTypes<double, int, int> >::part_t const> const&, Zoltan2::PamgenMeshAdapter<Zoltan2::BasicUserTypes<double, int, int> >::part_t&, Teuchos::ArrayRCP<Teuchos::RCP<Zoltan2::BaseClassMetrics<Zoltan2::PamgenMeshAdapter<Zoltan2::BasicUserTypes<double, int, int> >::scalar_t> > >&, Teuchos::ArrayRCP<Zoltan2::PamgenMeshAdapter<Zoltan2::BasicUserTypes<double, int, int> >::scalar_t>&)':
.../Trilinos/packages/zoltan2/src/util/Zoltan2_GraphMetricsUtility.hpp:776: undefined reference to `Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >::Map(unsigned long, Teuchos::ArrayView<int const> const&, int, Teuchos::RCP<Teuchos::Comm<int> const> const&, Teuchos::RCP<Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> > const&)'
.../Trilinos/packages/zoltan2/src/util/Zoltan2_GraphMetricsUtility.hpp:787: undefined reference to `Tpetra::CrsMatrix<int, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >::CrsMatrix(Teuchos::RCP<Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> > const> const&, unsigned long, Tpetra::ProfileType, Teuchos::RCP<Teuchos::ParameterList> const&)'
.../Trilinos/packages/zoltan2/src/util/Zoltan2_GraphMetricsUtility.hpp:794: undefined reference to `Tpetra::CrsMatrix<int, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >::insertGlobalValues(int, Teuchos::ArrayView<int const> const&, Teuchos::ArrayView<int const> const&)'
.../Trilinos/packages/zoltan2/src/util/Zoltan2_GraphMetricsUtility.hpp:800: undefined reference to `Tpetra::CrsMatrix<int, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >::fillComplete(Teuchos::RCP<Teuchos::ParameterList> const&)'
.../Trilinos/packages/zoltan2/src/util/Zoltan2_GraphMetricsUtility.hpp:803: undefined reference to `Tpetra::Vector<int, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >::Vector(Teuchos::RCP<Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> > const> const&, bool)'
.../Trilinos/packages/zoltan2/src/util/Zoltan2_GraphMetricsUtility.hpp:805: undefined reference to `Tpetra::Vector<int, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP, Kokkos::HostSpace> >::replaceLocalValue(int, int const&) const'
The problem is that the test (zoltan2/test/partition/pamgenMeshAdapterTest.cpp
) uses Zoltan2::BasicUserTypes<double>
. The default values of the next two template parameters of BasicUserTypes
are int, int
.
Possible Solution
Use Tpetra to get default values of BasicUserTypes
's template parameters.
Related Issues
- Blocks #2548, #3234 (closed), #3254