Menu

#18 v1.7.3 linux - lib compile error (trilinos)

v1.0_(example)
open
nobody
None
1
2018-02-26
2018-02-26
No

I tried compiling the libraries, and encountered the following error. It seems the problem is when building the trilinos library. I don't really understand what's happening, maybe it's a problem with my setup, but I followed the instructions step by step and installed all dependencies.

Ubuntu 16.04, system python.

$ sh compile_libraries.sh all

[...]

In file included from /home/ondrej/repo/daetools-code/trilinos/packages/ifpack/src/Ifpack.cpp:56:0:
/home/ondrej/repo/daetools-code/trilinos/packages/ifpack/src/Ifpack_SparseContainer.h: In member function virtual int Ifpack_SparseContainer<T>::Initialize()’:
/home/ondrej/repo/daetools-code/trilinos/packages/ifpack/src/Ifpack_SparseContainer.h:394:48: error: Epetra_DataAccess is not a class or namespace
   Matrix_ = Teuchos::rcp( new Epetra_CrsMatrix(Epetra_DataAccess::Copy,*Map_,0) );
                                                ^
[ 74%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_LocalFilter.cpp.o
[ 74%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_NodeFilter.cpp.o
[ 74%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_SingletonFilter.cpp.o
[ 74%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_DropFilter.cpp.o
[ 74%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_SparsityFilter.cpp.o
[ 74%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_ReorderFilter.cpp.o
[ 74%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_DiagonalFilter.cpp.o
[ 75%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_Graph_Epetra_RowMatrix.cpp.o
[ 75%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_Graph_Epetra_CrsGraph.cpp.o
[ 75%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_Utils.cpp.o
[ 75%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_SPARSKIT.cpp.o
[ 75%] Building CXX object packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack_Chebyshev.cpp.o
packages/ifpack/src/CMakeFiles/ifpack.dir/build.make:422: recipe for target 'packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack.cpp.o' failed
make[2]: *** [packages/ifpack/src/CMakeFiles/ifpack.dir/Ifpack.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:3377: recipe for target 'packages/ifpack/src/CMakeFiles/ifpack.dir/all' failed
make[1]: *** [packages/ifpack/src/CMakeFiles/ifpack.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 75%] Linking CXX static library libthyraepetraext.a
[ 75%] Built target thyraepetraext
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

Also, I tried using a newer version of trilinos (12.12.1) and got another error

In file included from /home/ondrej/repo/daetools-code/trilinos/packages/xpetra/src/BlockedCrsMatrix/Xpetra_BlockedCrsMatrix.hpp:61:0,
                 from /home/ondrej/repo/daetools-code/trilinos/packages/xpetra/sup/Utils/Xpetra_ThyraUtils.cpp:51:
/home/ondrej/repo/daetools-code/trilinos/packages/xpetra/src/BlockedVector/Xpetra_BlockedVector.hpp: In member function virtual void Xpetra::BlockedVector<S, LO, GO, N>::elementWiseMultiply(Scalar, const Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&, const Vector&, Scalar)’:
/home/ondrej/repo/daetools-code/trilinos/packages/xpetra/src/BlockedVector/Xpetra_BlockedVector.hpp:387:70: error: >> should be > > within a nested template argument list
       RCP<const Xpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node>> rcpA = Teuchos::rcpFromRef(A);
                                                                      ^
In file included from /home/ondrej/repo/daetools-code/trilinos/packages/xpetra/src/BlockedCrsMatrix/Xpetra_BlockedCrsMatrix.hpp:61:0,
                 from /home/ondrej/repo/daetools-code/trilinos/packages/xpetra/sup/Utils/Xpetra_MatrixMatrix.hpp:53,
                 from /home/ondrej/repo/daetools-code/trilinos/packages/xpetra/sup/Utils/Xpetra_IteratorOps.hpp:53,
                 from /home/ondrej/repo/daetools-code/trilinos/packages/xpetra/sup/Utils/Xpetra_IteratorOps.cpp:47:
/home/ondrej/repo/daetools-code/trilinos/packages/xpetra/src/BlockedVector/Xpetra_BlockedVector.hpp: In member function virtual void Xpetra::BlockedVector<S, LO, GO, N>::elementWiseMultiply(Scalar, const Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&, const Vector&, Scalar)’:
/home/ondrej/repo/daetools-code/trilinos/packages/xpetra/src/BlockedVector/Xpetra_BlockedVector.hpp:387:70: error: >> should be > > within a nested template argument list
       RCP<const Xpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node>> rcpA = Teuchos::rcpFromRef(A);
                                                                      ^
/home/ondrej/repo/daetools-code/trilinos/packages/xpetra/sup/Utils/Xpetra_ThyraUtils.cpp: In static member function static Teuchos::RCP<Thyra::LinearOpBase<double> > Xpetra::ThyraUtils<double, int, int, Kokkos::Compat::KokkosSerialWrapperNode>::toThyra(const Teuchos::RCP<Xpetra::BlockedCrsMatrix<double, int, int, Kokkos::Compat::KokkosSerialWrapperNode> >&)’:
/home/ondrej/repo/daetools-code/trilinos/packages/xpetra/sup/Utils/Xpetra_ThyraUtils.cpp:70:162: error: >> should be > > within a nested template argument list
     Teuchos::RCP<Xpetra::CrsMatrixWrap<double, int, int, EpetraNode> > Ablock_wrap = Teuchos::rcp_dynamic_cast<Xpetra::CrsMatrixWrap<double, int, int, EpetraNode>>(Ablock);
                                                                                                                                                                  ^
packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/build.make:86: recipe for target 'packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/Utils/Xpetra_IteratorOps.cpp.o' failed
make[2]: *** [packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/Utils/Xpetra_IteratorOps.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/build.make:62: recipe for target 'packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/Utils/Xpetra_ThyraUtils.cpp.o' failed
make[2]: *** [packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/Utils/Xpetra_ThyraUtils.cpp.o] Error 1
CMakeFiles/Makefile2:2853: recipe for target 'packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/all' failed
make[1]: *** [packages/xpetra/sup/CMakeFiles/xpetra-sup.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 80%] Linking CXX static library libifpack.a
[ 80%] Built target ifpack
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

Discussion

  • ciroki

    ciroki - 2018-02-26

    Hi again,

    Yes, there is a compilation problem with trilinos that I am aware of. New versions require newer gcc versions too. It's hard to tell exactly what are the problems, but I think some c++11 features are required.
    Only the version 10.8 compiles with gcc 4.9. Trilinos 12.10 compiles with gcc 6.3.
    I guess the gcc version in Ubuntu 16.04 is 5.3. Probably the new version of trilinos does not compile with 5.3 either.
    The solution in your case is to use trilinos 10.8 and change line 622 in dae.pri file to:

    linux-g++::TRILINOS_LIBS  = -L$${TRILINOS_DIR}/lib -L$${SUPERLU_PATH}/lib \
                                -laztecoo -lml -lifpack -lamesos -lepetra -lepetraext -lteuchos \
                                $${UMFPACK_LIBS} \
                                $${SUPERLU_LIBS}
    

    Or, use a more recent compiler, if possible.

    Dragan

     
  • Ondřej Ticháček

    Thanks! I tried it with gcc-7.1 and got no compilation errors.

     

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB