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>