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

Reply via email to