[petsc-users] slepc eigenvectors

Dharmendar Reddy dharmareddy84 at gmail.com
Tue Jan 3 12:48:21 CST 2012


Hello Jack,
                 I get what you say. For this specific test case, the
Hamiltonian is real hermitian and it can be complex hermitian in some
problems that i may work with later on, so i kept the PetscScalar to be
complex. I understand that it can be arbitrary and it doesn't matter as
long as i work with magnitudes and inner products. But In my case, i am
looking at the following problem:
 A1 psi1 = lambda1 B1 psi1  : problem1
 A2 psi2 = lambda2  B1 psi2 : problem2

 Where A1 and A2 are different Hamiltonian, since i use the same spatial
discretization (B1=B2 here). I am interested in inner products between
eigenvectors of problem1 and problem2. If i use the same solver for
problem1 and problem2, as long as the arbitrary phase picked up for
eigenvectors of problem1 and problem2 is same, the inner products will be
consistent but if the solver picks phase phi1 and phase phi2 (phi1 /= phi2)
then i am not sure how to interpret the inner product

 innerproduct = psi1^H B1 psi2

On Tue, Jan 3, 2012 at 12:07 PM, Jack Poulson <jack.poulson at gmail.com>wrote:

> Dharmendar,
>
> If your matrix is real, and you want real eigenvectors, you should set
> PetscScalar to be real. I'm sure that you are aware that the phase of
> eigenvectors is arbitrary; there is no reason to assume that a complex
> eigensolver would pick out a purely real eigenvector when it exists.
>
> Jack
>
>
> On Tue, Jan 3, 2012 at 11:55 AM, Dharmendar Reddy <dharmareddy84 at gmail.com
> > wrote:
>
>> I use EPS_GHEP and PetscScalar is complex. I am wondering why i see this
>> result.
>> You can see from the eigenvectors in the previous email that the
>> magnitudes of the components match. For the lapack/matlab solution the
>> phase is pi (180 degres)  for each component where as for defualt or arpack
>> method phase is 56.53 degrees for each component. I will prepare a test
>> case and email the code.
>>
>> thanks
>> Reddy
>>
>>
>> On Tue, Jan 3, 2012 at 1:59 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:
>>
>>>
>>> On 03/01/2012, Dharmendar Reddy wrote:
>>>
>>> > Hello,
>>> >          I have a query regarding the eigenvectors computed in slepc.
>>> I am solving a genralized eigenvalue problem. I have attached the A and B
>>> matrices with this email.  If i run slepc solver with default options are
>>> arpack, i get one set of vectors (complex) as solution. If i run with
>>> eps_type lapack I get real vectors. A is hermitian, and B is positive
>>> definite. ( the actual problem is a schrodinger equation for particle in
>>> infinite potential well, so the solution will be of the form sin(x)). I
>>> check the solution in matlab using eig(A,B) i get real vectors. Looks like
>>> there is some unitary transformation involved here, can you tell me what
>>> could be going on.
>>> >
>>> > i copy a small portion of the eigen vector of the lowest magnitude
>>> eigenvlaue (=0.0887)
>>> > ---Method: (slepc and eps_type lapack) or matlab-----
>>> > (-0.101596582735892,0.000000000000000E+000)
>>> >  (-0.200421875537261,0.000000000000000E+000)
>>> >  (-0.293780182034781,0.000000000000000E+000)
>>> >  (-0.379124930994127,0.000000000000000E+000)
>>> >  ...
>>> >  ...
>>> >  ...
>>> >   (-0.293780182033444,0.000000000000000E+000)
>>> >  (-0.200421875536298,0.000000000000000E+000)
>>> >  (-0.101596582735387,0.000000000000000E+000)
>>> >
>>> ------------------------------------------------------------------------------
>>> > ---Method: (slepc and eps_type defualt or arpack) ----
>>> >
>>> >
>>> >   (5.602609025416389E-002,8.475224384072830E-002)
>>> >  (0.110523934800485,0.167192667375096)
>>> (0.162006974547097,0.245072510835553)
>>> >  (0.209070886310831,0.316267414979582)
>>> (0.250431889351034,0.378835368586700)
>>> >  (0.284961763219882,0.431069680779720)
>>> (0.311718623092706,0.471545535910556)
>>> >  (0.329972611445050,0.499158857936955)
>>> (0.339225807211469,0.513156427631836)
>>> >  (0.339225807166595,0.513156427588630)
>>> (0.329972611486755,0.499158857980068)
>>> >  (0.311718623054404,0.471545535864886)
>>> (0.284961763251251,0.431069680822535)
>>> >  (0.250431889322221,0.378835368543795)
>>> (0.209070886332945,0.316267415014661)
>>> >  (0.162006974528570,0.245072510805346)
>>> (0.110523934811968,0.167192667394530)
>>> >  (5.602609024797538E-002,8.475224382992022E-002)
>>>
>>> I cannot reproduce the problem. I always get the correct eigenvector.
>>> Are you doing the computation in real arithmetic? Are you setting the
>>> problem type to EPS_GHEP?
>>>
>>> Jose
>>>
>>>
>>>
>>>
>>
>>
>> --
>> -----------------------------------------------------
>> Dharmendar Reddy Palle
>> Graduate Student
>> Microelectronics Research center,
>> University of Texas at Austin,
>> 10100 Burnet Road, Bldg. 160
>> MER 2.608F, TX 78758-4445
>> e-mail: dharmareddy84 at gmail.com
>> Phone: +1-512-350-9082
>> United States of America.
>>
>>
>


-- 
-----------------------------------------------------
Dharmendar Reddy Palle
Graduate Student
Microelectronics Research center,
University of Texas at Austin,
10100 Burnet Road, Bldg. 160
MER 2.608F, TX 78758-4445
e-mail: dharmareddy84 at gmail.com
Phone: +1-512-350-9082
United States of America.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120103/a1913f55/attachment.htm>


More information about the petsc-users mailing list