Xpetra appears to require GlobalOrdinal=int even when Tpetra_INST_INT_INT=OFF
Created by: mhoemmen
@trilinos/xpetra @trilinos/tpetra
Xpetra appears to attempt to instantiate Tpetra::Map<int, int, ...>
, or at least to use its declarations, even when Tpetra_INST_INT_INT=OFF
. For example, when I put a static_assert
in Tpetra::Map
that requires GlobalOrdinal == long long
, I am able to build all of Tpetra, but get the following Xpetra build errors:
In file included from .../packages/tpetra/core/src/Tpetra_Map.hpp:1:0,
from .../Trilinos/packages/xpetra/src/Map/Xpetra_Map.hpp:61,
from .../Trilinos/packages/xpetra/src/Export/Xpetra_Export.hpp:54,
from .../Trilinos/packages/xpetra/src/Export/Xpetra_EpetraExport.hpp:51,
from .../Trilinos/packages/xpetra/src/Export/Xpetra_EpetraExport.cpp:46:
.../Trilinos/packages/tpetra/core/src/Tpetra_Map_decl.hpp: In instantiation of ‘class Tpetra::Map<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::OpenMP> >’:
.../Trilinos/packages/xpetra/src/Map/Xpetra_Map.hpp:224:85: required from ‘class Xpetra::Map<>’
.../Trilinos/packages/xpetra/src/Export/Xpetra_Export.hpp:59:39: required from here
.../Trilinos/packages/tpetra/core/src/Tpetra_Map_decl.hpp:257:5: error: static assertion failed: UH OH
static_assert (std::is_same<global_ordinal_type, long long>::value, "UH OH");
^