c++ bindings, intel compiler, petsc.h conflict, petsc install?
Sean Dettrick
sdettrick at gmail.com
Wed Aug 29 09:09:24 CDT 2007
Hi,
I have a C++ MPI code that uses the C++ MPI bindings and uses PETSc as
a kind of plug-in. This was compiling and running nicely before on
linux with petsc-2.3.0, GCC compilers and LAM MPI. But now I can't
get my code to compile on linux with petsc-2.3.3-p4, 64 bit Intel
compilers, and Intel MPI.
If petsc.h is included before mpi.h, then there are compile time
errors: the MPI namespace is not available, due to MPICH_SKIP_MPICXX
in petsc.h (not present in 2.3.0).
If mpi.h is included before petsc.h, then there are link time errors:
undefined referenced to Petsc functions.
Am I doing something wrong, or is this a well known thing?
I wonder if it could be a configuration error? Because the intel mpi
installation uses non-standard directory names for the 64 bit version
- bin64, include64 etc, the configuration looks a little hairy:
config/configure.py \
--with-petsc-arch=intel_MPI_64_static \
--with-fortran=0 \
--with-mpi-include=/opt/intel/mpi/3.0/include64 \
--with-mpi-lib=/opt/intel/mpi/3.0/lib64/libmpi.a \
--with-mpiexec=/opt/intel/mpi-rt/3.0/bin64/mpiexec \
--with-x=no \
--with-matlab=0 \
--with-shared=0 \
--with-cc=/opt/intel/mpi/3.0/bin64/mpiicc \
--with-cxx=/opt/intel/mpi/3.0/bin64/mpiicpc \
--CXXFLAGS=-I/opt/intel/mpi/3.0/include64 \
--CFLAGS=-I/opt/intel/mpi/3.0/include64 \
--LDFLAGS=-L/opt/intel/mpi/3.0/lib64 \
--download-c-blas-lapack=1
"make all test" indicated that the tests were passed.
Any suggestions greatly appreciated!
Thanks
Sean Dettrick
More information about the petsc-users
mailing list