El 16/05/2012, a las 13:12, Giacomo Mulas escribi?: > Hello. This is a slepc issue. > > I have developed a code to compute anharmonic corrections to a harmonic > vibrational analysis of a molecule, including an explicit treatment of > accidental resonances. > This results in setting up a number of eigenvalue problems "around" pure > harmonic states, which are my basis set. These eigenvalue problems are > sparse, and I only need a relatively small subset of the solutions. However, > what is unusual is _which_ eigenpairs I want: I want the eigenpairs whose > eigenvectors span a subspace which covers (within a predetermined accuracy) > the few pure harmonic states I am interested in. That is, I want enough > eigenpairs that the projection of my pure harmonic state on these > eigenvectors is "close enough" to it. > > So far, I am relying on spectral slicing to obtain the eigenpairs in a > neighbourhood of the pure harmonic states I start from, increasing > neighbourhood radius until I cover the starting state adequately. However, > this results in a lot of waste: many eigenstates are accidentally close to > my target harmonic states, with little or no projection on them. I end up > computing 1-2 orders of magnitude more states than the needed ones (checked > a posteriori). > > The best, for my needs, would be to be able to specify, in slepc, that my > target solutions are the ones with the highest projection on some vector > (or, better, subspace spanned by some vectors), instead of using a selection > criterion based on eigenvalues closest to a target or in an interval. Is > there some (not too complex) way to "convince" slepc to work like this? I > can think of providing my target vectors (one by one, or a linear > combination) as a starting point to generate the Krylov subspace, but then > how do I select eigenvectors to really be the ones I want? > > Thanks in advance > Giacomo
Currently there is no way to do this. But we have had a couple of similar requests before. We are now reorganizing parts of code within SLEPc, so I will think if it is viable to provide a solution for this. I will get back to you. Jose
