[petsc-users] Petsc-3.2 with superlu_dist building error

Satish Balay balay at mcs.anl.gov
Thu Oct 27 14:17:04 CDT 2011


Actually the issue is:

"when installing both superlu & superlu_dist" together [if superlu
gets installed by configure after superlu_dist] - then the include
from superlu is the one that gets used.

Petsc-3.2 uses superlu_dist-2.5 - and petsc-dev uses superlu_dist-3.0

Now that superlu was updated to match superlu_dist-3.0 [without a
version change] - it breaks Petsc-3.2 build with superlu_dist-2.5.
[because the updated include file from superlu is incompatible with
superlu_dist-2.5 code]

Satish

On Thu, 27 Oct 2011, Xiaoye S. Li wrote:

> The error is related to the new SuperLU_DIST (v3.0), not serial SuperLU.
> In PETSc / SuperLU_DIST wrapper:  superlu_dist.c, line 634,  DOUBLE
> should be replaced by SLU_DOUBLE.
> 
> Sherry
> 
> 
> On Thu, Oct 27, 2011 at 11:44 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> > On Thu, Oct 27, 2011 at 12:34, Ping Rong <ping.rong at tuhh.de> wrote:
> >>
> >> Hello all,
> >>
> >> I was trying to compile the PETSc-3.2-p4 with superlu_dist. The machine is
> >> running with Ubuntu 10.04, gcc 4.4.5 and cmake 2.8.5. the configuration
> >> looks like the following:
> >> ./config/configure.py \
> >> --with-precision=double \
> >> --with-blas-lib=$LIBS_DIR/lapack/lib/libblas.so \
> >> --with-lapack-lib=$LIBS_DIR/lapack/lib/liblapack.so \
> >> --with-scalar-type=complex \
> >> --with-clanguage=c++ \
> >> --with-mpi-dir=$LIBS_DIR/mpich2 \
> >> --download-superlu=yes \
> >> --with-superlu=1 \
> >> --download-parmetis=yes \
> >> --with-parmetis=1 \
> >> --download-superlu_dist=yes \
> >> --with-superlu_dist=1 \
> >> --with-debugging=no \
> >> --with-shared-libraries=1
> >>
> >> when I try to run "make all", it throws the error
> >> //-------------------------------
> >> [ 60%] Building CXX object CMakeFiles/petsc.dir/src/mat/order/amd/amd.c.o
> >> /home/xxx/libs/petsc/src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c: In
> >> function ‘PetscErrorCode MatGetFactor_aij_superlu_dist(_p_Mat*,
> >> MatFactorType, _p_Mat**)’:
> >>
> >> /home/xxx/libs/petsc/src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c:634:
> >> error: ‘DOUBLE’ was not declared in this scope
> >> /home/xxx/libs/petsc/src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c: In
> >> function ‘PetscErrorCode MatFactorInfo_SuperLU_DIST(_p_Mat*,
> >> _p_PetscViewer*)’:
> >>
> >> /home/xxx/libs/petsc/src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c:698:
> >> error: ‘DOUBLE’ was not declared in this scope
> >
> > The SuperLU maintainer made an API-incompatible change to the released
> > tarball.
> > Sherry, we talked about this last week and I thought you were going to make
> > a SuperLU-4.3 release with the namespaced enum values?
> 


More information about the petsc-users mailing list