Changeset 2126
- Timestamp:
- Jan 19, 2016 9:17:05 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIimgGUI.py
r2125 r2126 1107 1107 1108 1108 mainSizer.Add((5,5),0) 1109 DataSizer = wx.FlexGridSizer(0,2,5, 5)1109 DataSizer = wx.FlexGridSizer(0,2,5,0) 1110 1110 DataSizer.Add(CalibCoeffSizer(),0) 1111 1111 DataSizer.Add(IntegrateSizer(),0) -
trunk/GSASIIlattice.py
r2120 r2126 51 51 RSQPI = 1./np.sqrt(np.pi) 52 52 R2pisq = 1./(2.*np.pi**2) 53 nxs = np.newaxis 53 54 54 55 def sec2HMS(sec): … … 923 924 HKLs.append([h,k,l,dH,d]) 924 925 return HKLs 926 927 def LaueUnique(Laue,HKLF): 928 ''' Impose Laue symmetry on hkl 929 :param Laue: str Laue symbol 930 centrosymmetric Laue groups 931 ['-1','2/m','2/m(c)','2/m(a)','mmm','-3','3/m','4/m','4/mmm','6/m','6/mmm','m3','m3m'] 932 noncentrosymmetric Laue groups 933 ['1','2','2(a)','2(c)','m','m(a)','m(c)','222','mm2','m2m','2mm','3','32','3m', 934 '4','-4','422','-42m','42m','6','-6','622','-62m','62m','23','432','-432'] 935 :param HKLF: np.array([[h,k,l,...]]) reflection set to be converted 936 937 :return: HKLF new reflection array with imposed Laue symmetry 938 ''' 939 HKLFT = HKLF.T 940 mat4 = np.array([[0,1,0],[-1,0,0],[0,0,1]]) 941 mat3 = np.array([[0,-1,0],[1,-1,0],[0,0,1]]) 942 #triclinic 943 if Laue == '1': 944 pass 945 elif Laue == '-1': 946 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 947 #monoclinic - all 3 settings 948 elif Laue == '2(a)': 949 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 950 elif Laue == '2': 951 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 952 elif Laue == '2(c)': 953 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 954 elif Laue == 'm(a)': 955 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 956 elif Laue == 'm': 957 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 958 elif Laue == 'm(c)': 959 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 960 elif Laue == '2/m(a)': 961 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 962 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 963 elif Laue == '2/m': 964 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 965 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 966 elif Laue == '2/m(c)': 967 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 968 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 969 #orthorhombic - 3 settings 970 elif Laue == '222': 971 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 972 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 973 elif Laue == '2mm': 974 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 975 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 976 elif Laue == 'm2m': 977 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 978 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 979 elif Laue == 'mm2': 980 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 981 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 982 elif Laue == 'mmm': 983 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 984 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 985 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 986 #trigonal 987 elif Laue == '-3': 988 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 989 HKLFT[:3] = np.where(HKLFT[0]<HKLF[1],np.inner(HKLFT[:3]*mat3[:,:,nxs]),HKLFT[:3]) 990 elif Laue == '3/m': 991 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 992 HKLFT[:3] = np.where(HKLFT[0]<HKLF[1],np.inner(HKLFT[:3]*mat3[:,:,nxs]),HKLFT[:3]) 993 elif Laue == '3': 994 HKLFT[:3] = np.where(HKLFT[0]<HKLF[1],np.inner(HKLFT[:3]*mat3[:,:,nxs]),HKLFT[:3]) 995 elif Laue == '32': 996 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 997 HKLFT[:3] = np.where(HKLFT[0]<HKLF[1],np.inner(HKLFT[:3]*mat3[:,:,nxs]),HKLFT[:3]) 998 HKLFT[:3] = np.where(HKLFT[0]<HKLF[1],np.inner(HKLFT[:3]*mat3[:,:,nxs]),HKLFT[:3]) 999 elif Laue == '3m': 1000 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 1001 HKLFT[:3] = np.where(HKLFT[0]<HKLF[1],np.inner(HKLFT[:3]*mat3[:,:,nxs]),HKLFT[:3]) 1002 #tetragonal 1003 elif Laue == '4/m': 1004 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1005 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 1006 HKLFT[:3] = np.where(HKLFT[1]<HKLF[0],np.inner(HKLFT[:3]*mat4[:,:,nxs]),HKLFT[:3]) 1007 elif Laue == '4/mmm': 1008 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1009 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1010 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1011 HKLFT[:3] = np.where(HKLFT[1]<HKLF[0],np.inner(HKLFT[:3]*mat4[:,:,nxs]),HKLFT[:3]) 1012 elif Laue == '4': 1013 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1014 HKLFT[:3] = np.where(HKLFT[1]<HKLF[0],np.inner(HKLFT[:3]*mat4[:,:,nxs]),HKLFT[:3]) 1015 elif Laue == '-4': 1016 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1017 HKLFT[:3] = np.where(HKLFT[1]<HKLF[0],np.inner(HKLFT[:3]*mat4[:,:,nxs]),HKLFT[:3]) 1018 elif Laue == '422': 1019 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1020 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 1021 HKLFT[:3] = np.where(HKLFT[1]<HKLF[0],np.inner(HKLFT[:3]*mat4[:,:,nxs]),HKLFT[:3]) 1022 elif Laue == '-42m': 1023 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1024 elif Laue == '42m': 1025 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1026 #hexagonal 1027 elif Laue == '6/m': 1028 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1029 elif Laue == '6/mmm': 1030 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1031 elif Laue == '6': 1032 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1033 elif Laue == '-6': 1034 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1035 elif Laue == '622': 1036 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1037 elif Laue == '-62m': 1038 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1039 elif Laue == '62m': 1040 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1041 #cubic 1042 elif Laue == 'm3': 1043 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1044 elif Laue == 'm3m': 1045 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1046 elif Laue == '23': 1047 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1048 elif Laue == '432': 1049 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1050 elif Laue == '-432': 1051 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1052 return HKLFT.T 1053 925 1054 926 1055 #Spherical harmonics routines -
trunk/GSASIIstrMain.py
r2091 r2126 586 586 if len(SGtable) > 1: 587 587 for i,item in enumerate(SGtable[::2]): 588 line = ' %s %s'%(item.ljust(30),SGtable[2*i+1].ljust(30)) 588 if 2*i+1 == len(SGtable): 589 line = ' %s'%(item.ljust(30)) 590 else: 591 line = ' %s %s'%(item.ljust(30),SGtable[2*i+1].ljust(30)) 589 592 MyPrint(line) 590 593 else:
Note: See TracChangeset
for help on using the changeset viewer.