Changeset 2318
- Timestamp:
- Jun 13, 2016 9:11:36 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIgrid.py
r2317 r2318 1468 1468 help='Add a new bond distance pseudo-variable') 1469 1469 self.SequentialPvars.Append( 1470 id=wxADDSEQANGLE, kind=wx.ITEM_NORMAL,text=' CalcAngle',1470 id=wxADDSEQANGLE, kind=wx.ITEM_NORMAL,text='Add Angle', 1471 1471 help='Add a new bond angle pseudo-variable') 1472 1472 self.SequentialPvars.Append( … … 2777 2777 Phase = Phases[pName] 2778 2778 General = Phase['General'] 2779 Cell = General['Cell'][1:7] 2780 Amat = G2lat.cell2AB(Cell)[0] 2779 cx,ct = General['AtomPtrs'][:2] 2780 pId = Phase['pId'] 2781 SGData = General['SGData'] 2782 sB = Tatom.find('(')+1 2783 symNo = 0 2784 if sB: 2785 sF = Tatom.find(')') 2786 symNo = int(Tatom[sB:sF]) 2787 cellNo = [0,0,0] 2788 cB = Tatom.find('[') 2789 if cB>0: 2790 cF = Tatom.find(']')+1 2791 cellNo = eval(Tatom[cB:cF]) 2792 Atoms = Phase['Atoms'] 2793 aNames = [atom[ct-1] for atom in Atoms] 2794 oId = aNames.index(Oatom) 2795 tId = aNames.index(Tatom.split(' +')[0]) 2781 2796 # create an expression object 2782 2797 obj = G2obj.ExpressionObj() 2783 2798 obj.expression = 'Dist(%s,%s)'%(Oatom,Tatom.split(' d=')[0].replace(' ','')) 2784 obj.distance_ stuff = {'Amat':Amat,}2785 obj.distance_atoms = [ 1,2]2799 obj.distance_dict = {'pId':pId,'SGData':SGData,'symNo':symNo,'cellNo':cellNo} 2800 obj.distance_atoms = [oId,tId] 2786 2801 else: 2787 2802 dlg.Destroy() -
trunk/GSASIImath.py
r2314 r2318 1505 1505 ################################################################################ 1506 1506 1507 def CalcDist(distance_dict, distance_atoms, parmDict): 1508 if not len(parmDict): 1509 return 0. 1510 pId = distance_dict['pId'] 1511 pfx = '%d::'%(pId) 1512 A = [parmDict['%s::A%d'%(pId,i)] for i in range(6)] 1513 Amat = G2lat.cell2AB(G2lat.A2cell(A))[0] 1514 Oxyz = [parmDict['%s::A%s:%d'%(pId,x,distance_atoms[0])] for x in ['x','y','z']] 1515 Txyz = [parmDict['%s::A%s:%d'%(pId,x,distance_atoms[1])] for x in ['x','y','z']] 1516 inv = 1 1517 symNo = distance_dict['symNo'] 1518 if symNo < 0: 1519 inv = -1 1520 symNo *= -1 1521 cen = symNo/100 1522 op = symNo%100-1 1523 M,T = distance_dict['SGData']['SGOps'][op] 1524 M *= inv 1525 T *= inv 1526 D = T+distance_dict['SGData']['SGCen'][cen] 1527 D += distance_dict['cellNo'] 1528 Txyz = np.inner(M,Txyz)+D 1529 dist = np.sqrt(np.sum(np.inner(Amat,(Txyz-Oxyz))**2)) 1530 # GSASIIpath.IPyBreak() 1531 return dist 1532 1507 1533 def getSyXYZ(XYZ,ops,SGData): 1508 1534 '''default doc string -
trunk/GSASIIobj.py
r2316 r2318 2043 2043 if self.eObj.expression.startswith('Dist'): 2044 2044 dist = 0 2045 #dist = CalcDist(self.eObj.distance_stuff, self.eObj.distance_atoms, self.parmDict) 2045 # GSASIIpath.IPyBreak() 2046 dist = G2mth.CalcDist(self.eObj.distance_dict, self.eObj.distance_atoms, self.parmDict) 2046 2047 return dist 2047 2048 if self.compiledExpr is None:
Note: See TracChangeset
for help on using the changeset viewer.