Well I've used --with-scalar-type=complex in the configuration, which I 
thought was all I needed ...

On 08/16/2013 09:59 AM, Paul T. Bauman wrote:
> Are you sure you've compiled PETSc in complex mode?
>
>
> On Fri, Aug 16, 2013 at 8:54 AM, Jens Lohne Eftang <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     I'm using gcc 4.7
>
>     I tried --with-clanguage=cxx for PETSc, but that did not resolve
>     everything.
>
>     Now I get another error message during libmesh compilation:
>
>
>     CXX  src/numerics/libmesh_dbg_la-dense_matrix_blas_lapack.lo
>     src/numerics/dense_matrix_blas_lapack.C: In instantiation of 'void
>     libMesh::DenseMatrix<T>::_multiply_blas(const
>     libMesh::DenseMatrixBase<T>&,
>     libMesh::DenseMatrix<T>::_BLAS_Multiply_Flag) [with T = double]':
>     src/numerics/dense_matrix_blas_lapack.C:760:98:   required from here
>     src/numerics/dense_matrix_blas_lapack.C:174:3: error: cannot convert
>     'double*' to 'PetscScalar* {aka std::complex<double>*}' for
>     argument '6'
>     to 'void zgemm_(const char*, const char*, PetscBLASInt*,
>     PetscBLASInt*,
>     PetscBLASInt*, PetscScalar*, PetscScalar*, PetscBLASInt*,
>     PetscScalar*,
>     PetscBLASInt*, PetscScalar*, PetscScalar*, PetscBLASInt*)'
>     src/numerics/dense_matrix_blas_lapack.C: In instantiation of 'void
>     libMesh::DenseMatrix<T>::_lu_decompose_lapack() [with T = double]':
>     src/numerics/dense_matrix_blas_lapack.C:761:55:   required from here
>     src/numerics/dense_matrix_blas_lapack.C:260:3: error: cannot convert
>     'double*' to 'PetscScalar* {aka std::complex<double>*}' for
>     argument '3'
>     to 'void zgetrf_(PetscBLASInt*, PetscBLASInt*, PetscScalar*,
>     PetscBLASInt*, PetscBLASInt*, PetscBLASInt*)'
>     src/numerics/dense_matrix_blas_lapack.C: In instantiation of 'void
>     libMesh::DenseMatrix<T>::_lu_back_substitute_lapack(const
>     libMesh::DenseVector<T>&, libMesh::DenseVector<T>&) [with T =
>     double]':
>     src/numerics/dense_matrix_blas_lapack.C:763:30:   required from here
>     src/numerics/dense_matrix_blas_lapack.C:592:3: error: cannot convert
>     'double*' to 'PetscScalar* {aka std::complex<double>*}' for
>     argument '4'
>     to 'void zgetrs_(const char*, PetscBLASInt*, PetscBLASInt*,
>     PetscScalar*, PetscBLASInt*, PetscBLASInt*, PetscScalar*,
>     PetscBLASInt*,
>     PetscBLASInt*)'
>     src/numerics/dense_matrix_blas_lapack.C: In instantiation of 'void
>     libMesh::DenseMatrix<T>::_matvec_blas(T, T, libMesh::DenseVector<T>&,
>     const libMesh::DenseVector<T>&, bool) const [with T = double]':
>     src/numerics/dense_matrix_blas_lapack.C:767:19:   required from here
>     src/numerics/dense_matrix_blas_lapack.C:737:3: error: cannot convert
>     'double*' to 'const PetscScalar* {aka const
>     std::complex<double>*}' for
>     argument '4' to 'void zgemv_(const char*, const PetscBLASInt*, const
>     PetscBLASInt*, const PetscScalar*, const PetscScalar*, const
>     PetscBLASInt*, const PetscScalar*, const PetscBLASInt*, const
>     PetscScalar*, PetscScalar*, const PetscBLASInt*)'
>     src/numerics/dense_matrix_blas_lapack.C: In instantiation of 'void
>     libMesh::DenseMatrix<T>::_svd_helper(char, char,
>     std::__debug::vector<T>&, std::__debug::vector<T>&,
>     std::__debug::vector<T>&) [with T = double]':
>     src/numerics/dense_matrix_blas_lapack.C:772:66:   required from here
>     src/numerics/dense_matrix_blas_lapack.C:499:3: error: cannot convert
>     'double*' to 'PetscScalar* {aka std::complex<double>*}' for
>     argument '5'
>     to 'void zgesvd_(const char*, const char*, PetscBLASInt*,
>     PetscBLASInt*,
>     PetscScalar*, PetscBLASInt*, PetscReal*, PetscScalar*, PetscBLASInt*,
>     PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscReal*,
>     PetscBLASInt*)'
>     make[1]: *** [src/numerics/libmesh_dbg_la-dense_matrix_blas_lapack.lo]
>     Error 1
>     make[1]: Leaving directory `/home/eftang/dev_software/libmesh'
>     make: *** [all-recursive] Error 1
>
>
>     Thanks again,
>     Jens
>
>
>     On 08/16/2013 12:49 AM, David Knezevic wrote:
>     > I use " --with-clanguage=cxx" in the PETSc configuration. Can
>     you try
>     > adding that?
>     >
>     > David
>     >
>     >
>     > On 08/16/2013 03:24 AM, Jens Lohne Eftang wrote:
>     >> I want to configure and compile libmesh for complex number support.
>     >>
>     >> However I get the following error when making libmesh:
>     >>
>     >> In file included from ./include/libmesh/tensor_tools.h:25:0,
>     >>                     from src/numerics/numeric_vector.C:33:
>     >> ./include/libmesh/compare_types.h:65:37: error: template
>     argument 1 is
>     >> invalid
>     >> ./include/libmesh/compare_types.h:87:40: error: template
>     argument 2 is
>     >> invalid
>     >> ./include/libmesh/compare_types.h:92:39: error: wrong number of
>     template
>     >> arguments (1, should be 2)
>     >> ./include/libmesh/compare_types.h:77:8: error: provided for
>     >> 'template<class S, class T> struct libMesh::CompareTypes'
>     >> ./include/libmesh/compare_types.h:116:1: error: wrong number of
>     template
>     >> arguments (1, should be 2)
>     >> ./include/libmesh/compare_types.h:77:8: error: provided for
>     >> 'template<class S, class T> struct libMesh::CompareTypes'
>     >> ./include/libmesh/compare_types.h:116:1: error: template
>     argument 2 is
>     >> invalid
>     >> ./include/libmesh/compare_types.h:116:1: error: template
>     argument 2 is
>     >> invalid
>     >> ./include/libmesh/compare_types.h:116:1: error: wrong number of
>     template
>     >> arguments (1, should be 2)
>     >> ./include/libmesh/compare_types.h:77:8: error: provided for
>     >> 'template<class S, class T> struct libMesh::CompareTypes'
>     >> ./include/libmesh/compare_types.h:116:1: error: wrong number of
>     template
>     >> arguments (1, should be 2)
>     >>
>     >> .... lots of similar errors ...
>     >>
>     >> src/numerics/numeric_vector.C: In instantiation of 'libMesh::Real
>     >> libMesh::NumericVector<T>::subset_l2_norm(const
>     >> std::__debug::set<unsigned int>&) const [with T =
>     std::complex<double>;
>     >> libMesh::Real = double]':
>     >> src/numerics/numeric_vector.C:390:16: required from here
>     >> src/numerics/numeric_vector.C:348:5: error: no match for
>     'operator+=' in
>     >> 'norm += libMesh::TensorTools::norm_sq<std::complex<double> >((&
>     >> v)->libMesh::NumericVector<T>::operator()<std::complex<double>
>     >>    >(((unsigned int)it.__gnu_debug::_Safe_iterator<_Iterator,
>     >> _Sequence>::operator*<std::_Rb_tree_const_iterator<unsigned int>,
>     >> std::__debug::set<unsigned int> >())))'
>     >> make[1]: *** [src/numerics/libmesh_dbg_la-numeric_vector.lo]
>     Error 1
>     >>
>     >>
>     >> I have configured petsc 3.4.2 with
>     >>
>     >> --download-f-blas-lapack=1
>     >> --with-mpi-dir=/home/eftang/dev_software/mpich-install/
>     >> --with-debugging=0 --with-shared-libraries=1 --download-mumps=1
>     >> --download-umfpack=1 --with-scalar-type=complex
>     --download-scalapack
>     >> --download-ptscotch
>     >>
>     >> and libmesh with
>     >>
>     >> ./configure --enable-complex --enable-shared --enable-slepc
>     >> --enable-everything
>     >> --with-eigen-include=/home/eftang/dev_software/eigen-3.1.2
>     >> --prefix=/home/eftang/dev_software/libmesh_install
>     >>
>     >>
>     >> Any ideas?
>     >>
>     >> Best,
>     >> Jens
>     >>
>     >>
>     
> ------------------------------------------------------------------------------
>     >> Get 100% visibility into Java/.NET code with AppDynamics Lite!
>     >> It's a free troubleshooting tool designed for production.
>     >> Get down to code-level detail for bottlenecks, with <2% overhead.
>     >> Download for free and get started troubleshooting in minutes.
>     >>
>     
> http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
>     >> _______________________________________________
>     >> Libmesh-users mailing list
>     >> [email protected]
>     <mailto:[email protected]>
>     >> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>     >
>     
> ------------------------------------------------------------------------------
>     > Get 100% visibility into Java/.NET code with AppDynamics Lite!
>     > It's a free troubleshooting tool designed for production.
>     > Get down to code-level detail for bottlenecks, with <2% overhead.
>     > Download for free and get started troubleshooting in minutes.
>     >
>     
> http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
>     > _______________________________________________
>     > Libmesh-users mailing list
>     > [email protected]
>     <mailto:[email protected]>
>     > https://lists.sourceforge.net/lists/listinfo/libmesh-users
>
>
>     
> ------------------------------------------------------------------------------
>     Get 100% visibility into Java/.NET code with AppDynamics Lite!
>     It's a free troubleshooting tool designed for production.
>     Get down to code-level detail for bottlenecks, with <2% overhead.
>     Download for free and get started troubleshooting in minutes.
>     
> http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
>     _______________________________________________
>     Libmesh-users mailing list
>     [email protected]
>     <mailto:[email protected]>
>     https://lists.sourceforge.net/lists/listinfo/libmesh-users
>
>

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to