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

Reply via email to