Dear Alexader
you are right that the vector separating two atoms includes also the difference between their position inside the cell but they are uniquely defined by this difference (well defined when the two atoms are chosen) and a direct lattice vector R. this is the vector r(i) = (n1-1)*at(i,1)+(n2-1)*at(i,2)+(n3-1)*at(i,3) we are talking about. then the actual vector is computed as r_ws(i) = r(i) + tau(i,na)-tau(i,nb) and its relation with respect to the WS super-cell of the system is computed by wsweight(r_ws,rws,nrws) why the summation goes from -2*N to +2*N ? One wants to include in the summation all the R that would lead to a point inside the WS supercell. For a simple cubic lattice this would be just from -N to N. For Bravais lattices with small angles between the fundamental lattice vectors this is might not be enough. One could/should actually compute what is the safe range needed include all relevant points... this was not done but we just included a "VERY VERY SAFE RANGE!" of +/-2*N that proved safe for all system examined so far.

   stefano


On 11/07/2014 11:23 AM, Kvasov Alexander wrote:

Dear Stefano,

thanks a lot for your kind reply! One thing is still not clear for me. Could you please clarify it? Please see below.

> the corresponding relevant real space vectors vectors are therefore given by > r(i) = (n1-1)*at(i,1)+(n2-1)*at(i,2)+(n3-1)*at(i,3) + their periodic refolding to points nearest the origin
> a few examples should clarify:
>     1 1 1  -> r =    0
>     2 1 1  -> r =  a1
>     8 1 1  -> r = -a1

It’s true for the same atoms, for example

8 8   8

1   1   1   1               (atom1=atom2=1)

1   1   1   5.72142674655E-02

2   1   1  -1.06343912107E-02

3   1   1   1.01649714042E-04

4   1   1   4.15611567060E-06

5   1   1  -6.46046533014E-06

6   1   1   4.15611567060E-06

7   1   1   1.01649714042E-04

8   1   1  -1.06343912107E-02

and indeed

1 1 1  -> r =    0
2 1 1  -> r =  a1
8 1 1  -> r = -a1

However, if we take

  3 5  0  7.3434758  0.0000000  0.0000000  0.0000000  0.0000000 0.0000000

1.000000000    0.000000000    0.000000000

0.000000000    1.000000000    0.000000000

0.000000000    0.000000000    1.000000000

1  'Sr '    79860.7444956297

           2 'Ti '    43628.1015381455

           3 'O  '    14582.5610075711

    1 1      0.0000000000      0.0000000000      0.0000000000

2    2      0.5000000000      0.5000000000      0.5000000000

3    3      0.5000000000      0.5000000000      0.0000000000

4    3      0.5000000000      0.0000000000      0.5000000000

5    3      0.0000000000      0.5000000000      0.5000000000

T

6.2439081      0.0000000      0.0000000

0.0000000      6.2439081      0.0000000

0.0000000      0.0000000      6.2439081

1

2.4363133      0.0000000      0.0000000

0.0000000      2.4363133      0.0000000

0.0000000      0.0000000      2.4363133

2

7.3260124      0.0000000      0.0000000

0.0000000      7.3260124      0.0000000

0.0000000      0.0000000      7.3260124

3

-2.0082996      0.0000000      0.0000000

0.0000000     -2.0082996      0.0000000

0.0000000      0.0000000     -5.7457266

4

-2.0082996      0.0000000      0.0000000

0.0000000     -5.7457266      0.0000000

0.0000000      0.0000000     -2.0082996

5

-5.7457266      0.0000000      0.0000000

0.0000000     -2.0082996      0.0000000

0.0000000      0.0000000     -2.0082996

8   8   8

…..

…..

1   1   1   2               (*atom1(atom of origin)=2, atoms2=1*)

1   1   1  -1.52661521097E-03

2   1   1  -1.52661520884E-03

3   1   1  -2.40826237874E-04

4   1   1  -1.56748657082E-04

5   1   1  -9.53993420913E-05

6   1   1  -9.53993442291E-05

7   1   1  -1.56748429042E-04

8   1   1  -2.40826009834E-04

and R-R0 is not anymore (n1-1)*a+(n2-1)*b+(n3-1)*c, but should include difference between atoms like

R-R0=(n1-1)*a+(n2-1)*b+(n3-1)*c+( R_cell(atom1) – R_cell(atom2))

this way

   1 1   1  -1.52661521097E-03                 R-R0=-a/2

2   1   1  -1.52661520884E-03                 R-R0= a/2

3   1   1  -2.40826237874E-04                 R-R0= 3a/2

4   1   1  -1.56748657082E-04

5   1   1  -9.53993420913E-05

6   1   1  -9.53993442291E-05

7   1   1  -1.56748429042E-04

8   1   1  -2.40826009834E-04                 R-R0=-3a/2

