Hi David, Thanks for your reply. I'm working on a larger software which needs LibMesh configured with real numbers. Does this mean I won't be able to get complex eigen vectors?
Is it possible to get the EPS object from SlepcEigenSolver so that I can directly call SLEPc? Thanks, Harshad On Tue, Sep 9, 2014 at 6:23 PM, David Knezevic <[email protected]> wrote: > This is a good point. SLEPc does return both real and imaginary parts, > e.g. see here: > > http://www.grycap.upv.es/slepc/documentation/current/docs/manualpages/EPS/EPSGetEigenpair.html > > Note that it says "If PETSc is configured with complex scalars the > eigenvalue is stored directly in eigr (eigi is set to zero) and the > eigenvector in Vr (Vi is set to zero)." > > So, it looks like in real mode we ignore the imaginary part in > SlepcEigenSolver<T>::get_eigenpair since we pass in PETSC_NULL for Vi. > But in complex mode the eigenvector should be correct, according to the > quote above. > > So you could configure libMesh with complex numbers, and then it should > work for you. > > But also, we should think about patching > SlepcEigenSolver<T>::get_eigenpair so that it sets Vi correctly in real > mode as well. Perhaps the simplest way to do that is to add a boolean to > select whether we want Vr or Vi when we call get_eigenpair. > > David > > > > On 09/09/2014 05:59 PM, Harshad Sahasrabudhe wrote: > > Hi, > > > > I'm using LibMesh compiled with SLEPc and PETSc in real mode. I'm using > > EigenSystem class to solve an eigen problem with real matrix > coefficients. > > The eigen vectors of such a system can be complex. > > > > How do I get the complex eigenvectors? As far as I have looked into > LibMesh > > source code, I have only found the solution to be in this form: > > > > AutoPtr< NumericVector< Number > > solution > > > > where the Number is a Real. Does this mean the solution is a real vector? > > Then how do we store the imaginary part? > > > > Thanks, > > Harshad > > > ------------------------------------------------------------------------------ > > Want excitement? > > Manually upgrade your production database. > > When you want reliability, choose Perforce. > > Perforce version control. Predictably reliable. > > > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk > > _______________________________________________ > > Libmesh-users mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/libmesh-users > > > ------------------------------------------------------------------------------ > Want excitement? > Manually upgrade your production database. > When you want reliability, choose Perforce. > Perforce version control. Predictably reliable. > > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk > _______________________________________________ > Libmesh-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/libmesh-users > ------------------------------------------------------------------------------ Want excitement? Manually upgrade your production database. When you want reliability, choose Perforce. Perforce version control. Predictably reliable. http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
