[Pw_forum] question pertaining to subroutine regterg

willy kohn willykohn at gmail.com
Wed Apr 16 03:31:23 CEST 2008


Hi, baroni:

Thank you very much! It took me quite a while to straight things out. It is
a honor to get your and Paolo's kindly help. If permitted, I might keep
bothering you guys about the code :)

cheers,

Wei

On Thu, Apr 3, 2008 at 10:46 AM, Stefano Baroni <baroni at sissa.it> wrote:

> Hi Wei.
> I know little of the routine regter, as it is now, but I know very well
> what it used to be, because I wrote a routine with this name long, long,
> ago. The routine name is a kind of awkward acronym, where the first "R"
> stands for real (as opposed to Cegter: guess why); TER stands for iTERative,
> and EG  for EiGen ... Admittedly, not a very informative name
> 1) a real matrix can be stored in a complex array: the computer will never
> know, because fortran arguments are passed to subprograms by reference (i.e.
> the compiler passes just the memory address of the first element of the
> array: it is the programmer's responsibility to make sure that what the
> subroutine receives is what the he/she intends). It is admittedly not good
> programming practice to pass a complex array instead of a real one (or vice
> versa), but I can assure that this was common practice when I was young
> (long, long ago).
>
> 2) the eigenvectors of a real symmetric matrix can ALWAYS be chosen to be
> real, as you can easily convince yourself by simply thinking of the
> definition of eiegenvectors.
>
> Hope this helps the peace of your mind.
>
> Cheers - Stefano Baroni
>
> PS: I do appreciate that some people take the luxury of digging into the
> codes. This is the only way to learn the art of scientific computing. Bravo!
>
> On Apr 2, 2008, at 10:43 PM, willy kohn wrote:
>
> Hi, there:
>
> I was stucked again in the subroutine regterg in the file regterg.f90 when
> I read the pwscf code. There are two things bothering me.
>
> One is in the subroutine, the variables psi and hpsi are declared as
> complex(dp), however, they are used as parameters to call the  Lapack
> subroutine DGEMM, which requires real numbers. For example, in the line 136,
>
>
>  CALL DGEMM( 'T', 'N', nbase, nbase, ndim2, 2.D0 , &
>                psi, ndmx2, hpsi, ndmx2, 0.D0, hr, nvecx )
>
> The other one is about the diagonalization of the reduced hamiltonian hr,
> which is declared as a real symmetric matrix in the subroutine. But in
> general, the wavefunction psi is complex, how can we guarentee all the
> elements in the matrix is real? Can the matrix hr be a Hermitian one?
>
>
> Best,
>
> Wei
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>
>
> ---
> Stefano Baroni - SISSA  &  DEMOCRITOS National Simulation Center - Trieste
> [+39] 040 3787 406 (tel) -528 (fax) / stefanobaroni (skype)
>
> Please, if possible, don't  send me MS Word or PowerPoint attachments
> Why? See:  http://www.gnu.org/philosophy/no-word-attachments.html
>
>
>
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20080415/760bfc27/attachment.html>


More information about the users mailing list