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

Reply via email to