ibrav=13 (one face centered monoclinic) vectors changed again.

The rectangular base (a,b) is centered while the monoclinic angle<>90 is
  between b and c. Problem pointed out by Young-Su Lee @ mit .

  SdG


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3430 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
degironc 2006-10-04 11:29:53 +00:00
parent c29cecb4fe
commit 5835a2c225
2 changed files with 11 additions and 10 deletions

View File

@ -1165,7 +1165,7 @@ COLLECTIVE_VARS
12 Monoclinic P celldm(2)=b/a,celldm(3)=c/a,
celldm(4)=cos(ab)
13 Monoclinic base-centered celldm(2)=b/a,celldm(3)=c/a,
celldm(4)=cos(ab)
celldm(4)=cos(bc)
14 Triclinic celldm(2)= b/a,
celldm(3)= c/a,
celldm(4)= cos(bc),
@ -1235,10 +1235,10 @@ COLLECTIVE_VARS
base centered monoclinic
=============================
a1 = (a/2*sin(gamma), a/2*cos(gamma)-b/2, 0),
a2 = (a/2*sin(gamma), a/2*cos(gamma)+b/2, 0),
a3 = (0, 0, c)
where gamma is the angle between axis a and b
a1 = ( a/2, b/2, 0 ),
a2 = ( -a/2, b/2, 0 ),
a3 = ( 0, c*cos(alpha), c*sin(alpha) )
where alpha is the angle between axis b and c
triclinic
=============================

View File

@ -243,11 +243,12 @@ subroutine latgen(ibrav,celldm,a1,a2,a3,omega)
if (abs(celldm(4))>=1.d0) call errore ('latgen', 'wrong celldm(4)', ibrav)
!
sen = sqrt( 1.d0 - celldm(4) ** 2 )
a1(1) = 0.5 * celldm(1) * sen
a1(2) = 0.5 * celldm(1) * (celldm(4) - celldm(2))
a2(1) = 0.5 * celldm(1) * sen
a2(2) = 0.5 * celldm(1) * (celldm(4) + celldm(2))
a3(3) = celldm(1) * celldm(3)
a1(1) = 0.5 * celldm(1)
a1(2) = a1(1) * celldm(2)
a2(1) =-a1(1)
a2(2) = a1(2)
a3(2) = celldm(1) * celldm(3) * celldm(4)
a3(3) = celldm(1) * celldm(3) * sen
!
else if (ibrav == 14) then
!