Topic: OOFEM with PETSc compiled with intel compilers
I am currently trying to compile and link a parallel version of OOFEM on a computer cluster where PETSc is already built. To build PETSc, the intel compiler suite of version 11.1 has been used so I am trying to use the same compilers and openmpi environment that has been used to build petsc (v 3.2).
The problem I am facing is that when compiling OOFEM, I get the following error message:
[ 11%] Building CXX object src/oofemlib/CMakeFiles/core.dir/petscsparsemtrx.C.o
/beda/users/home/fagmar/OOFEM_Jim/src/oofemlib/petscsparsemtrx.C(114): error: argument of type "int" is incompatible with parameter of type "const PetscScalar={double} *"
VecCreateSeqWithArray(PETSC_COMM_SELF, 1, x.giveSize(), x.givePointer(), & globX);
^
/beda/users/home/fagmar/OOFEM_Jim/src/oofemlib/petscsparsemtrx.C(114): error: argument of type "double *" is incompatible with parameter of type "Vec *"
VecCreateSeqWithArray(PETSC_COMM_SELF, 1, x.giveSize(), x.givePointer(), & globX);
^
/beda/users/home/fagmar/OOFEM_Jim/src/oofemlib/petscsparsemtrx.C(114): error #140: too many arguments in function call
VecCreateSeqWithArray(PETSC_COMM_SELF, 1, x.giveSize(), x.givePointer(), & globX);
^
/beda/users/home/fagmar/OOFEM_Jim/src/oofemlib/petscsparsemtrx.C(148): error: argument of type "int" is incompatible with parameter of type "const PetscScalar={double} *"
VecCreateSeqWithArray(PETSC_COMM_SELF, 1, x.giveSize(), x.givePointer(), & globX);
^
/beda/users/home/fagmar/OOFEM_Jim/src/oofemlib/petscsparsemtrx.C(148): error: argument of type "double *" is incompatible with parameter of type "Vec *"
VecCreateSeqWithArray(PETSC_COMM_SELF, 1, x.giveSize(), x.givePointer(), & globX);
^
/beda/users/home/fagmar/OOFEM_Jim/src/oofemlib/petscsparsemtrx.C(148): error #140: too many arguments in function call
VecCreateSeqWithArray(PETSC_COMM_SELF, 1, x.giveSize(), x.givePointer(), & globX);
^
compilation aborted for /beda/users/home/fagmar/OOFEM_Jim/src/oofemlib/petscsparsemtrx.C (code 2)
make[2]: *** [src/oofemlib/CMakeFiles/core.dir/petscsparsemtrx.C.o] Error 2
make[1]: *** [src/oofemlib/CMakeFiles/core.dir/all] Error 2
make: *** [all] Error 2
Does that imply that there is some non-standard coding in petscsparsemtrx.C or that I have set up my cluster environment in the wrong way?