Re: [petsc-dev] Mistakes in GMRES code
2011/3/9 Satish Balay <[email protected]>
Due to the configure.log etc attachments - the original e-mail didn't make to the list. such emails are best sent to petsc-maint@mcs
Duly noted.
Pushed a fix [disabling dgmres for complex for now]. Please pull and retry.
Unfortunately the complex GMRES is exactly the reason I'm using PETSc in the first place! Perhaps I should pop back to a few revisions ago? Jack On Wed, 9 Mar 2011, Jack Poulson wrote:
I ran into the following compilation errors during a build of revision 18434:
libfast in: /home/jack/Source/petsc-dev/src/ksp/ksp/impls/gmres/dgmres In file included from dgmres.c:10: dgmresimpl.h:32: error: ‘PetscPetscBLASInt’ has not been declared dgmresimpl.h:34: error: ‘PetScalar’ has not been declared dgmres.c: In function ‘PetscErrorCode KSPDGMRESComputeDeflationData_DGMRES(_p_KSP*)’: dgmres.c:777: error: no matching function for call to ‘VecDot(_p_Vec*&, _p_Vec*&, PetscReal*)’ /home/jack/Source/petsc-dev/include/petscvec.h:142: note: candidates are: PetscErrorCode VecDot(_p_Vec*, _p_Vec*, PetscScalar*) /home/jack/Source/petsc-dev/include/petscvec.h:143: note: PetscScalar VecDot(_p_Vec*, _p_Vec*) dgmres.c: In function ‘PetscErrorCode KSPDGMRESComputeSchurForm_DGMRES(_p_KSP*, PetscInt*)’: dgmres.c:943: error: cannot convert ‘PetscReal*’ to ‘PetscScalar*’ for argument ‘6’ to ‘void zhseqr_(const char*, const char*, PetscBLASInt*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscBLASInt*)’ dgmres.c:992: error: cannot convert ‘PetscReal*’ to ‘PetscScalar*’ for argument ‘5’ to ‘void ztrsen_(const char*, const char*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscReal*, PetscReal*, PetscScalar*, PetscBLASInt*, PetscBLASInt*)’ dgmres.c: In function ‘PetscErrorCode KSPDGMRESApplyDeflation_DGMRES(_p_KSP*, _p_Vec*, _p_Vec*)’: dgmres.c:1055: error: cannot convert ‘PetscReal*’ to ‘PetscScalar*’ for argument ‘13’ to ‘void zgerfs_(const char*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscScalar*, PetscScalar*, PetscReal*, PetscBLASInt*)’ dgmres.c:1059: error: no match for ‘operator/’ in ‘*(dgmres->KSP_DGMRES::x1 + ((unsigned int)(((unsigned int)i) * 16u))) / lambda’ dgmres.c: In function ‘PetscErrorCode KSPDGMRESImproveEig_DGMRES(_p_KSP*, PetscInt)’: dgmres.c:1156: error: cannot convert ‘PetscScalar*’ to ‘PetscReal*’ for argument ‘6’ to ‘void zgges_(const char*, const char*, const char*, void**, PetscBLASInt*, PetscReal*, int*, PetscReal*, PetscBLASInt*, PetscBLASInt*, PetscReal*, PetscReal*, PetscReal*, PetscBLASInt*, PetscReal*, PetscBLASInt*, PetscReal*, PetscBLASInt*, PetscBLASInt*, PetscBLASInt*)’ dgmres.c:1213: error: cannot convert ‘PetscScalar*’ to ‘int*’ for argument ‘8’ to ‘void ztgsen_(PetscBLASInt*, PetscBLASInt*, PetscBLASInt*, PetscBLASInt*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, int*, PetscBLASInt*, PetscScalar*, PetscScalar*, PetscScalar*, PetscBLASInt*, PetscScalar*, PetscBLASInt*, PetscBLASInt*, PetscReal*, PetscReal*, PetscReal*, PetscReal*, PetscBLASInt*, PetscBLASInt*, PetscBLASInt*, PetscBLASInt*)’ /usr/bin/ar: dgmres.o: No such file or directory
Is this a known issue? The commit log for this revision is conspicuously related: date: Wed Mar 09 15:45:12 2011 -0600 summary: c++ build fixes for gdmres
Jack
participants (1)
-
Jack Poulson