[Pw_forum] pw2wan.x available for use???

Andrea Ferretti ferretti.andrea at unimore.it
Thu Nov 10 14:26:45 CET 2005



On Wed, 9 Nov 2005, Liping YU wrote:

> Hi, can someone tell me if pw2wan.x is now available for use now?
> Thanks!
> Liping
> 
> Hello Mr. Paolo,
> So, should we assume that currently pw2wan.x cannot be used?
> Do you know the time-frame in which it will be usable?
> Thanks,
> Ravi
> 
> Paolo Giannozzi <giannozz at nest.sns.it <mailto:giannozz at nest.sns.it>> 
> Sent by: pw_forum-admin at pwscf.org <mailto:pw_forum-admin at pwscf.org>
> 08/09/2004 04:12 PM
> Please respond to
> pw_forum
> 
> 
> On Monday 09 August 2004 18:02, Ravinder Abrol wrote:
> 
> >/ Is there any documentation on using pw2wan.x code provided in PWSCF
> />/ package for post-processing to get the localized wannier functions?
> /
> no, pw2wan.x is just an interface with the soon-to-be-released code 
> that finds maximally localized Wannier functions.
> 
> P.

I would just add that pw2wan.x is an interface to the already released 
WanT 1.0 code for the calculation of transport using wannier functions,
while the soon-to-be-released 2.0 version uses a different datafile format  
This format is based on the IOTK library by Giovanni Bussi 
which is already used also in the CVS version of espresso (isn't it, 
paolo ?). A patch (for versions 2.1.x) using this library to export (part 
of) espresso data is available in the PWscf download page...

back to the case of pw2wan.x :
I did not use is recently but I think it should work in espresso 2.1.x, a 
pseudo documentation of the binary file format produced by the code was 
written to interface with WanT and is in the attachment

regards
Andrea  

--
Andrea Ferretti
INFM National Research Center on nanoStructures and bioSystems at Surfaces 
(S3)
Dipartimento di Fisica, Universita' di Modena e Reggio Emilia
Via Campi 213/A I-41100 Modena, Italy
Tel:     +39 059 2055283
Fax:     +39 059 374794
E-mail:  ferretti.andrea at unimore.it
URL:     http://www.nanoscience.unimo.it
-------------- next part --------------
This README illustrate the layout of the binary input file 'launch.dat' 
which is used to pass information from ab-initio code and 
wannier transport code. 
For each variable in the file the FORTRAN type and its meaning are given
below

REAL*8 :: avec(3,3)
REAL*8 :: alat
INTEGER :: ntype
INTEGER :: natom(:)
CHARACTER(LEN=3) :: nameat(:)
REAL*8 :: rat(:,:,:)
REAL*8 :: emax
INTEGER :: nbandi
INTEGER :: nk(3)
REAL*8 :: s(3)
INTEGER :: ngm0
INTEGER :: ig1(:), ig2(:), ig3(:)
INTEGER :: nkp_tot
INTEGER :: mxddim, mxdbnd, nkpts
INTEGER :: isort_k(:,:)
REAL*8 :: ei_k(:,:)
INTEGER :: mtxd_k(:)
INTEGER :: neig_k(:) 
INTEGER :: nr1, nr2, nr3
INTEGER :: ngm, ngwx
LOGICAL :: twrite
INTEGER :: file_version
CHARACTER(LEN=20) :: section_name
INTEGER :: ngw_ , nbnd_ , ik_ , nk_ , kunit_ , ispin_ , nspin_
REAL*8 :: scal_
INTEGER :: igwx_
LOGICAL :: t0_
COMPLEX*16 :: wtmp(:)
COMPLEX*16 :: zvec_k(:,:,:)
INTEGER :: idum_

OPEN ( UNIT=54, FILE='launch.dat', STATUS='OLD', FORM='UNFORMATTED' )

READ( 54 ) alat                  ! units of the Crystal basis vector
READ( 54 ) ( avec(i,1),i=1,3 )   ! basis vectors a = avec( :, 1 ) * alat
READ( 54 ) ( avec(i,2),i=1,3 )   ! basis vectors b = avec( :, 2 ) * alat
READ( 54 ) ( avec(i,3),i=1,3 )   ! basis vectors c = avec( :, 3 ) * alat
READ( 54 ) ntype                 ! number of different atomic species
DO nt = 1, ntype
  !   natom(nt)  = number of atoms for the specie nt
  !   nameat(nt) = label of the atomic specie nt
  READ ( 54 ) natom(nt), nameat( nt )  
  !   rat( :, j, nt ) = lattice coordinetes of the j-th atom of specie nt
  READ ( 54 ) ( ( rat( i, j, nt ), i = 1, 3 ), j = 1, natom( nt ) )
