mirror of https://gitlab.com/QEF/q-e.git
PBC used in "cubefile" format (Axel)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1345 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
bfd54b0db8
commit
17c3a948ad
2
Doc/BUGS
2
Doc/BUGS
|
@ -1,4 +1,6 @@
|
|||
|
||||
* cell minimization with steepest descent was not working (CP/FPMD)
|
||||
|
||||
* various Alpha compilation problems
|
||||
|
||||
Fixed in version 2.1:
|
||||
|
|
|
@ -1,4 +1,29 @@
|
|||
27 Sep 2004 suport for alpha-linux with compaq compiler (Axel)
|
||||
27 Sep 2004 support for alpha-linux with compaq compiler
|
||||
PBC used in "cubefile" format (Axel)
|
||||
Bug in Modules/cell_base.f90 (dt2 not defined) fixed
|
||||
Bug in CPV/wf.f90 (iss2 not defined) temporarily fixed
|
||||
shmem_include only used if __SHMEM macro is defined
|
||||
More mergings between CPV and FPMD (init, grids setup)
|
||||
(CC)
|
||||
References to para module replaced (everywhere in PW ) by
|
||||
references to mp_global, pfft, pffts.
|
||||
Old parallel variables me and mypool have been replaced by
|
||||
me_pool ( = ( me - 1 ) ) and my_pool_id ( = ( mypool - 1) ),
|
||||
defined in mp_global.
|
||||
The old combination ( me == 1 .AND. mypool == 1 ) used in the I/O
|
||||
should be replaced by the logical variable ionode.
|
||||
All parallel variables (communicators included) are properly defined
|
||||
in the serial case too, so that "#ifdef __PARA" is not needed.
|
||||
(C.S.)
|
||||
Fourier String Method Dynamics improved: the number of fourier
|
||||
modes used to represent the path are gradually included (starting
|
||||
from one up to num_of_images-2), so that the overall number of scf
|
||||
loops needed to reach convergence is considerably reduced (of a
|
||||
factor of 2-3). (C.S.)
|
||||
matdyn.f90, q2r.f90 modified to work in a parallel environment
|
||||
(only the first cpu does the job). (C.S.)
|
||||
Cleanup in phonon: variable max_time replaced by max_seconds.
|
||||
Doc updated (C.S.)
|
||||
|
||||
24 Sep 2004 atomic_number : patch from Axel, fixes the case of
|
||||
atomic symobols with one letter
|
||||
|
|
|
@ -402,7 +402,7 @@ program chdens
|
|||
elseif (output_format == 6 ) then
|
||||
!
|
||||
! GAUSSIAN CUBE FORMAT
|
||||
call write_cubefile (alat, at, nat, tau, atm, ityp, rhor, &
|
||||
call write_cubefile (alat, at, bg, nat, tau, atm, ityp, rhor, &
|
||||
nrx1, nrx2, nrx3, ounit)
|
||||
|
||||
else
|
||||
|
|
25
PP/cube.f90
25
PP/cube.f90
|
@ -1,7 +1,7 @@
|
|||
!
|
||||
! This file holds gaussian cube generation subroutines.
|
||||
! Adapted by Axel Kohlmeyer from xsf.f90.
|
||||
! last update by Axel Kohlmeyer on Sep 19, 2004.
|
||||
! last update by Axel Kohlmeyer on Sep 27, 2004.
|
||||
!
|
||||
! This file is distributed under the terms of the
|
||||
! GNU General Public License. See the file `License'
|
||||
|
@ -11,21 +11,24 @@
|
|||
|
||||
! -------------------------------------------------------------------
|
||||
! this routine writes a gaussian 98 like formatted cubefile.
|
||||
! plain dumping of the density for now. no ups, no extras.
|
||||
! atoms outside the supercell are wrapped back according to PBC.
|
||||
! plain dumping of the data. no re-gridding or transformation to an
|
||||
! orthorhombic box (needed for most .cube aware programs :-/).
|
||||
! -------------------------------------------------------------------
|
||||
subroutine write_cubefile (alat, at, nat, tau, atm, ityp, &
|
||||
& rho, nrx1, nrx2, nrx3, ounit )
|
||||
subroutine write_cubefile ( alat, at, bg, nat, tau, atm, ityp, rho, &
|
||||
nrx1, nrx2, nrx3, ounit )
|
||||
|
||||
USE kinds, only : DP
|
||||
|
||||
implicit none
|
||||
integer :: nat, ityp (nat), ounit, nrx1, nrx2, nrx3
|
||||
integer :: nat, ityp(nat), ounit, nrx1, nrx2, nrx3
|
||||
character(len=3) :: atm(*)
|
||||
real(kind=DP) :: alat, tau (3, nat), at (3, 3), rho(nrx1,nrx2,nrx3)
|
||||
real(kind=DP) :: alat, tau(3,nat), at(3,3), bg(3,3), rho(nrx1,nrx2,nrx3)
|
||||
|
||||
! --
|
||||
integer :: i, nt, i1, i2, i3, at_num
|
||||
integer, external:: atomic_number
|
||||
real(kind=DP) :: at_chrg
|
||||
real(kind=DP) :: at_chrg, tpos(3), inpos(3)
|
||||
|
||||
!C WRITE A FORMATTED 'DENSITY-STYLE' CUBEFILE VERY SIMILAR
|
||||
!C TO THOSE CREATED BY THE GAUSSIAN PROGRAM OR THE CUBEGEN UTILITY.
|
||||
|
@ -58,8 +61,12 @@ subroutine write_cubefile (alat, at, nat, tau, atm, ityp, &
|
|||
at_chrg= float(at_num)
|
||||
! at_chrg could be alternatively set to valence charge
|
||||
! positions are in cartesian coordinates and a.u.
|
||||
write(ounit,'(I5,5F12.6)') at_num, at_chrg, &
|
||||
tau(1,i)*alat, tau(2,i)*alat, tau(3,i)*alat
|
||||
!
|
||||
! wrap coordinates back into cell.
|
||||
tpos = MATMUL( TRANSPOSE(bg), tau(:,i) )
|
||||
tpos = tpos - NINT(tpos - 0.5)
|
||||
inpos = alat * MATMUL( at, tpos )
|
||||
write(ounit,'(I5,5F12.6)') at_num, at_chrg, inpos
|
||||
enddo
|
||||
|
||||
do i1=1,nrx1
|
||||
|
|
Loading…
Reference in New Issue