I have merged the code in the master branch of PETSc and it will be in the 
next release.

   Thanks for the contribution,

   Barry

> On Nov 22, 2015, at 3:01 PM, TARDIEU Nicolas <[email protected]> wrote:
> 
> Dear Barry and Satish,
> 
> I thank you warmly for your quick answer and integration.
> Regards,
> Nicolas
> 
> --
> Nicolas Tardieu
> Head of the Rotating Machinery Group EDF - R&D
> [email protected]
> Tel. : +33 1 47 65 39 05
> 
> 
> 
> 
> -----Message d'origine-----
> De : [email protected] [mailto:[email protected]] 
> Envoyé : samedi 21 novembre 2015 03:18
> À : [email protected]
> Cc : TARDIEU Nicolas
> Objet : Re: [petsc-dev] TR: Contribution proposal about the computation of 
> (harmonic) Ritz pairs within GMRES
> 
> 
>  Great, Thanks!
> 
>> On Nov 20, 2015, at 8:15 PM, Satish Balay <[email protected]> wrote:
>> 
>> 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>
>>> 
> 
> 
> 
> 
> 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.

Reply via email to