[petsc-users] [petsc-dev] FFT Matrix Examples/Tests: Compiletime error

Matthew Knepley knepley at gmail.com
Tue Jul 10 12:04:03 CDT 2012


On Tue, Jul 10, 2012 at 11:59 AM, Thomas Hisch <t.hisch at gmail.com> wrote:

> Thx for the hint.
>
> Should PETSc-dev in principle work with gcc-4.7, because I get the
> following error while building petsc:
>

Jed is fixing that now. C++ compilers are extraordinarily dumb, and cannot
cast
a 'volatile std::complex' to 'std::complex'. Should be ready soon.

  Matt


> -----------------------------------------
> Using C/C++ compile: mpicxx -c -Wall -Wwrite-strings
> -Wno-strict-aliasing -Wno-unknown-pragmas -O3   -fPIC
> -I/home/thomas/local/src/petsc-dev/include
> -I/home/thomas/local/src/petsc-dev/arch-linux2-cxx-release/include
> -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi
> -D__INSDIR__=./
> Using Fortran compile: mpif90 -c -fPIC -Wall -Wno-unused-variable
> -Wno-unused-dummy-argument
> -I/home/thomas/local/src/petsc-dev/include
> -I/home/thomas/local/src/petsc-dev/arch-linux2-cxx-release/include
> -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi
> -----------------------------------------
> Using C/C++ linker: mpicxx
> Using C/C++ flags: -Wall -Wwrite-strings -Wno-strict-aliasing
> -Wno-unknown-pragmas -O3
> Using Fortran linker: mpif90
> Using Fortran flags: -fPIC -Wall -Wno-unused-variable
> -Wno-unused-dummy-argument
> -----------------------------------------
> Using libraries:
> -Wl,-rpath,/home/thomas/local/src/petsc-dev/arch-linux2-cxx-release/lib
> -L/home/thomas/local/src/petsc-dev/arch-linux2-cxx-release/lib
> -lpetsc -lX11
> -Wl,-rpath,/home/thomas/local/src/petsc-dev/arch-linux2-cxx-release/lib
> -lfftw3_mpi -lfftw3 -lpthread
> -Wl,-rpath,/opt/intel/composer_xe_2011_sp1.11.339/mkl/lib/intel64
> -L/opt/intel/composer_xe_2011_sp1.11.339/mkl/lib/intel64 -llapack
> -lblas -Wl,-rpath,/usr/lib/openmpi/lib -L/usr/lib/openmpi/lib
> -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.7
> -L/usr/lib/gcc/x86_64-linux-gnu/4.7
> -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu
> -Wl,-rpath,/lib/x86_64-linux-gnu -L/lib/x86_64-linux-gnu
> -Wl,-rpath,/opt/intel/composer_xe_2011_sp1.11.339/compiler/lib/intel64
> -L/opt/intel/composer_xe_2011_sp1.11.339/compiler/lib/intel64
> -Wl,-rpath,/opt/intel/composer_xe_2011_sp1.10.319/compiler/lib/intel64
> -L/opt/intel/composer_xe_2011_sp1.10.319/compiler/lib/intel64
> -Wl,-rpath,/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64
> -L/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64
> -Wl,-rpath,/opt/intel/composer_xe_2011_sp1.10.319/mkl/lib/intel64
> -L/opt/intel/composer_xe_2011_sp1.10.319/mkl/lib/intel64
>
> -Wl,-rpath,/opt/intel/composer_xe_2011_sp1.10.319/tbb/lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21
>
> -L/opt/intel/composer_xe_2011_sp1.10.319/tbb/lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21
> -lmpi_f90 -lmpi_f77 -lgfortran -lm -lgfortran -lm -lgfortran -lm -lm
> -lquadmath -lm -lmpi_cxx -lstdc++ -ldl -lmpi -lopen-rte -lopen-pal
> -lnsl -lutil -lgcc_s -lpthread -ldl
> ------------------------------------------
> Using mpiexec: mpiexec
> ==========================================
> Building PETSc using CMake with 5 build threads
> ==========================================
> Re-run cmake file: Makefile older than: ../CMakeLists.txt
> -- Configuring done
> -- Generating done
> -- Build files have been written to:
> /home/thomas/local/src/petsc-dev/arch-linux2-cxx-release
> Scanning dependencies of target petsc
> [  0%] Building Fortran object
> CMakeFiles/petsc.dir/src/sys/f90-mod/petscsysmod.F.o
> [  0%] Building Fortran object
> CMakeFiles/petsc.dir/src/vec/f90-mod/petscvecmod.F.o
> [  1%] Building Fortran object
> CMakeFiles/petsc.dir/src/mat/f90-mod/petscmatmod.F.o
> [  1%] Building Fortran object
> CMakeFiles/petsc.dir/src/dm/f90-mod/petscdmmod.F.o
> [  1%] Building Fortran object
> CMakeFiles/petsc.dir/src/ksp/f90-mod/petsckspmod.F.o
> [  1%] Building Fortran object
> CMakeFiles/petsc.dir/src/snes/f90-mod/petscsnesmod.F.o
> [  2%] [  2%] [  2%] [  2%] [  2%] Building Fortran object
> CMakeFiles/petsc.dir/src/ts/f90-mod/petsctsmod.F.o
> Building CXX object CMakeFiles/petsc.dir/src/sys/verbose/verboseinfo.c.o
> Building CXX object CMakeFiles/petsc.dir/src/sys/viewer/interface/view.c.o
> Building CXX object
> CMakeFiles/petsc.dir/src/sys/viewer/interface/viewregall.c.o
> Building CXX object CMakeFiles/petsc.dir/src/sys/viewer/interface/flush.c.o
> [  2%] In file included from
> /home/thomas/local/src/petsc-dev/include/petscsys.h:1536:0,
>                  from
> /home/thomas/local/src/petsc-dev/src/sys/verbose/verboseinfo.c:6:
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h: In
> function ‘PetscBool PetscCheckPointer(const void*, PetscDataType)’:
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h:197:60:
> error: no matching function for call to
> ‘std::complex<double>::complex(volatile PetscScalar&)’
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h:197:60:
> note: candidates are:
> In file included from
> /home/thomas/local/src/petsc-dev/include/petscmath.h:60:0,
>                  from
> /home/thomas/local/src/petsc-dev/include/petscsys.h:337,
>                  from
> /home/thomas/local/src/petsc-dev/src/sys/verbose/verboseinfo.c:6:
> /usr/include/c++/4.7/complex:1205:26: note:
> std::complex<double>::complex(const std::complex<float>&)
> /usr/include/c++/4.7/complex:1205:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘const std::complex<float>&’
> /usr/include/c++/4.7/complex:1195:26: note:
> std::complex<double>::complex(double, double)
> /usr/include/c++/4.7/complex:1195:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘double’
> /usr/include/c++/4.7/complex:1193:26: note:
> std::complex<double>::complex(std::complex<double>::_ComplexT)
> /usr/include/c++/4.7/complex:1193:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘std::complex<double>::_ComplexT {aka
> __complex__ double}’
> /usr/include/c++/4.7/complex:1188:12: note:
> std::complex<double>::complex(const std::complex<double>&)
> /usr/include/c++/4.7/complex:1188:12: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘const std::complex<double>&’
> In file included from
> /home/thomas/local/src/petsc-dev/include/petscsys.h:1536:0,
>                  from
> /home/thomas/local/src/petsc-dev/include/petsc-private/viewerimpl.h:5,
>                  from
> /home/thomas/local/src/petsc-dev/src/sys/viewer/interface/flush.c:2:
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h: In
> function ‘PetscBool PetscCheckPointer(const void*, PetscDataType)’:
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h:197:60:
> error: no matching function for call to
> ‘std::complex<double>::complex(volatile PetscScalar&)’
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h:197:60:
> note: candidates are:
> In file included from
> /home/thomas/local/src/petsc-dev/include/petscmath.h:60:0,
>                  from
> /home/thomas/local/src/petsc-dev/include/petscsys.h:337,
>                  from
> /home/thomas/local/src/petsc-dev/include/petsc-private/viewerimpl.h:5,
>                  from
> /home/thomas/local/src/petsc-dev/src/sys/viewer/interface/flush.c:2:
> /usr/include/c++/4.7/complex:1205:26: note:
> std::complex<double>::complex(const std::complex<float>&)
> /usr/include/c++/4.7/complex:1205:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘const std::complex<float>&’
> /usr/include/c++/4.7/complex:1195:26: note:
> std::complex<double>::complex(double, double)
> /usr/include/c++/4.7/complex:1195:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘double’
> /usr/include/c++/4.7/complex:1193:26: note:
> std::complex<double>::complex(std::complex<double>::_ComplexT)
> /usr/include/c++/4.7/complex:1193:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘std::complex<double>::_ComplexT {aka
> __complex__ double}’
> /usr/include/c++/4.7/complex:1188:12: note:
> std::complex<double>::complex(const std::complex<double>&)
> /usr/include/c++/4.7/complex:1188:12: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘const std::complex<double>&’
> Building CXX object
> CMakeFiles/petsc.dir/src/sys/viewer/interface/viewreg.c.o
> In file included from
> /home/thomas/local/src/petsc-dev/include/petscsys.h:1536:0,
>                  from
> /home/thomas/local/src/petsc-dev/include/petsc-private/viewerimpl.h:5,
>                  from
> /home/thomas/local/src/petsc-dev/src/sys/viewer/interface/viewregall.c:2:
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h: In
> function ‘PetscBool PetscCheckPointer(const void*, PetscDataType)’:
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h:197:60:
> error: no matching function for call to
> ‘std::complex<double>::complex(volatile PetscScalar&)’
> /home/thomas/local/src/petsc-dev/include/petsc-private/petscimpl.h:197:60:
> note: candidates are:
> In file included from
> /home/thomas/local/src/petsc-dev/include/petscmath.h:60:0,
>                  from
> /home/thomas/local/src/petsc-dev/include/petscsys.h:337,
>                  from
> /home/thomas/local/src/petsc-dev/include/petsc-private/viewerimpl.h:5,
>                  from
> /home/thomas/local/src/petsc-dev/src/sys/viewer/interface/viewregall.c:2:
> /usr/include/c++/4.7/complex:1205:26: note:
> std::complex<double>::complex(const std::complex<float>&)
> /usr/include/c++/4.7/complex:1205:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘const std::complex<float>&’
> /usr/include/c++/4.7/complex:1195:26: note:
> std::complex<double>::complex(double, double)
> /usr/include/c++/4.7/complex:1195:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘double’
> /usr/include/c++/4.7/complex:1193:26: note:
> std::complex<double>::complex(std::complex<double>::_ComplexT)
> /usr/include/c++/4.7/complex:1193:26: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘std::complex<double>::_ComplexT {aka
> __complex__ double}’
> /usr/include/c++/4.7/complex:1188:12: note:
> std::complex<double>::complex(const std::complex<double>&)
> /usr/include/c++/4.7/complex:1188:12: note:   no known conversion for
> argument 1 from ‘volatile PetscScalar {aka volatile
> std::complex<double>}’ to ‘const std::complex<double>&’
> ......
>
> I called configure with:
>
> ./configure --with-c++-support=1 --with-scalar-type=complex
> --with-x11=0 --with-clanguage=cxx
>
> --with-blas-lapack-dir=/opt/intel/composer_xe_2011_sp1.11.339/mkl/lib/intel64
> CXXOPTFLAGS="-O3" COPTFLAGS="-O3" FOPTFLAGS="-03"
> --with-shared-libraries=1 --with-debugging=0 --download-fftw=1
>
> Regards
> Thomas
>
>
> On Tue, Jul 10, 2012 at 6:44 PM, ajay.rawat83 at gmail.com
> <ajay.rawat83 at gmail.com> wrote:
> > No, try to use petsc-dev with slepc-dev
> > -----Original message-----
> > From: Thomas Hisch
> > Sent:  10/07/2012, 9:07  pm
> > To: PETSc users list
> > Subject: Re: [petsc-users] FFT Matrix Examples/Tests: Compiletime error
> >
> >
> > Hey,
> >
> > thx for your quick response! Is petsc-3.3 compatible with the current
> > slepc-3.2 ??
> >
> > On Tue, Jul 10, 2012 at 5:31 PM, Hong Zhang <hzhang at mcs.anl.gov> wrote:
> >> Thomas:
> >> Please update to petsc-3.3, and build it with FFTW.
> >> ex148.c was rewritten using FFTW.
> >>
> >> Hong
> >>
> >>> Hello list!
> >>>
> >>> I tried to test one of the FFT examples in src/mat/examples/tests/ by
> >>> typing "make ex148" in this directory. Unfortunately the compilation
> >>> failed:
> >>>
> >>> mpicxx -o ex148.o -c -Wall -Wwrite-strings -Wno-strict-aliasing
> >>> -Wno-unknown-pragmas -O3 -fPIC
> >>> -I/home/thomas/local/src/petsc-3.2-p6/include
> >>> -I/home/thomas/local/src/petsc-3.2-p6/arch-linux2-cxx-release/include
> >>> -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi
> >>> -D__INSDIR__=src/mat/examples/tests/ ex148.c
> >>> ex148.c: In function ‘PetscInt main(PetscInt, char**)’:
> >>> ex148.c:45:37: error: ‘InputTransformFFT’ was not declared in this
> scope
> >>> ex148.c:54:39: error: ‘OutputTransformFFT’ was not declared in this
> scope
> >>> make: [ex148.o] Error 1 (ignored)
> >>>
> >>> All the other FFT examples seem to use these two Transformation
> >>> functions as well. Any ideas where these functions are defined ?
> >>>
> >>> Regards,
> >>> Thomas
> >>
> >>
> >
>



-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120710/ef441f8f/attachment-0001.html>


More information about the petsc-users mailing list