[Pw_forum] Neutrons, Xrays, and Phonons, Oh, My!

Eric Abel etabel at hotmail.com
Thu Jun 29 00:14:38 CEST 2006

>From: Paolo Giannozzi <giannozz at nest.sns.it>
>Reply-To: pw_forum at pwscf.org
>To: pw_forum at pwscf.org
>Subject: Re: [Pw_forum] Neutrons, Xrays, and Phonons, Oh, My!
>Date: Wed, 28 Jun 2006 11:34:15 +0200
>On Wednesday 28 June 2006 09:42, Eric Abel wrote:
> > I recently made a rather lengthy cry for help on the phonon
> > eigendisplacements, which fell, it seems, on deaf ears.
>my ears are deaf to such questions because the ratio between
>"effort required to answer" versus "information provided" is

"unfavourable" us subjective...to me the information is valuable, therefore 
the ratio is "favourable".

>All you need is to know whether what is printed
>or calculated is the eigenvector of the dynamical matrix or the
>eigendisplacements. This piece of information is usually written
>inside the various codes that write/calculate/process the
>dynamical matrix.

I couldn't agree with you more...and if this were my only problem, I never 
would have written you.
Clearly, from the snippet of code below, what is written by the subroutine 
dyndia is |v>*M^-1/2, thus making the output of the program the 
eigendisplacement right?

Code snippet:

--       write displacements onto matrix dyn
     unorm = 0.d0
     do mu = 1, 3 * nat
        na = (mu - 1) / 3 + 1
        dyn (mu, nu_i) = z (mu, nu_i) / sqrt (amass (ityp (na) ) )
        unorm = unorm + dyn (mu, nu_i) * conjg (dyn (mu, nu_i) )

However, this doesn't really address my question.  What's bothering me is 
the following.  I always thought of eigenvectors as being normalized 
unitvectors which provide only the "direction" rather than the "magnitude", 
such as the pauli spinors.  The units are attached to the prefactor on the 
vector.  In this case the prefactor is 1/sqrt(M).  Unless I'm mistaken, |u> 
should have the unit length, and none of my physics books are telling me how 
to convert from [1/sqrt(mass)] to [length].  The other possibilty is that 
|v> has the unit of length, then |u> has the units [lenght/sqrt(mass)], 
meaning to get the displacement length, all I have to do is multiply the 
output of dyndia by sqrt(M), but I didn't find this scenerio so likely.

Perhaps the simplest, most transparent way to ask my question is this:  If 
matdyn/dynmat/ph (I believe use the dyndia subroutine) spits out the value 
0.4 for one of the elements in the eigendisplacement vector, what, then does 
this correspond to in Angstroms, for example?

> > Has anyone successfully calculated the Neutron/Xray scattering
> > cross-section based on the results of ph.x, matdyn.x, or dynmat.x?
>IR and Raman cross sections are calculated by dynmat.x

I noticed this...unfortunately for me, however, the interaction interaction 
in neutron/x-ray scattering is entirely different from that of Raman/IR.

Thsnk you, Paolo, for taking the time to address my "unfavorable" question.


>Paolo Giannozzi             e-mail:  giannozz at nest.sns.it
>Scuola Normale Superiore    Phone:   +39/050-509876, Fax:-563513
>Piazza dei Cavalieri 7      I-56126 Pisa, Italy
>Pw_forum mailing list
>Pw_forum at pwscf.org

More information about the users mailing list