- Timestamp:
- Feb 2, 2021 11:01:51 AM (2 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIindex.py
r4791 r4792 787 787 return len(HKL),M20,X20,Aref,Vref,Z 788 788 789 def refinePeaks(peaks,ibrav,A,ifX20=True, sg_type=None):789 def refinePeaks(peaks,ibrav,A,ifX20=True,cctbx_args=None): 790 790 'needs a doc string' 791 791 dmin = getDmin(peaks) … … 795 795 OK = False 796 796 tries = 0 797 sg_type = G2lat.make_sgtype(ibrav) 798 HKL = G2lat.GenHBravais(dmin,ibrav,A,sg_type) 797 HKL = G2lat.GenHBravais(dmin,ibrav,A,cctbx_args) 799 798 while len(HKL) > 2 and IndexPeaks(peaks,HKL)[0]: 800 799 Pwr = pwr - (tries % 2) … … 811 810 continue 812 811 try: 813 HKL = G2lat.GenHBravais(dmin,ibrav,A, sg_type)812 HKL = G2lat.GenHBravais(dmin,ibrav,A,cctbx_args) 814 813 except FloatingPointError: 815 814 A = oldA -
trunk/GSASIIlattice.py
r4791 r4792 1114 1114 raise ValueError('non-standard Bravais lattice center=%s, cell=%s' % (center,system)) 1115 1115 1116 def GenHBravais(dmin,Bravais,A, sg_type=None): 1116 def _GenHBravais_cctbx(dmin, Bravais, A, sg_type, uctbx_unit_cell, miller_index_generator): 1117 '''Alternate form of :func:`GenHBravais` that uses CCTBX internals 1118 ''' 1119 g_inv = np.array([[A[0], A[3]/2, A[4]/2], 1120 [A[3]/2, A[1], A[5]/2], 1121 [A[4]/2, A[5]/2, A[2]]]) 1122 g = np.linalg.inv(g_inv) 1123 g_elems = (g[0][0], g[1][1], g[2][2], g[0][1], g[0][2], g[1][2]) 1124 try: 1125 uc = uctbx_unit_cell(metrical_matrix=g_elems) 1126 except ValueError: # this function sometimes receives an A matrix that gives 1127 # numbers <0 in the diagonal elems of g. Not sure why. 1128 return [] 1129 #if sg_type is None: 1130 # sg_type = make_sgtype(Bravais) 1131 mig = miller_index_generator(uc, sg_type, 0, dmin) 1132 result = [] 1133 for h,k,l in mig: 1134 d = uc.d((h,k,l)) 1135 result.append([h, k, l, d, -1]) 1136 result.sort(key=lambda l: l[3], reverse=True) 1137 return result 1138 1139 def GenHBravais(dmin, Bravais, A, cctbx_args=None): 1117 1140 """Generate the positionally unique powder diffraction reflections 1118 1141 … … 1139 1162 1140 1163 :param A: reciprocal metric tensor elements as [G11,G22,G33,2*G12,2*G13,2*G23] 1141 :param sg_type: alternate specification for Bravais lattice used in CCTBX 1142 :return: HKL unique d list of [h,k,l,d,-1] sorted with largest d first 1164 :param dict cctbx_args: items defined in CCTBX: 1165 1166 * 'sg_type': value from cctbx.sgtbx.space_group_type(symmorphic_sgs[ibrav]) 1167 * 'uctbx_unit_cell': pointer to :meth:`cctbx.uctbx.unit_cell` 1168 * 'miller_index_generator': pointer to :meth:`cctbx.miller.index_generator` 1169 1170 :returns: HKL unique d list of [h,k,l,d,-1] sorted with largest d first 1143 1171 1144 1172 """ 1173 if cctbx_args: 1174 return _GenHBravais_cctbx(dmin, Bravais, A, 1175 cctbx_args['sg_type'], cctbx_args['uctbx_unit_cell'], cctbx_args['miller_index_generator']) 1176 1145 1177 if Bravais in [9,]: 1146 1178 Cent = 'A'
Note: See TracChangeset
for help on using the changeset viewer.