added the patch in branch balay/add-KSPComputeRitz-patch [over master] ran a build with alltests - and now merged to next.
Thanks, Satish On Fri, 20 Nov 2015, Barry Smith wrote: > > Nicolas, > > Sorry about not responding. It would be easier for me if this was > submitted as a pull request. > > Jed and/or Satish, > > Could you please create a branch from the patch file (since you guys > love receiving patch files), look at it and then put it into next for > testing? ASAP > > Thanks > > Barry > > > > On Nov 20, 2015, at 12:00 PM, TARDIEU Nicolas <[email protected]> > > wrote: > > > > Dear PETSc Team, > > > > May I request your opinion of the development proposal in the following > > mail. > > This work has been carried out in the framework of a PhD thesis ; besides > > the scientific goals, the proposed features are intended to be integrated > > in the open-source software Code_Aster, a general purpose finite element > > solver developed at EDF R&D, in particular for nuclear safety assessment. > > In order to ensure the perennity of the development, their integration > > within PETSc is crucial. > > > > This is why I gently request your position on their integration in PETSc. > > Let us know your policy on the subject and do not hesitate to request for > > extra integration work if needed. > > > > Best regards, > > Nicolas > > > > <image001.png> > > > > Nicolas Tardieu > > Head of the Rotating Machinery Group > > EDF - R&D > > > > [email protected] > > Tél. : +33 1 47 65 39 05 > > > > > > > > > > ---------- Forwarded message ---------- > > From: Sylvain Mercier <[email protected]> > > Date: 2015-11-03 17:09 GMT+01:00 > > Subject: [petsc-dev] Contribution proposal about the computation of > > (harmonic) Ritz pairs within GMRES > > To: [email protected] > > > > > > Hi everyone, > > > > During my phd thesis, I have worked on solving sequences of linear > > systems with slowly varying matrices using GMRES(restart). In > > particular, I have developed a preconditioning technique to improve > > the action of an existing "first-level preconditioner". This new > > method is defined using Ritz or harmonic Ritz vectors obtained at the > > end of the solution of a linear system. Then I have developed two > > routines in PETSc (that I've called KSPSetComputeRitz and > > KSPComputeRitz) in order to compute the (harmonic) Ritz pairs > > associated to the smallest or largest (harmonic) Ritz values in > > modulus computed from the Hessenberg matrix of the last complete cycle > > in GMRES. > > > > Beyond the application to the preconditioning technique that I have > > developed, this routine can be used to recover approximated eigenpairs > > (and not only eigenvalues as already available in PETSc) of the > > preconditioned matrix at the end of a solution with GMRES. That is why > > I propose this contribution. > > > > Two new routines has been developed, similarly to the existing > > routines KSPSetComputeEigenvalues and KSPComputeEigenvalues. > > > > The first one is called KSPSetComputeRitz and sets a flag so that the > > last complete Hessenberg matrix computed with GMRES(restart) will be > > stored. Here is the synopsis of the current version (located in > > src/ksp/ksp/interface/itfunc.c) > > > > PetscErrorCode KSPSetComputeEigenvalues(KSP ksp,PetscBool flg) > > > > Input Parameters > > ksp - iterative context obtained from KSPCreate() > > flg - PETSC_TRUE or PETSC_FALSE > > > > > > The second routine aims at computing the Ritz or harmonic Ritz > > associated to the smallest or largest values in modulus. Here is the > > synopsis of the current version (located in > > src/ksp/ksp/impls/gmres/gmreig.c) > > > > PetscErrorCode KSPComputeRitz(KSP ksp,PetscBool ritz,PetscBool > > small,PetscInt *nrit,Vec S[],PetscReal tetar[],PetscReal tetai[]) > > > > Input Parameter > > ksp - iterative context obtained from KSPCreate() > > ritz - PETSC_TRUE or PETSC_FALSE to compute Ritz pairs > > and harmonic Ritz pairs, respectively > > small - PETSC_TRUE or PETSC_FALSE to compute pairs > > associated to smallest or largest values in modulus, respectively > > > > Input/Output parameter > > n - The number of required and recovered pairs > > > > Output Parameters > > S[] - a multidimensional PETSc vector to store > > the (harmonic) Ritz vectors, provided by user with a dimension of at > > least n > > tetar - real part of computed (harmonic) Ritz values, provided > > by user with a dimension of at least n > > tetai - imaginary part of computed (harmonic) Ritz values, > > provided by user with a dimension of at least n > > > > This routine has been developed whithin GMRES for real-valued linear > > systems. Then the (harmonic) Ritz pairs are possibly complex-valued > > and conjugated. In this case, two successive columns of S are equal to > > the real and the imaginary parts of the vectors. Finally, the routine > > KSPSolve_GMRES (located in src/ksp/ksp/impls/gmres/gmreig.c) has been > > modified in order to store the Hessenberg matrix and the basis vectors > > of the Krylov subspace as soon as a complete cycle has been performed. > > > > To conclude, I propose to contribute to PETSc with these developments > > (I have followed the conventions detailed in the developer guide). > > Please find attached a patch and the modified files. > > > > Regards, > > Sylvain > > > > > > > > Ce message et toutes les pièces jointes (ci-après le 'Message') sont > > établis à l'intention exclusive des destinataires et les informations qui y > > figurent sont strictement confidentielles. Toute utilisation de ce Message > > non conforme à sa destination, toute diffusion ou toute publication totale > > ou partielle, est interdite sauf autorisation expresse. > > > > Si vous n'êtes pas le destinataire de ce Message, il vous est interdit de > > le copier, de le faire suivre, de le divulguer ou d'en utiliser tout ou > > partie. Si vous avez reçu ce Message par erreur, merci de le supprimer de > > votre système, ainsi que toutes ses copies, et de n'en garder aucune trace > > sur quelque support que ce soit. Nous vous remercions également d'en > > avertir immédiatement l'expéditeur par retour du message. > > > > Il est impossible de garantir que les communications par messagerie > > électronique arrivent en temps utile, sont sécurisées ou dénuées de toute > > erreur ou virus. > > ____________________________________________________ > > > > This message and any attachments (the 'Message') are intended solely for > > the addressees. The information contained in this Message is confidential. > > Any use of information contained in this Message not in accord with its > > purpose, any dissemination or disclosure, either whole or partial, is > > prohibited except formal approval. > > > > If you are not the addressee, you may not copy, forward, disclose or use > > any part of it. If you have received this message in error, please delete > > it and all copies from your system and notify the sender immediately by > > return message. > > > > E-mail communication cannot be guaranteed to be timely secure, error or > > virus-free. > > > > <Ritz_routines.tar.gz> > >
