Trilinos: [develop] Tpetra / Belos build issues with complex numbers

Created on 7 Oct 2018  路  4Comments  路  Source: trilinos/Trilinos

@trilinos/tpetra

Expectations

develop branch builds with complex numbers

Current Behavior

compiler errors:

 7427    In file included from /Users/davydden/spack/var/spack/stage/trilinos-develop-4gcjgzbmvurjff4rv22yzmdy7awduk6b/Trilinos/packages/belos/tpetra/src/solvers/Belos_Tpetra_GmresPipeline.cpp:45:
  >> 7428    /Users/davydden/spack/var/spack/stage/trilinos-develop-4gcjgzbmvurjff4rv22yzmdy7awduk6b/Trilinos/packages/belos/tpetra/src/solvers/Belos_Tpetra_GmresPipeline.hpp:57:29: error: invalid operands to binary expression ('double' and 'complex<float>')
     7429        const SC tolOrtho = 10.0*std::sqrt(eps);
     7430                            ~~~~^~~~~~~~~~~~~~~
     7431    /Users/davydden/spack/var/spack/stage/trilinos-develop-4gcjgzbmvurjff4rv22yzmdy7awduk6b/Trilinos/packages/belos/tpetra/src/solvers/Belos_Tpetra_GmresPipeline.hpp:30:3: note: in instantiation of member function 'BelosTpetra::Impl::GmresPipeline<std::__1::comp
             lex<float>, Tpetra::Classes::MultiVector<std::__1::complex<float>, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >, Tpetra::Classes::Operator<std::__1::complex<float>, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<K
             okkos::Serial, Kokkos::HostSpace> > >::solveOneVec' requested here
     7432      GmresPipeline () :
     7433      ^
     7434    /Users/davydden/spack/var/spack/stage/trilinos-develop-4gcjgzbmvurjff4rv22yzmdy7awduk6b/Trilinos/packages/belos/tpetra/src/solvers/Belos_Tpetra_SolverManager.hpp:25:80: note: in instantiation of member function 'BelosTpetra::Impl::GmresPipeline<std::__1::com
             plex<float>, Tpetra::Classes::MultiVector<std::__1::complex<float>, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >, Tpetra::Classes::Operator<std::__1::complex<float>, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<
             Kokkos::Serial, Kokkos::HostSpace> > >::GmresPipeline' requested here

     ...

     7453    operator*(const complex<_Tp>& __z, const complex<_Tp>& __w)
     7454    ^
     7455    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/complex:650:1: note: candidate template ignored: could not match 'complex<type-parameter-0-0>' against 'double'
     7456    operator*(const complex<_Tp>& __x, const _Tp& __y)
     7457    ^

Steps to Reproduce

configure and build develop branch with

-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=OFF
-DTpetra_INST_DOUBLE:BOOL=ON
-DTpetra_INST_INT_UNSIGNED_LONG=ON
-DTpetra_INST_INT_LONG:BOOL=ON
-DTpetra_INST_COMPLEX_DOUBLE=ON
-DTpetra_INST_COMPLEX_FLOAT=ON
-DTpetra_INST_FLOAT=ON
-DTpetra_INST_SERIAL=ON
-DTeuchos_ENABLE_COMPLEX=ON
-DTeuchos_ENABLE_FLOAT=ON
-DTeuchos_ENABLE_LONG_LONG_INT:BOOL=ON

Your Environment

macOS Mojave
Apple Clang 10.0.0
gfortran 8.2.0

Additional Information

Spack config/build logs

log.zip

Belos Tpetra

Most helpful comment

@trilinos/belos @trilinos/tpetra

GitHub only lets certain people tag groups -- not sure why.

All 4 comments

@trilinos/belos @trilinos/tpetra

GitHub only lets certain people tag groups -- not sure why.

@davydden Does this work now? We've made some changes to this and other classes.

@mhoemmen

Does this work now?

this error is gone, there are other issues though:

    8158    In file included from /Users/davydden/spack/var/spack/stage/trilinos-develop-p6xmhguuqtomai5fy4a36qmnn4wpqzfq/Trilinos/spack-build/packages/muelu/src/Utils/ExplicitInstantiation/MueLu_Zoltan2Interface.cpp:55:
  >> 8159    /Users/davydden/spack/var/spack/stage/trilinos-develop-p6xmhguuqtomai5fy4a36qmnn4wpqzfq/Trilinos/packages/muelu/src/Rebalancing/MueLu_Zoltan2Interface_def.hpp:197:24: error: no matching constructor for initialization of 'InputAdapterType' (aka 'XpetraMultiVe
             ctorAdapter<MultiVector<float, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> > >')
     8160          InputAdapterType adapter(coords, weights, strides);
     8161                           ^       ~~~~~~~~~~~~~~~~~~~~~~~~
     8162    /Users/davydden/spack/var/spack/stage/trilinos-develop-p6xmhguuqtomai5fy4a36qmnn4wpqzfq/Trilinos/packages/muelu/src/Utils/MueLu_ETI_4arg.hpp:32:45: note: in instantiation of member function 'MueLu::Zoltan2Interface<float, int, int, Kokkos::Compat::KokkosDevi
             ceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >::Build' requested here
     8163      TPETRA_INSTANTIATE_SLGN_NO_ORDINAL_SCALAR(MUELU_ETI_GROUP)
     8164                                                ^
     8165    /Users/davydden/spack/var/spack/stage/trilinos-develop-p6xmhguuqtomai5fy4a36qmnn4wpqzfq/Trilinos/packages/zoltan2/src/input/Zoltan2_XpetraMultiVectorAdapter.hpp:119:3: note: candidate constructor not viable: no known conversion from 'std::vector<const double
              *>' to 'std::vector<const scalar_t *> &' (aka 'vector<const float *> &') for 2nd argument

You should be able to reproduce it via spack

spack install trilinos@develop+rol~openmp+tpetra+float~superlu-dist+complex

@davydden Thanks for the report! I've seen this before with Scalar=float. I'll close this issue, but open a new one for the MueLu build errors.

Was this page helpful?
0 / 5 - 0 ratings