Dear Libmesh developers, I am compiling Libmesh SVN version with PETSc-dev when enabling complex number mode. However, I met the following errors "Compiling C++ (in optimized mode) src/numerics/dense_matrix_base.C... Compiling C++ (in optimized mode) src/numerics/dense_matrix_blas_lapack.C... src/numerics/dense_matrix_blas_lapack.C: In member function ‘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:758: instantiated from here src/numerics/dense_matrix_blas_lapack.C:176: error: cannot convert ‘double*’ to ‘PetscScalar*’ 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 member function ‘void libMesh::DenseMatrix<T>::_lu_decompose_lapack() [with T = double]’: src/numerics/dense_matrix_blas_lapack.C:759: instantiated from here src/numerics/dense_matrix_blas_lapack.C:262: error: cannot convert ‘double*’ to ‘PetscScalar*’ for argument ‘3’ to ‘void zgetrf_(PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscBLASInt*, PetscBLASInt*)’ src/numerics/dense_matrix_blas_lapack.C: In member function ‘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:761: instantiated from here src/numerics/dense_matrix_blas_lapack.C:590: error: cannot convert ‘double*’ to ‘PetscScalar*’ for argument ‘4’ to ‘void zgetrs_(const char*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscBLASInt*)’ src/numerics/dense_matrix_blas_lapack.C: In member function ‘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:765: instantiated from here src/numerics/dense_matrix_blas_lapack.C:735: error: cannot convert ‘double*’ to ‘const PetscScalar*’ 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 member function ‘void libMesh::DenseMatrix<T>::_svd_helper(char, char, std::vector<T, std::allocator<_CharT> >&, std::vector<T, std::allocator<_CharT> >&, std::vector<T, std::allocator<_CharT> >&) [with T = double]’: src/numerics/dense_matrix_blas_lapack.C:770: instantiated from here src/numerics/dense_matrix_blas_lapack.C:497: error: cannot convert ‘double*’ to ‘PetscScalar*’ for argument ‘5’ to ‘void zgesvd_(const char*, const char*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscReal*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscReal*, PetscBLASInt*)’ make: *** [src/numerics/dense_matrix_blas_lapack.x86_64-unknown-linux-gnu.opt.o] Error 1 "
I have checked the codes. in src/numerics/dense_matrix_blas_lapack.C.... If "#if (LIBMESH_HAVE_PETSC && LIBMESH_USE_REAL_NUMBERS)" is true, the codes can be compiled. I don't understand the codes are complied when I use complex mode. Thank you very much. Best, Yujie ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
