[Pw_forum] atomic positions by space_group (subroutine ccord in wyckoff.f90 )

Andrea Dal Corso dalcorso at sissa.it
Thu Dec 15 10:03:16 CET 2016


On Thu, 2016-12-15 at 11:38 +0800, quantum wrote:
> Dear QE Friends:
> 
> I did a PW (version 5.3.0) simulation using space_group to specify the
> atomic positions.  A part of the input file is listed below.
> 
> ========= QE input file =========
> &system
>   space_group = 15
>   uniqueb = .true.
>   origin_choice = 1
>   nat = 7
>   .....
> 
> ATOMIC_POSITIONS crystal_sg
>   Ca  0.00000   0.17050   0.25000
>   S   0.00000   0.32727   0.75000
>   O   0.08319   0.27218   0.59103
>   O   0.19997   0.38195   0.91298
>   O  -0.20823   0.06826  -0.07831
>   H  -0.25800   0.08700  -0.23400
>   H  -0.24400   0.02000  -0.07700
> ===================================
> As suggested by the PW output file, the 7 inequivalent atoms are expanded
> into 24 atoms listed below. (I have manually labeled the 7 inequivalent
> atoms with a star for clarity.)
> 
> ========= QE output file ======================================================
>    Crystallographic axes
> 
>      site n.     atom                  positions (cryst. coord.)
>          1*          Ca  tau(   1) = (  0.8295000  0.1705000  0.2500000  )
>          2           Ca  tau(   2) = (  0.1705000  0.8295000  0.7500000  )
>          3*          S   tau(   3) = (  0.6727300  0.3272700  0.7500000  )
>          4           S   tau(   4) = (  0.3272700  0.6727300  0.2500000  )
>          5*          O   tau(   5) = (  0.8110100  0.3553700  0.5910300  )
>          6           O   tau(   6) = (  0.6446300  0.1889900  0.9089700  )
>          7           O   tau(   7) = (  0.1889900  0.6446300  0.4089700  )
>          8           O   tau(   8) = (  0.3553700  0.8110100  0.0910300  )
>          9*          O   tau(   9) = (  0.8180200  0.5819200  0.9129800  )
>         10           O   tau(  10) = (  0.4180800  0.1819800  0.5870200  )
>         11           O   tau(  11) = (  0.1819800  0.4180800  0.0870200  )
>         12           O   tau(  12) = (  0.5819200  0.8180200  0.4129800  )
>         13*          O   tau(  13) = (  0.7235100  0.8600300  0.9216900  )
>         14           O   tau(  14) = (  0.1399700  0.2764900  0.5783100  )
>         15           O   tau(  15) = (  0.2764900  0.1399700  0.0783100  )
>         16           O   tau(  16) = (  0.8600300  0.7235100  0.4216900  )
>         17*          H   tau(  17) = (  0.6550000  0.8290000  0.7660000  )
>         18           H   tau(  18) = (  0.1710000  0.3450000  0.7340000  )
>         19           H   tau(  19) = (  0.3450000  0.1710000  0.2340000  )
>         20           H   tau(  20) = (  0.8290000  0.6550000  0.2660000  )
>         21*          H   tau(  21) = (  0.7360000  0.7760000  0.9230000  )
>         22           H   tau(  22) = (  0.2240000  0.2640000  0.5770000  )
>         23           H   tau(  23) = (  0.2640000  0.2240000  0.0770000  )
>         24           H   tau(  24) = (  0.7760000  0.7360000  0.4230000  )
> ================================================================================
> 
> It is found that the coordinates of the 7 inequivalent atoms in the input
> and output file are different.  I traced the EQ source code, and found that
> this part of calculation is mainly performed by the following lines of codes
> 
> ================================================================================
> espresso-5.3.0/PW/src/wyckoff.f90:
> 
>      !make symmetries, convert coordinates, esclusion
>      DO i=1,not_eq
>         CALL find_equivalent_tau(space_group_number, inco, outco,i,unique)
>      END DO
> 
>      call ccord(outco,sym_n,not_eq,ibrav,unique)
>      do i=1,not_eq
>        call zerone(outco,sym_n,not_eq,i)
>      end do
>      call esclusion(outco,sym_n,msym_n,not_eq)
> ================================================================================
> 
> For the simulation I am running, I have ibrav=-13, and the code does the
> following conversion on the x- and y-coordinates of atoms using the
> SUBROUTINE ccord in wyckoff.f90.
> 
> ================================================================================
> espresso-5.3.0/PW/src/wyckoff.f90:
> 
>       SUBROUTINE ccord(outco,sym_n,not_eq,ibrav,unique)
> 
>       CASE (-13) !Centrato B unique MONOCLINO
>       DO k=1,not_eq
>          DO i=1,sym_n
>             tmpx=outco(1,i,k)
>             tmpy=outco(2,i,k)
> 
>             outco(1,i,k)=tmpx-tmpy
>             outco(2,i,k)=tmpy+tmpx
>          END DO
>       END DO
> ================================================================================
> 
> 
> In espresso-5.3.0/PW/src/wyckoff.f90, the inequivalent atoms are expanded by four
> steps: (1) find_equivalent_tau, (2) ccord, (3) zerone, and (4) esclusion.
> 
> I can understand the reasons of using steps (1), (3) and (4), but not step (2).
> 
> Can some one please kindly explain the functions of SUBROUTINE ccord?
> 

With crystal_sg the coordinates of the inequivalent atoms are in crystal
coordinates of the conventional cell, while QE uses crystal coordinates
of the centered cell. ccord make the coordinate transformation between
the two basis.

HTH,

Andrea



> 
> Sincerely,
> Tsung-Lung Li
> 
> 
> 
> 
> Tsung-Lung Li, Ph. D.
> Professor
> Department of Applied Physics
> National Chia-Yi University
> 300 Hsueh-Fu Road, Chiayi 60004, Taiwan
> Phone: 886-5-2717904.  FAX: 886-5-2717909.
> E-mail:quantum at mail.ncyu.edu.tw    
> URL:http://web.ncyu.edu.tw/~quantum
> 
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://pwscf.org/mailman/listinfo/pw_forum

-- 
Andrea Dal Corso                    Tel. 0039-040-3787428
SISSA, Via Bonomea 265              Fax. 0039-040-3787249
I-34136 Trieste (Italy)             e-mail: dalcorso at sissa.it




More information about the users mailing list