Dear Isabel, > I want to use Trilinos with DealII and first I have to do is to install > Trilinos with the following "configure": > > $ ../configure --prefix=/where_trilinos_is/trilinos-8.0.8/LINUX_MPI > --enable-mpi --with-mpi-compilers --disable-default-packages > --enable-teuchos --enable-epetra --enable-aztecoo --enable-triutils > --enable-amesos --enable-ifpack --enable-ml --enable-nox > --enable-nox-epetra --enable-didasko --enable-shared
This means that you generate Trilinos with MPI compilers. > Later, I do the configure of DealII with Trilinos, doing: > > $ ./configure --with-petsc=/where_petsc_is/petsc-2.3.3-p13 > --with-petsc-arch=linux-gnu --with-blas > --with-metis=/where_metis_is/metis --with-lapack --enable-shared > --with-multithreading --with-umfpack --with-cpu=i686 --enable-trilinos > --with-trilinos=/where_trilinos_is/trilinos-8.0.8/LINUX_MPI Here I think you use the usual gcc compiler (not the MPI version mpicxx/mpiCC). The problem with Trilinos is that you need to use the same compiler for both Trilinos and the deal.II configuration. If you compiled Trilinos with MPI compilers, you should use them for deal.II configuration (through CXX=mpicxx or something similar). Otherwise there can be linker conflicts, and you obviously encounter some of them. One more thing: > #include <Epetra_SerialComm.h> Trilinos does not allow (as far as I know) to use serial communicators on a build with MPI compilers. So there are two ways to get this working: 1. Configure and build Trilinos with standard C++ compilers, i.e., remove the commands "--enable-mpi --with-mpi-compilers" from the Trilinos configure line. 2. Use MPI compilers all the way through, i.e. also for deal.II configuration, and then include <Epetra_MpiComm.h> instead. You will need to set up an MPI communicator in your main program then. You can see how this is done in the current step-31 file around #ifdef DEAL_II_COMPILER_SUPPORTS_MPI commands. Best regards, Martin _______________________________________________
