- Timestamp:
- Mar 15, 2021 2:51:46 PM (2 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIstrIO.py
r4852 r4853 1569 1569 names = [pfx+'AU11:'+str(i),pfx+'AU22:'+str(i),pfx+'AU33:'+str(i), 1570 1570 pfx+'AU12:'+str(i),pfx+'AU13:'+str(i),pfx+'AU23:'+str(i)] 1571 equivs = [[],[],[],[],[],[]]1571 equivs = {1:[],2:[],3:[],4:[],5:[],6:[]} 1572 1572 for j in range(6): 1573 1573 if uId[j] > 0: 1574 1574 phaseVary.append(names[j]) 1575 equivs[uId[j] -1].append([names[j],uCoef[j]])1575 equivs[uId[j]].append([names[j],uCoef[j]]) 1576 1576 for equiv in equivs: 1577 if len(equiv ) > 1:1578 name = equiv [0][0]1579 coef = equiv [0][1]1580 for eqv in equiv [1:]:1577 if len(equivs[equiv]) > 1: 1578 name = equivs[equiv][0][0] 1579 coef = equivs[equiv][0][1] 1580 for eqv in equivs[equiv][1:]: 1581 1581 eqv[1] /= coef 1582 1582 G2mv.StoreEquivalence(name,(eqv,)) -
trunk/GSASIIstrMath.py
r4852 r4853 749 749 ast = np.sqrt(np.diag(G)) 750 750 Mast = twopisq*np.multiply.outer(ast,ast) 751 SGMT = np.array([ops[0].T for ops in SGData['SGOps']]) # ###ops[0].T751 SGMT = np.array([ops[0].T for ops in SGData['SGOps']]) # must be ops[0].T 752 752 SGT = np.array([ops[1] for ops in SGData['SGOps']]) 753 753 FFtables = calcControls['FFtables'] … … 822 822 Tiso = np.repeat(np.where(biso<1.,np.exp(biso),1.0),len(SGT)*len(TwinLaw),axis=1).T 823 823 HbH = -np.sum(Uniq.T*np.swapaxes(np.inner(bij,Uniq),2,-1),axis=1) 824 # HbH = -np.sum(np.inner(Uniq,bij)*Uniq[:,:,nxs,:],axis=-1).T #doesn't work, but should! 824 825 Tuij = np.where(HbH<1.,np.exp(HbH),1.0).T 825 826 Tcorr = np.reshape(Tiso,Tuij.shape)*Tuij*Mdata*Fdata/len(SGMT) … … 875 876 ast = np.sqrt(np.diag(G)) 876 877 Mast = twopisq*np.multiply.outer(ast,ast) 877 SGMT = np.array([ops[0].T for ops in SGData['SGOps']]) # ### ops[0].T?878 SGMT = np.array([ops[0].T for ops in SGData['SGOps']]) # must be ops[0].T 878 879 SGT = np.array([ops[1] for ops in SGData['SGOps']]) 879 880 FFtables = calcControls['FFtables'] … … 933 934 biso = -SQfactor*Uisodata[:,nxs] 934 935 Tiso = np.repeat(np.where(biso<1.,np.exp(biso),1.0),len(SGT),axis=1).T 935 HbH = -np.sum(Uniq.T*np.swapaxes(np.inner(bij,Uniq),2,-1),axis=1) 936 Tuij = np.where(HbH<1.,np.exp(HbH),1.0).T 936 HbH = -np.sum(Uniq.T*np.swapaxes(np.inner(bij,Uniq),2,-1),axis=1) #Natm,Nops,Nref 937 # HbH = -np.sum(np.inner(Uniq,bij)*Uniq[:,:,nxs,:],axis=-1).T #doesn't work, but should! 938 Tuij = np.where(HbH<1.,np.exp(HbH),1.0).T #Nref,Nops,Natm 937 939 Tcorr = np.reshape(Tiso,Tuij.shape)*Tuij*Mdata*Fdata/len(SGMT) 938 940 Hij = np.array([Mast*np.multiply.outer(U,U) for U in np.reshape(Uniq,(-1,3))]) #Nref*Nops,3,3 … … 1004 1006 dFdvDict[pfx+'AU22:'+str(i)] = dFdua.T[1][i] 1005 1007 dFdvDict[pfx+'AU33:'+str(i)] = dFdua.T[2][i] 1006 dFdvDict[pfx+'AU12:'+str(i)] = 2.*dFdua.T[3][i]1007 dFdvDict[pfx+'AU13:'+str(i)] = 2.*dFdua.T[4][i]1008 dFdvDict[pfx+'AU23:'+str(i)] = 2.*dFdua.T[5][i]1008 dFdvDict[pfx+'AU12:'+str(i)] = dFdua.T[3][i] 1009 dFdvDict[pfx+'AU13:'+str(i)] = dFdua.T[4][i] 1010 dFdvDict[pfx+'AU23:'+str(i)] = dFdua.T[5][i] 1009 1011 dFdvDict[phfx+'Flack'] = 4.*dFdfl.T 1010 1012 dFdvDict[phfx+'BabA'] = dFdbab.T[0] … … 1310 1312 dFdvDict[pfx+'AU22:'+str(i)] = dFdua.T[1][i] 1311 1313 dFdvDict[pfx+'AU33:'+str(i)] = dFdua.T[2][i] 1312 dFdvDict[pfx+'AU12:'+str(i)] = 2.*dFdua.T[3][i]1313 dFdvDict[pfx+'AU13:'+str(i)] = 2.*dFdua.T[4][i]1314 dFdvDict[pfx+'AU23:'+str(i)] = 2.*dFdua.T[5][i]1314 dFdvDict[pfx+'AU12:'+str(i)] = dFdua.T[3][i] 1315 dFdvDict[pfx+'AU13:'+str(i)] = dFdua.T[4][i] 1316 dFdvDict[pfx+'AU23:'+str(i)] = dFdua.T[5][i] 1315 1317 return dFdvDict 1316 1318 … … 1468 1470 dFdvDict[pfx+'AU22:'+str(i)] = np.sum(dFdua.T[1][i]*TwinFr[:,nxs],axis=0) 1469 1471 dFdvDict[pfx+'AU33:'+str(i)] = np.sum(dFdua.T[2][i]*TwinFr[:,nxs],axis=0) 1470 dFdvDict[pfx+'AU12:'+str(i)] = 2.*np.sum(dFdua.T[3][i]*TwinFr[:,nxs],axis=0)1471 dFdvDict[pfx+'AU13:'+str(i)] = 2.*np.sum(dFdua.T[4][i]*TwinFr[:,nxs],axis=0)1472 dFdvDict[pfx+'AU23:'+str(i)] = 2.*np.sum(dFdua.T[5][i]*TwinFr[:,nxs],axis=0)1472 dFdvDict[pfx+'AU12:'+str(i)] = np.sum(dFdua.T[3][i]*TwinFr[:,nxs],axis=0) 1473 dFdvDict[pfx+'AU13:'+str(i)] = np.sum(dFdua.T[4][i]*TwinFr[:,nxs],axis=0) 1474 dFdvDict[pfx+'AU23:'+str(i)] = np.sum(dFdua.T[5][i]*TwinFr[:,nxs],axis=0) 1473 1475 dFdvDict[phfx+'BabA'] = dFdbab.T[0] 1474 1476 dFdvDict[phfx+'BabU'] = dFdbab.T[1] … … 1988 1990 dFdvDict[pfx+'AU22:'+str(i)] = dFdua.T[1][i] 1989 1991 dFdvDict[pfx+'AU33:'+str(i)] = dFdua.T[2][i] 1990 dFdvDict[pfx+'AU12:'+str(i)] = 2.*dFdua.T[3][i]1991 dFdvDict[pfx+'AU13:'+str(i)] = 2.*dFdua.T[4][i]1992 dFdvDict[pfx+'AU23:'+str(i)] = 2.*dFdua.T[5][i]1992 dFdvDict[pfx+'AU12:'+str(i)] = dFdua.T[3][i] 1993 dFdvDict[pfx+'AU13:'+str(i)] = dFdua.T[4][i] 1994 dFdvDict[pfx+'AU23:'+str(i)] = dFdua.T[5][i] 1993 1995 for j in range(FSSdata.shape[1]): #loop over waves Fzero & Fwid? 1994 1996 dFdvDict[pfx+'Fsin:'+str(i)+':'+str(j)] = dFdGf.T[0][j][i] … … 2014 2016 dFdvDict[pfx+'U22cos:'+str(i)+':'+str(j)] = dFdGu.T[7][j][i] 2015 2017 dFdvDict[pfx+'U33cos:'+str(i)+':'+str(j)] = dFdGu.T[8][j][i] 2016 dFdvDict[pfx+'U12cos:'+str(i)+':'+str(j)] = 2.*dFdGu.T[9][j][i]2017 dFdvDict[pfx+'U13cos:'+str(i)+':'+str(j)] = 2.*dFdGu.T[10][j][i]2018 dFdvDict[pfx+'U23cos:'+str(i)+':'+str(j)] = 2.*dFdGu.T[11][j][i]2018 dFdvDict[pfx+'U12cos:'+str(i)+':'+str(j)] = dFdGu.T[9][j][i] 2019 dFdvDict[pfx+'U13cos:'+str(i)+':'+str(j)] = dFdGu.T[10][j][i] 2020 dFdvDict[pfx+'U23cos:'+str(i)+':'+str(j)] = dFdGu.T[11][j][i] 2019 2021 2020 2022 dFdvDict[phfx+'Flack'] = 4.*dFdfl.T … … 2222 2224 dFdvDict[pfx+'AU22:'+str(i)] = dFdua.T[1][i] 2223 2225 dFdvDict[pfx+'AU33:'+str(i)] = dFdua.T[2][i] 2224 dFdvDict[pfx+'AU12:'+str(i)] = 2.*dFdua.T[3][i]2225 dFdvDict[pfx+'AU13:'+str(i)] = 2.*dFdua.T[4][i]2226 dFdvDict[pfx+'AU23:'+str(i)] = 2.*dFdua.T[5][i]2226 dFdvDict[pfx+'AU12:'+str(i)] = dFdua.T[3][i] 2227 dFdvDict[pfx+'AU13:'+str(i)] = dFdua.T[4][i] 2228 dFdvDict[pfx+'AU23:'+str(i)] = dFdua.T[5][i] 2227 2229 for j in range(FSSdata.shape[1]): #loop over waves Fzero & Fwid? 2228 2230 dFdvDict[pfx+'Fsin:'+str(i)+':'+str(j)] = dFdGf.T[0][j][i]
Note: See TracChangeset
for help on using the changeset viewer.