- Timestamp:
- Mar 23, 2021 2:02:01 PM (2 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIindex.py
r4810 r4862 114 114 A[2] *= R 115 115 A[3] = A[4] = A[5] = 0. 116 elif Bravais in [13,14,15 ]: #monoclinic116 elif Bravais in [13,14,15,16]: #monoclinic 117 117 A[0] *= R 118 118 A[1] *= R … … 151 151 c = abc[2] 152 152 alp = bet = gam = 90 153 elif Bravais in [13,14,15 ]: #monoclinic - C,P - a<c convention153 elif Bravais in [13,14,15,16]: #monoclinic - C,P - a<c convention 154 154 ac = [ranaxis(dmin,dmax),ranaxis(dmin,dmax)] 155 155 if Bravais in [13,14]: … … 426 426 elif ibrav in [7,8,9,10,11,12]: 427 427 return [values[0],values[1],values[2],0,0,0] 428 elif ibrav in [13,14,15 ]:428 elif ibrav in [13,14,15,16]: 429 429 return [values[0],values[1],values[2],0,values[3],0] 430 430 else: … … 439 439 elif ibrav in [7,8,9,10,11,12]: 440 440 return [A[0],A[1],A[2]] 441 elif ibrav in [13,14,15 ]:441 elif ibrav in [13,14,15,16]: 442 442 return [A[0],A[1],A[2],A[4]] 443 443 else: … … 449 449 elif ibrav in [7,8,9,10,11,12]: 450 450 Nskip = 3 451 elif ibrav in [13,14,15 ]:451 elif ibrav in [13,14,15,16]: 452 452 Nskip = 4 453 453 else: … … 481 481 elif ibrav in [7,8,9,10,11,12]: 482 482 derv = [H[0]*H[0],H[1]*H[1],H[2]*H[2]] 483 elif ibrav in [13,14,15 ]:483 elif ibrav in [13,14,15,16]: 484 484 derv = [H[0]*H[0],H[1]*H[1],H[2]*H[2],H[0]*H[2]] 485 485 else: … … 513 513 elif ibrav in [7,8,9,10,11,12]: 514 514 derv = [H[0]*H[0],H[1]*H[1],H[2]*H[2]] 515 elif ibrav in [13,14,15 ]:515 elif ibrav in [13,14,15,16]: 516 516 derv = [H[0]*H[0],H[1]*H[1],H[2]*H[2],H[0]*H[2]] 517 517 else: … … 560 560 elif ibrav in [7,8,9,10,11,12]: 561 561 derv = [HM[0]*HM[0],HM[1]*HM[1],HM[2]*HM[2]] 562 elif ibrav in [13,14,15 ]:562 elif ibrav in [13,14,15,16]: 563 563 derv = [HM[0]*HM[0],HM[1]*HM[1],HM[2]*HM[2],HM[0]*HM[2]] 564 564 else: … … 612 612 elif ibrav in [7,8,9,10,11,12]: 613 613 derv = [H[0]*H[0],H[1]*H[1],H[2]*H[2]] 614 elif ibrav in [13,14,15 ]:614 elif ibrav in [13,14,15,16]: 615 615 derv = [H[0]*H[0],H[1]*H[1],H[2]*H[2],H[0]*H[2]] 616 616 else: … … 656 656 elif ibrav in [7,8,9,10,11,12]: 657 657 derv = [HM[0]*HM[0],HM[1]*HM[1],HM[2]*HM[2]] 658 elif ibrav in [13,14,15 ]:658 elif ibrav in [13,14,15,16]: 659 659 derv = [HM[0]*HM[0],HM[1]*HM[1],HM[2]*HM[2],HM[0]*HM[2]] 660 660 else: … … 838 838 # A = 0 for random cell, volume normalized to V1; 839 839 # returns number of generated hkls, M20, X20 & A for best found 840 mHKL = [3,3,3, 5,5, 5,5, 7,7,7,7,7,7, 9,9,9, 10]840 mHKL = [3,3,3, 5,5, 5,5, 7,7,7,7,7,7, 9,9,9,9, 10] 841 841 dmin = getDmin(peaks)-0.05 842 842 amin = 2.5 … … 880 880 peaks = IndexPeaks(peaks,HKL)[1] 881 881 Asave.append([calc_M20(peaks,HKL,ifX20),Aref[:]]) 882 elif ibrav == 13: #C-centered monoclinic883 Abeg = swapMonoA(Abeg[:])884 Lhkl,M20,X20,Aref = refinePeaks(peaks,ibrav,Abeg,ifX20)885 HKL = G2lat.GenHBravais(dmin,ibrav,Aref)886 peaks = IndexPeaks(peaks,HKL)[1]887 Asave.append([calc_M20(peaks,HKL,ifX20),Aref[:]])882 # elif ibrav == 15: #C-centered monoclinic 883 # Abeg = swapMonoA(Abeg[:]) 884 # Lhkl,M20,X20,Aref = refinePeaks(peaks,ibrav,Abeg,ifX20) 885 # HKL = G2lat.GenHBravais(dmin,ibrav,Aref) 886 # peaks = IndexPeaks(peaks,HKL)[1] 887 # Asave.append([calc_M20(peaks,HKL,ifX20),Aref[:]]) 888 888 else: 889 889 break … … 901 901 a,b,c,alp,bet,gam = G2lat.A2cell(A) 902 902 G,g = G2lat.A2Gmat(A) 903 if ibrav in [13]: 903 if ibrav in [13,]: #I-monoclinic 904 pass 905 # u = [-1,0,0] 906 # v = [1,0,1] 907 # cnew = math.sqrt(np.dot(np.dot(v,g),v)) 908 # if cnew < c: 909 # cang = np.dot(np.dot(u,g),v)/(a*cnew) 910 # beta = acosd(-abs(cang)) 911 # if beta < 90.: beta = 180.-beta 912 # A = G2lat.cell2A([a,b,cnew,90,beta,90]) 913 elif ibrav in [14,]: #A-monoclinic - OK? 904 914 u = [0,0,-1] 905 915 v = [1,0,2] … … 908 918 cang = np.dot(np.dot(u,g),v)/(anew*c) 909 919 beta = acosd(-abs(cang)) 920 if beta < 90.: beta = 180.-beta 910 921 A = G2lat.cell2A([anew,b,c,90,beta,90]) 911 el se:922 elif ibrav in [15,]: #C-monoclinic - OK? 912 923 u = [-1,0,0] 913 924 v = [1,0,1] … … 916 927 cang = np.dot(np.dot(u,g),v)/(a*cnew) 917 928 beta = acosd(-abs(cang)) 929 if beta < 90.: beta = 180.-beta 918 930 A = G2lat.cell2A([a,b,cnew,90,beta,90]) 919 931 return A … … 930 942 'Tetragonal-I','Tetragonal-P','Orthorhombic-F','Orthorhombic-I','Orthorhombic-A', 931 943 'Orthorhombic-B','Orthorhombic-C', 932 'Orthorhombic-P','Monoclinic-I','Monoclinic- C','Monoclinic-P','Triclinic']944 'Orthorhombic-P','Monoclinic-I','Monoclinic-A','Monoclinic-C','Monoclinic-P','Triclinic'] 933 945 tries = ['1st','2nd','3rd','4th','5th','6th','7th','8th','9th','10th'] 934 N1s = [1,1,1, 5,5, 5,5, 50,50,50,50,50,50, 100,100,100, 200]935 N2s = [1,1,1, 2,2, 2,2, 2,2,2,2,2,2, 2,2,2, 4]936 Nm = [1,1,1, 1,1, 1,1, 1,1,1,1,1,1, 2,2,2, 4]946 N1s = [1,1,1, 5,5, 5,5, 50,50,50,50,50,50, 100,100,100,100, 200] 947 N2s = [1,1,1, 2,2, 2,2, 2,2,2,2,2,2, 2,2,2,2, 4] 948 Nm = [1,1,1, 1,1, 1,1, 1,1,1,1,1,1, 2,2,2,2, 4] 937 949 notUse = 0 938 950 for peak in peaks: … … 992 1004 bestM20 = max(bestM20,M20) 993 1005 A = halfCell(ibrav,A[:],peaks) 994 if ibrav in [1 4,]:1006 if ibrav in [13,14,15]: 995 1007 A = monoCellReduce(ibrav,A[:]) 996 1008 HKL = G2lat.GenHBravais(dmin,ibrav,A) … … 1019 1031 if ibrav < 13: 1020 1032 V1 *= 1.1 1021 elif ibrav in range(13,1 7):1033 elif ibrav in range(13,18): 1022 1034 V1 *= 1.025 1023 1035 if not GoOn: -
trunk/GSASIIlattice.py
r4826 r4862 868 868 ''' convert d-spacing to powder pattern position (2-theta or TOF, musec) 869 869 ''' 870 if 'T' in Inst['Type'][0] or 'PKS' in Inst['Type'][0]:870 if 'T' in Inst['Type'][0]: 871 871 pos = Inst['difC'][1]*dsp+Inst['Zero'][1]+Inst['difA'][1]*dsp**2+Inst.get('difB',[0,0,False])[1]/dsp 872 872 else: #'C' or 'B' … … 1185 1185 * 12 P orthorhombic 1186 1186 * 13 I monoclinic 1187 * 14 C monoclinic 1188 * 15 P monoclinic 1189 * 16 P triclinic 1187 = 14 A monoclinic 1188 * 15 C monoclinic 1189 * 16 P monoclinic 1190 * 17 P triclinic 1190 1191 1191 1192 :param A: reciprocal metric tensor elements as [G11,G22,G33,2*G12,2*G13,2*G23] … … 1203 1204 cctbx_args['sg_type'], cctbx_args['uctbx_unit_cell'], cctbx_args['miller_index_generator']) 1204 1205 1205 if Bravais in [9, ]:1206 if Bravais in [9,14]: 1206 1207 Cent = 'A' 1207 1208 elif Bravais in [10,]: 1208 1209 Cent = 'B' 1209 elif Bravais in [11,1 4]:1210 elif Bravais in [11,15]: 1210 1211 Cent = 'C' 1211 1212 elif Bravais in [1,5,8,13]: … … 1220 1221 dminsq = 1./(dmin**2) 1221 1222 HKL = [] 1222 if Bravais == 1 6: #triclinic1223 if Bravais == 17: #triclinic 1223 1224 for l in range(-Hmax[2],Hmax[2]+1): 1224 1225 for k in range(-Hmax[1],Hmax[1]+1): … … 1231 1232 if 0 < rdsq <= dminsq: 1232 1233 HKL.append([h,k,l,rdsq2d(rdsq,6),-1]) 1233 elif Bravais in [13,14,15 ]: #monoclinic - b unique1234 elif Bravais in [13,14,15,16]: #monoclinic - b unique 1234 1235 Hmax = SwapIndx(2,Hmax) 1235 1236 for h in range(Hmax[0]+1): -
trunk/GSASIIpwdGUI.py
r4848 r4862 3240 3240 elif controls[5] in ['Fmmm','Immm','Ammm','Bmmm','Cmmm','Pmmm']: 3241 3241 controls[9] = controls[10] = controls[11] = 90. 3242 elif controls[5] in [' C2/m','P2/m','I2/m']:3242 elif controls[5] in ['A2/m','C2/m','P2/m','I2/m']: 3243 3243 controls[9] = controls[11] = 90. # b unique 3244 3244 controls[12] = G2lat.calc_V(G2lat.cell2A(controls[6:12])) … … 3385 3385 Obj.SetValue(controls[6+ObjId]) 3386 3386 controls[9] = controls[10] = controls[11] = 90.0 3387 elif controls[5] in ['I2/m',' C2/m','P2/m']:3387 elif controls[5] in ['I2/m','A2/m','C2/m','P2/m']: 3388 3388 controls[9] = controls[11] = 90.0 3389 3389 if ObjId != 3: … … 3644 3644 elif ibrav in ['P4/mmm','Fmmm','Immm','Ammm','Bmmm','Cmmm','Pmmm']: 3645 3645 print (" %s%10.6f %s%10.6f %s%10.6f %s%12.3f" % ('a =',cell[0],'b =',cell[1],'c =',cell[2],' volume =',Vol)) 3646 elif ibrav in [' C2/m','P2/m']:3646 elif ibrav in ['I2/m','A2/m','C2/m','P2/m']: 3647 3647 print (" %s%10.6f %s%10.6f %s%10.6f %s%8.3f %s%12.3f" % ('a =',cell[0],'b =',cell[1],'c =',cell[2],'beta =',cell[4],' volume =',Vol)) 3648 3648 else: … … 4350 4350 SPGlist = G2spc.spglist 4351 4351 bravaisSymb = ['Fm3m','Im3m','Pm3m','R3-H','P6/mmm','I4/mmm','P4/mmm', 4352 'Fmmm','Immm','Ammm','Bmmm','Cmmm','Pmmm','I2/m',' C2/m','P2/m','P1','C1']4352 'Fmmm','Immm','Ammm','Bmmm','Cmmm','Pmmm','I2/m','A2/m','C2/m','P2/m','P1','C1'] 4353 4353 spaceGroups = ['F m 3 m','I m 3 m','P m 3 m','R 3 m','P 6/m m m','I 4/m m m', 4354 'P 4/m m m','F m m m','I m m m','A m m m','B m m m','C m m m','P m m m','I 2/m',' C 2/m','P 2/m','P -1','C -1']4354 'P 4/m m m','F m m m','I m m m','A m m m','B m m m','C m m m','P m m m','I 2/m','A 2/m','C 2/m','P 2/m','P -1','C -1'] 4355 4355 Inst = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters'))[0] 4356 4356 Limits = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,G2frame.PatternId, 'Limits'))[1] … … 4384 4384 if len(controls) < 15: 4385 4385 controls.append(list(range(1,len(magcells)+1))) 4386 while len(bravais) < 1 7:4386 while len(bravais) < 18: 4387 4387 bravais += [0,] 4388 4388 SGData = ssopt.get('SGData',G2spc.SpcGroup(controls[13])[1]) … … 4391 4391 'Tetragonal-I','Tetragonal-P','Orthorhombic-F','Orthorhombic-I','Orthorhombic-A', 4392 4392 'Orthorhombic-B','Orthorhombic-C','Orthorhombic-P', 4393 'Monoclinic-I','Monoclinic- C','Monoclinic-P','Triclinic','Triclinic',]4393 'Monoclinic-I','Monoclinic-A','Monoclinic-C','Monoclinic-P','Triclinic','Triclinic',] 4394 4394 cellGUIlist = [[[0,1,2],4,zip([" Unit cell: a = "," Vol = "],[(10,5),"%.3f"],[True,False],[0,0])], 4395 4395 [[3,4,5,6],6,zip([" Unit cell: a = "," c = "," Vol = "],[(10,5),(10,5),"%.3f"],[True,True,False],[0,2,0])], 4396 4396 [[7,8,9,10,11,12],8,zip([" Unit cell: a = "," b = "," c = "," Vol = "],[(10,5),(10,5),(10,5),"%.3f"], 4397 4397 [True,True,True,False],[0,1,2,0])], 4398 [[13,14,15 ],10,zip([" Unit cell: a = "," b = "," c = "," beta = "," Vol = "],4398 [[13,14,15,16],10,zip([" Unit cell: a = "," b = "," c = "," beta = "," Vol = "], 4399 4399 [(10,5),(10,5),(10,5),(10,3),"%.3f"],[True,True,True,True,False],[0,1,2,4,0])], 4400 [[1 6,17],8,zip([" Unit cell: a = "," b = "," c = "," alpha = "," beta = "," gamma = "," Vol = "],4400 [[17,18],8,zip([" Unit cell: a = "," b = "," c = "," alpha = "," beta = "," gamma = "," Vol = "], 4401 4401 [(10,5),(10,5),(10,5),(10,3),(10,3),(10,3),"%.3f"], 4402 4402 [True,True,True,True,True,True,False],[0,1,2,3,4,5,0])]] -
trunk/GSASIIstrIO.py
r4861 r4862 797 797 and histograms (specified as str values) 798 798 ''' 799 800 import distutils.file_util as dfu 801 799 802 800 GPXphase = os.path.splitext(GPXfile)[0]+'.seqPhase' 803 801 fp = open(GPXphase,'rb') … … 1385 1383 elif symHold is not None: #variable is held due to symmetry 1386 1384 symHold.append(name) 1387 for k in equivs: 1388 equiv = equivs[k] 1389 if len(equiv) > 1: 1390 name = equiv[0][0] 1391 coef = equiv[0][1] 1392 for eqv in equiv[1:]: 1385 for equiv in equivs: 1386 if len(equivs[equiv]) > 1: 1387 name = equivs[equiv][0][0] 1388 coef = equivs[equiv][0][1] 1389 for eqv in equivs[equiv][1:]: 1393 1390 eqv[1] /= coef 1394 1391 G2mv.StoreEquivalence(name,(eqv,))
Note: See TracChangeset
for help on using the changeset viewer.