Moreover in SUBROUTINE frc_blk i don’t find the place where the difference between atoms is taken into account

…

r(i) = n1*at(i,1)+n2*at(i,2)+n3*at(i,3)

…

arg = tpi*(q(1)*r(1) + q(2)*r(2) + q(3)*r(3))

DO ipol=1, 3

DO jpol=1, 3

dyn(ipol,jpol,na,nb) =                 &

dyn(ipol,jpol,na,nb) +            &

(frc(m1,m2,m3,ipol,jpol,na,nb)+f_of_q(ipol,jpol,na,nb)) &

*CMPLX(COS(arg),-SIN(arg),kind=DP)*weight

…

another small question why in SUBROUTINE frc_blk the summation goes from -2N to 2N ???

DO n1=-2*nr1,2*nr1

DO n2=-2*nr2,2*nr2

DO n3=-2*nr3,2*nr3

Alexander

From: pw_forum-boun...@pwscf.org [mailto:pw_forum-boun...@pwscf.org] On Behalf Of stefano de gironcoli
Sent: 06 November 2014 18:55
To: PWSCF Forum
Subject: Re: [Pw_forum] IFCs and supercell

dear Alexander,

the grid correspond to a 8x8x8 supercell (or rather to the FFT of a 8x8x8 q-point grid ... which is the same)

atomic pairs are specified by the indices of the two atoms in the unit cell plus the direct lattice vector connecting the two cells in which they are located with two important details to be considered
    1) the origin is the 1,1,1 element of the list
2) the IFC are obtained by a FFT from the dynamical matrices of the q-point grid and are therefore written assuming 8 8 8 periodicity (in the present case) the corresponding relevant real space vectors vectors are therefore given by r(i) = (n1-1)*at(i,1)+(n2-1)*at(i,2)+(n3-1)*at(i,3) + their periodic refolding to points nearest the origin
a few examples should clarify:
     1 1 1  -> r =    0
     2 1 1  -> r =  a1
     8 1 1  -> r = -a1

the routine weight play the fundamental role of trimming the vector in such a way the only the points inside the wigner-seitze
cell of the supercell contribute
     weight (r) = 1 if r is inside the WS cell
     weight (r) = 0 if r is ouside the WS cell
weight (r) = 1/(n+1) if r is on the surface of the WS cell where n is the number of planes that pass through it

stefano

On 11/06/2014 06:14 PM, Kvasov Alexander wrote:

Dear All,

My question is: how the supercell (which is used by q2r and matdyn) is specified? If anybody has any information about this I would highly appreciate.

“fltau” option of matdyn gives atomic positions only for 1 cell and not for N1xN2xN3 supercell.

Apparently, there are some tricks… for example, here one has some IFCs for 8x8x8 grid of SrTiO3

...

8   8   8

1   1   1   1

1   1   1   5.72142674655E-02

2   1   1  -1.06343912107E-02

3   1   1   1.01649714042E-04

4   1   1   4.15611567060E-06

5   1   1  -6.46046533014E-06

6   1   1   4.15611567060E-06

7   1   1   1.01649714042E-04

8   1   1  -1.06343912107E-02

...

1. first, IFC values decries with N1 and then increase, so they have to be shuffled

2. second, it seems SUBROUTINE setupmat and frc_blk is the right place to look for this

…

DO na=1, nat

DO nb=1, nat

total_weight=0.0d0

DO n1=-2*nr1,2*nr1

DO n2=-2*nr2,2*nr2

DO n3=-2*nr3,2*nr3

!

! SUM OVER R VECTORS IN THE SUPERCELL - VERY VERY SAFE RANGE!

!

DO i=1, 3

r(i) = n1*at(i,1)+n2*at(i,2)+n3*at(i,3)

END DO

…

but summation goes from -2N to 2N, which is not clear for me.

3. what is “weight”  in SUBROUTINE setupmat and frc_blk

If anybody could explain what is going on here it would be great!

Sincerely yours,

Alexander Kvasov

Scientist

Ceramics Laboratory (LC)

École Polytechnique Fédérale de Lausanne (EPFL)

Phone: +41 21 693 5805

Address:

EPFL STI IMX LC

MXD 220 (Bâtiment MXD) Station 12

1015 Lausanne, Switzerland




_______________________________________________

Pw_forum mailing list

Pw_forum@pwscf.org <mailto:Pw_forum@pwscf.org>

http://pwscf.org/mailman/listinfo/pw_forum



_______________________________________________
Pw_forum mailing list
Pw_forum@pwscf.org
http://pwscf.org/mailman/listinfo/pw_forum

_______________________________________________
Pw_forum mailing list
Pw_forum@pwscf.org
http://pwscf.org/mailman/listinfo/pw_forum

Reply via email to