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


_______________________________________________

Reply via email to