[petsc-dev] Mistakes in GMRES code

Satish Balay balay at mcs.anl.gov
Wed Mar 9 23:05:57 CST 2011


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 at mcs

Pushed a fix [disabling dgmres for complex for now]. Please pull and
retry.

satish

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
> 


More information about the petsc-dev mailing list