END DO
!   emax   =  energy cutoff (emax) in Rydberg unit 
!   nbandi =  number of electronic bands
READ(54) emax, nbandi   
!   nk(1), nk(2), nk(3) are the number of k-points
!   s(1), s(2), s(3) is the origin of the k-points grid
!   ngm0   =  number of reciprocal space vectors
READ(54) (nk(i), i = 1, 3 ), ( s(i), i = 1, 3), ngm0
!   ig1(:), ig2(:), ig3(:)   =  generators of the reciprocal space vectors
!                               G(i) = ig1(i) * b1  +  ig2(i) * b2  +  ig3(i) * b3
!                               where b1, b2, b3 are the base vectors of the reciprocal space
READ(54) ( ig1(ig), ig2(ig), ig3(ig), ig = 1, ngm0 )
!   
!   nkp_tot = nk(1) * nk(2) * nk(3)   total number of k points
!   mxddim  = maximum number of g-vectors component for wave functions
!   mxdbnd  = number of wave functions for each k - points
!   nkpts   = number of k-points where wave functions are defined
READ(54) mxddim, mxdbnd, nkpts
!   isort_k( i, nkp ) = for each k point this vector map the i-th wave function components 
!                       into the G vector generators arrays ig1, ig2, ig3
DO nkp = 1, nkp_tot
   READ(54) ( isort_k( i, nkp ), i = 1, mxddim )
END DO
!   ei_k(i,nkp)       = eigenvalues (in eV) of the i-th wave function relative to the nkp-th 
!                       k -point
READ(54) ( (ei_k(i,nkp), i=1,mxdbnd ), nkp=1,nkp_tot )
!   mtxd_k            = for each k-point is the number of plane waves (wave function componenets
!                       consistent with the cut-off
READ(54) ( mtxd_k(nkp), nkp=1,nkp_tot )
!   neig_k            = for each k-point is the number of plane waves 
READ(54) ( neig_k(nkp), nkp=1,nkp_tot )
!   nr1, nr2, nr3     = dimension of the real and reciprocal space grid for FFT transforms
!   ngm               = number of G - vectors in reciprocal space
!   ngwx              = maximum number of wave functions reciprocal space components 
!                       consistent with the cut-off
READ(54) nr1, nr2, nr3, ngm, ngwx
!
!  HERE read wave functions components
!
DO nkp = 1, nkp_tot
  !   twrite       =  TRUE if wave functions informations are present in the file
  !   file_version =  INTEGER not relevant for wannier transport code
  !   section_name =  STRING not relevant for wannier transport code
  READ(54) twrite, file_version, section_name
  !   ngw_         =  number of wave functions components for the nkp-th k points
  !   nbnd_        =  number of wave functions for the nkp-th k points
  !   ik_          =  index of this k point
  !   nk_          =  total number of k points
  !   kunit_       =  INTEGER not relevant for wannier transport code
  !   ispin_       =  index of the spin component
  !   nspin_       =  number of the spin components
  !   scal_        =  scaling factor (if any) for this wave functions 
  READ(54) ngw_, nbnd_, ik_, nk_, kunit_, ispin_, nspin_, scal_
  !   igwx_        =  
  READ(54) igwx_   =  number of components to be read from file
  !   t0_          =  LOGICAL variable not relevant for wannier transport code
  READ(54) t0_
  !   wtmp         =  wave functions reciprocal space components, should be in 
  !                   the same order as the G space generators ig1, ig2, ig3
  !   zvec_k       =  wave function components consistent with the cut-off 
  !                   and sorted with array isort_k
  DO i = 1, nbnd_
    READ(54) ( wtmp(ig), ig=1,igwx_ )
    DO ig = 1, mtxd_k( nkp )
      zvec_k( ig, i, nkp ) = wtmp( isort_k( ig, nkp ) )
    END DO
  END DO
  !   t0_          =  LOGICAL variable not relevant for wannier transport code
  READ(54) t0_
  DO i = 1, nbnd_
    !   idum_      =  INTEGER variable not relevant for wannier transport code
    READ(54) idum_
  END DO
END DO

CLOSE(54)



More information about the Pw_forum mailing list