Amesos2-compilation combined with MUMPS fails
Created by: anates
Compiling Amesos2 together with MUMPS fails with error messages:
In file included from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS.hpp:49:0, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Factory.hpp:123, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory_def.hpp:52, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory.hpp:49, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_registerLinearSolverFactory.cpp:45: ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp: In constructor 'Amesos2::MUMPS< , >::MUMPS(Teuchos::RCP, Teuchos::RCP, Teuchos::RCP)': ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp:81:7: error: class 'Amesos2::MUMPS< , >' does not have any field named 'is_contiguous_' , is_contiguous_(true) ^~~~~~~~~~~~~~ ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp: In member function 'int Amesos2::MUMPS< , >::solve_impl(Teuchos::Ptr<Amesos2::MultiVecAdapter >, Teuchos::Ptr<const Amesos2::MultiVecAdapter >) const': ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp:249:10: error: 'is_contiguous_' was not declared in this scope if ( is_contiguous_ == true ) { ^~~~~~~~~~~~~~ ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp:281:10: error: 'is_contiguous_' was not declared in this scope if ( is_contiguous_ == true ) { ^~~~~~~~~~~~~~ ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp: In member function 'void Amesos2::MUMPS< , >::setParameters_impl(const Teuchos::RCPTeuchos::ParameterList&)': ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp:355:7: error: 'is_contiguous_' was not declared in this scope is_contiguous_ = parameterList->get("IsContiguous"); ^~~~~~~~~~~~~~ ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp: In member function 'bool Amesos2::MUMPS< , >::loadA_impl(Amesos2::EPhase)': ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp:414:14: error: 'is_contiguous_' was not declared in this scope if ( is_contiguous_ == true ) { ^~~~~~~~~~~~~~ In file included from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_ArrayRCP.hpp:50:0, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_ArrayView.hpp:47, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_GlobalMPISession.hpp:52, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_FancyOStream.hpp:46, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_Describable.hpp:46, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Solver_decl.hpp:55, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Solver.hpp:47, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Factory.hpp:87, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory_def.hpp:52, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory.hpp:49, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_registerLinearSolverFactory.cpp:45: ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_as.hpp: In instantiation of 'TypeTo Teuchos::as(const TypeFrom&) [with TypeTo = Amesos2::MUMPST::mumps_double_complex; TypeFrom = std::complex]': ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MultiVecAdapter_def.hpp:133:31: required from 'static void Amesos2::Util::diff_type_get_copy<MV, S>::apply(const Teuchos::Ptr&, const Teuchos::ArrayView&, const size_t&, Teuchos::Ptr<const Tpetra::Map<typename MV::local_ordinal_t, typename MV::global_ordinal_t, typename MV::node_t> >, Amesos2::EDistribution) [with MV = Amesos2::MultiVecAdapter<Tpetra::MultiVector<std::complex, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP > >; S = Amesos2::MUMPST::mumps_double_complex; size_t = long unsigned int; typename MV::node_t = Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP; typename MV::global_ordinal_t = long long int; typename MV::local_ordinal_t = int]' ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MultiVecAdapter_def.hpp:154:49: required from 'static void Amesos2::Util::get_1d_copy_helper<MV, S>::do_get(const Teuchos::Ptr&, const Teuchos::ArrayView&, size_t, Teuchos::Ptr<const Tpetra::Map<typename MV::local_ordinal_t, typename MV::global_ordinal_t, typename MV::node_t> >, Amesos2::EDistribution) [with MV = Amesos2::MultiVecAdapter<Tpetra::MultiVector<std::complex, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP > >; S = Amesos2::MUMPST::mumps_double_complex; size_t = long unsigned int; typename MV::node_t = Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP; typename MV::global_ordinal_t = long long int; typename MV::local_ordinal_t = int]' ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MultiVecAdapter_def.hpp:181:14: required from 'static void Amesos2::Util::get_1d_copy_helper<MV, S>::do_get(const Teuchos::Ptr&, const Teuchos::ArrayView&, size_t, Amesos2::EDistribution, typename MV::global_ordinal_t) [with MV = Amesos2::MultiVecAdapter<Tpetra::MultiVector<std::complex, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP > >; S = Amesos2::MUMPST::mumps_double_complex; size_t = long unsigned int; typename MV::global_ordinal_t = long long int]' ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_def.hpp:251:26: required from 'int Amesos2::MUMPS< , >::solve_impl(Teuchos::Ptr<Amesos2::MultiVecAdapter >, Teuchos::Ptr<const Amesos2::MultiVecAdapter >) const [with Matrix = Tpetra::CrsMatrix<std::complex, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP, false>; Vector = Tpetra::MultiVector<std::complex, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP >]' ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_SolverCore_def.hpp:211:3: required from 'void Amesos2::SolverCore<ConcreteSolver, Matrix, Vector>::solve(Teuchos::Ptr, Teuchos::Ptr) const [with ConcreteSolver = Amesos2::MUMPS; Matrix = Tpetra::CrsMatrix<std::complex, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP, false>; Vector = Tpetra::MultiVector<std::complex, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNodeKokkos::OpenMP >]' ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_registerLinearSolverFactory.cpp:102:1: required from here ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_as.hpp:2857:61: error: ambiguous template instantiation for 'class Teuchos::ValueTypeConversionTraits<Amesos2::MUMPST::mumps_double_complex, std::complex >' return ValueTypeConversionTraits<TypeTo,TypeFrom>::convert(t); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ In file included from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Umfpack_FunctionMap.hpp:52:0, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Umfpack_decl.hpp:49, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Umfpack.hpp:47, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Factory.hpp:108, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory_def.hpp:52, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory.hpp:49, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_registerLinearSolverFactory.cpp:45: ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Umfpack_TypeMap.hpp:98:7: note: candidates are: template class Teuchos::ValueTypeConversionTraits<TypeTo, std::complex > [with TypeTo = Amesos2::MUMPST::mumps_double_complex] class ValueTypeConversionTraits<TypeTo, std::complex> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_FunctionMap.hpp:60:0, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_decl.hpp:57, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS.hpp:47, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Factory.hpp:123, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory_def.hpp:52, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory.hpp:49, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_registerLinearSolverFactory.cpp:45: ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_MUMPS_TypeMap.hpp:195:9: note: template class Teuchos::ValueTypeConversionTraits<Amesos2::MUMPST::mumps_double_complex, TypeFrom> [with TypeFrom = std::complex] class ValueTypeConversionTraits<Amesos2::MUMPST::ZMUMPS_COMPLEX , TypeFrom > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_ArrayRCP.hpp:50:0, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_ArrayView.hpp:47, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_GlobalMPISession.hpp:52, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_FancyOStream.hpp:46, from ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_Describable.hpp:46, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Solver_decl.hpp:55, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Solver.hpp:47, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Factory.hpp:87, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory_def.hpp:52, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_LinearSolverFactory.hpp:49, from ~/Downloads/Trilinos-master/packages/amesos2/src/Amesos2_Details_registerLinearSolverFactory.cpp:45: ~/Downloads/Trilinos-master/packages/teuchos/core/src/Teuchos_as.hpp:2857:61: error: incomplete type 'Teuchos::ValueTypeConversionTraits<Amesos2::MUMPST::mumps_double_complex, std::complex >' used in nested name specifier return ValueTypeConversionTraits<TypeTo,TypeFrom>::convert(t);
Is there a fix I can apply?