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>

Reply via email to