Changeset 1954 for trunk/GSASIIspc.py
 Timestamp:
 Aug 10, 2015 3:48:11 PM (8 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/GSASIIspc.py
r1953 r1954 1110 1110 Cell = [] 1111 1111 X = np.array(XYZ) 1112 celli = np.zeros(3)1113 1112 for ic,cen in enumerate(SGData['SGCen']): 1114 1113 C = np.array(cen) … … 1130 1129 else: 1131 1130 newX = XT 1132 cell += (celli+cellj)1131 cell += cellj 1133 1132 if All: 1134 1133 if np.allclose(newX,X,atol=0.0002): … … 1430 1429 return CSuinel[indx[1]] 1431 1430 1432 #def GetSSfxuinel(waveType,nH,XYZ,SGData,SSGData,debug=False):1433 #1434 # def fracCrenel(tau,Toff,Twid):1435 # Tau = (tauToff)%1.1436 # A = np.where(Tau<Twid,1.,0.)1437 # return A1438 #1439 # def fracFourier(tau,nH,fsin,fcos):1440 # SA = np.sin(2.*nH*np.pi*tau)1441 # CB = np.cos(2.*nH*np.pi*tau)1442 # A = SA[np.newaxis,np.newaxis,:]*fsin[:,:,np.newaxis]1443 # B = CB[np.newaxis,np.newaxis,:]*fcos[:,:,np.newaxis]1444 # return A+B1445 #1446 # def posFourier(tau,nH,psin,pcos):1447 # SA = np.sin(2*nH*np.pi*tau)1448 # CB = np.cos(2*nH*np.pi*tau)1449 # A = SA[np.newaxis,np.newaxis,:]*psin[:,:,np.newaxis]1450 # B = CB[np.newaxis,np.newaxis,:]*pcos[:,:,np.newaxis]1451 # return A+B1452 #1453 # def posSawtooth(tau,Toff,slopes):1454 # Tau = (tauToff[:,np.newaxis])%1.1455 # A = slopes[:,:,np.newaxis]*Tau1456 # return A1457 #1458 # def posZigZag(tau,Toff,slopes):1459 # Tau = (tauToff[:,np.newaxis])%1.1460 # A = np.where(Tau <= 0.5,slopes[:,:,np.newaxis]*Tau,slopes[:,:,np.newaxis]*(1.Tau))1461 # return A1462 #1463 # print 'super space group: ',SSGData['SSpGrp']1464 # CSI = {'Sfrac':[[[1,0],[2,0]],[[1.,0.],[1.,0.]]],1465 # 'Spos':[[[1,0,0],[2,0,0],[3,0,0], [4,0,0],[5,0,0],[6,0,0]],1466 # [[1.,0.,0.],[1.,0.,0.],[1.,0.,0.], [1.,0.,0.],[1.,0.,0.],[1.,0.,0.]]], #sin & cos1467 # 'Sadp':[[[1,0,0],[2,0,0],[3,0,0],[4,0,0],[5,0,0],[6,0,0],1468 # [7,0,0],[8,0,0],[9,0,0],[10,0,0],[11,0,0],[12,0,0]],1469 # [[1.,0.,0.],[1.,0.,0.],[1.,0.,0.], [1.,0.,0.],[1.,0.,0.],[1.,0.,0.],1470 # [1.,0.,0.],[1.,0.,0.],[1.,0.,0.], [1.,0.,0.],[1.,0.,0.],[1.,0.,0.]]],1471 # 'Smag':[[[1,0,0],[2,0,0],[3,0,0], [4,0,0],[5,0,0],[6,0,0]],1472 # [[1.,0.,0.],[1.,0.,0.],[1.,0.,0.], [1.,0.,0.],[1.,0.,0.],[1.,0.,0.]]],}1473 # xyz = np.array(XYZ)%1.1474 # xyzt = np.array(XYZ+[0,])%1.1475 # SGOps = copy.deepcopy(SGData['SGOps'])1476 # siteSym = SytSym(XYZ,SGData)[0].strip()1477 # print 'siteSym: ',siteSym1478 # if siteSym == '1': #"1" site symmetry1479 # if debug:1480 # return CSI,None,None,None,None1481 # else:1482 # return CSI1483 # elif siteSym == '1': #"1" site symmetry1484 # CSI['Sfrac'][0] = [[1,0],[0,0]]1485 # CSI['Spos'][0] = [[1,0,0],[2,0,0],[3,0,0], [0,0,0],[0,0,0],[0,0,0]]1486 # CSI['Sadp'][0] = [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],1487 # [1,0,0],[2,0,0],[3,0,0],[4,0,0],[5,0,0],[6,0,0]]1488 # if debug:1489 # return CSI,None,None,None,None1490 # else:1491 # return CSI1492 # SSGOps = copy.deepcopy(SSGData['SSGOps'])1493 # #expand ops to include inversions if any1494 # if SGData['SGInv']:1495 # for op,sop in zip(SGData['SGOps'],SSGData['SSGOps']):1496 # SGOps.append([op[0],op[1]%1.])1497 # SSGOps.append([sop[0],sop[1]%1.])1498 # #build set of sym ops around special poasition1499 # SSop = []1500 # Sop = []1501 # Sdtau = []1502 # for iop,Op in enumerate(SGOps):1503 # nxyz = (np.inner(Op[0],xyz)+Op[1])%1.1504 # if np.allclose(xyz,nxyz,1.e4) and iop and MT2text(Op).replace(' ','') != 'X,Y,Z':1505 # SSop.append(SSGOps[iop])1506 # Sop.append(SGOps[iop])1507 # ssopinv = nl.inv(SSGOps[iop][0])1508 # mst = ssopinv[3][:3]1509 # epsinv = ssopinv[3][3]1510 # Sdtau.append(np.sum(mst*(XYZSGOps[iop][1])epsinv*SSGOps[iop][1][3]))1511 # SdIndx = np.argsort(np.array(Sdtau)) # just to do in sensible order1512 # OpText = [MT2text(s).replace(' ','') for s in Sop] #debug?1513 # SSOpText = [SSMT2text(ss).replace(' ','') for ss in SSop] #debug?1514 # print 'special pos super operators: ',SSOpText1515 # #setup displacement arrays1516 # tau = np.linspace(0,1,49,True)1517 # delt2 = np.eye(2)*0.0011518 # delt4 = np.eye(4)*0.0011519 # delt6 = np.eye(6)*0.0011520 # delt12 = np.eye(12)*0.00011521 # #make modulation arrays  one parameter at a time1522 # #site fractions1523 # CSI['Sfrac'] = [np.zeros((2),dtype='i'),np.ones(2)]1524 # if 'Crenel' in waveType:1525 # dF = fracCrenel(tau,delt2[:1],delt2[1:]).squeeze()1526 # else:1527 # dF = fracFourier(tau,nH,delt2[:1],delt2[1:]).squeeze()1528 # dFT = np.zeros_like(dF)1529 # #positions1530 # if 'Fourier' in waveType:1531 # dX = posFourier(tau,nH,delt6[:3],delt6[3:]) #+np.array(XYZ)[:,np.newaxis,np.newaxis]1532 # #3x6x12 modulated position array (X,Spos,tau)& force positive1533 # CSI['Spos'] = [np.zeros((6,3),dtype='i'),np.zeros((6,3))]1534 # elif waveType == 'Sawtooth':1535 # CSI['Spos'] = [np.array([[1,],[2,],[3,],[4,]]),np.array([[1.0,],[1.0,],[1.0,],[1.0,]])]1536 # elif waveType == 'ZigZag':1537 # CSI['Spos'] = [np.array([[1,],[2,],[3,],[4,]]),np.array([[1.0,],[1.0,],[1.0,],[1.0,]])]1538 # #anisotropic thermal motion1539 # dU = posFourier(tau,nH,delt12[:6],delt12[6:]) #Uij modulations  6x12x12 array1540 # CSI['Sadp'] = [np.zeros((12,3),dtype='i'),np.zeros((12,3))]1541 #1542 # FSC = np.ones(2,dtype='i')1543 # VFSC = np.ones(2)1544 # XSC = np.ones(6,dtype='i')1545 # USC = np.ones(12,dtype='i')1546 # dFTP = []1547 # dXTP = []1548 # dUTP = []1549 # for i in SdIndx:1550 # sop = Sop[i]1551 # ssop = SSop[i]1552 # fsc = np.ones(2,dtype='i')1553 # xsc = np.ones(6,dtype='i')1554 # ssopinv = nl.inv(ssop[0])1555 # mst = ssopinv[3][:3]1556 # epsinv = ssopinv[3][3]1557 # sdet = nl.det(sop[0])1558 # ssdet = nl.det(ssop[0])1559 # dtau = mst*(XYZsop[1])epsinv*ssop[1][3]1560 # dT = 1.01561 # if np.any(dtau%.5):1562 # dT = np.tan(np.pi*np.sum(dtau%.5))1563 # tauT = np.inner(mst,XYZsop[1])+epsinv*(taussop[1][3])1564 # if waveType == 'Fourier':1565 # dXT = posFourier(np.sort(tauT),nH,delt6[:3],delt6[3:]) #+np.array(XYZ)[:,np.newaxis,np.newaxis]1566 # elif waveType == 'Sawtooth':1567 # dXT = posSawtooth(tauT,delt4[0],delt4[1:])+np.array(XYZ)[:,np.newaxis,np.newaxis]1568 # elif waveType == 'ZigZag':1569 # dXT = posZigZag(tauT,delt4[0],delt4[1:])+np.array(XYZ)[:,np.newaxis,np.newaxis]1570 # dXT = np.inner(sop[0],dXT.T)1571 # dXT = np.swapaxes(dXT,1,2)1572 # dXT[:,:3,:] *= ssdet1573 # dXTP.append(dXT)1574 # if waveType == 'Fourier':1575 # if np.any(dtau%.5) and ('1/2' in SSGData['modSymb'] or '1' in SSGData['modSymb']):1576 # CSI['Spos'] = [[[1,0,0],[2,0,0],[3,0,0], [1,0,0],[2,0,0],[3,0,0]],1577 # [[1.,0.,0.],[1.,0.,0.],[1.,0.,0.], [1.,0.,0.],[1.,0.,0.],[1.,0.,0.]]]1578 # if '(x)' in siteSym:1579 # CSI['Spos'][1][3:] = [1./dT,0.,0.],[dT,0.,0.],[dT,0.,0.]1580 # if 'm' in siteSym and len(SdIndx) == 1:1581 # CSI['Spos'][1][3:] = [dT,0.,0.],[1./dT,0.,0.],[1./dT,0.,0.]1582 # elif '(y)' in siteSym:1583 # CSI['Spos'][1][3:] = [dT,0.,0.],[1./dT,0.,0.],[dT,0.,0.]1584 # if 'm' in siteSym and len(SdIndx) == 1:1585 # CSI['Spos'][1][3:] = [1./dT,0.,0.],[dT,0.,0.],[1./dT,0.,0.]1586 # elif '(z)' in siteSym:1587 # CSI['Spos'][1][3:] = [dT,0.,0.],[dT,0.,0.],[1./dT,0.,0.]1588 # if 'm' in siteSym and len(SdIndx) == 1:1589 # CSI['Spos'][1][3:] = [1./dT,0.,0.],[1./dT,0.,0.],[dT,0.,0.]1590 # for i in range(3):1591 # if not XSC[i]:1592 # CSI['Spos'][0][i] = [0,0,0]1593 # CSI['Spos'][1][i] = [0.,0.,0.]1594 # CSI['Spos'][0][i+3] = [0,0,0]1595 # CSI['Spos'][1][i+3] = [0.,0.,0.]1596 # else:1597 # for i in range(3):1598 # if np.allclose(dX[i,i,:],dXT[i,i,:]*sdet):1599 # xsc[i] = 11600 # else:1601 # xsc[i] = 01602 # if np.allclose(dX[i,i+3,:],dXT[i,i+3,:]):1603 # xsc[i+3] = 11604 # else:1605 # xsc[i+3] = 01606 # XSC &= xsc1607 #1608 # fsc = np.ones(2,dtype='i')1609 # if 'Crenel' in waveType:1610 # dFT = fracCrenel(tauT,delt2[:1],delt2[1:]).squeeze()1611 # fsc = [1,1]1612 # else:1613 # dFT = fracFourier(tauT,nH,delt2[:1],delt2[1:]).squeeze()1614 # dFT = nl.det(sop[0])*dFT1615 # dFT = dFT[:,np.argsort(tauT)]1616 # dFT[0] *= ssdet1617 # dFT[1] *= sdet1618 # dFTP.append(dFT)1619 #1620 # if np.any(dtau%.5) and ('1/2' in SSGData['modSymb'] or '1' in SSGData['modSymb']):1621 # fsc = [1,1]1622 # CSI['Sfrac'] = [[[1,0],[1,0]],[[1.,0.],[1/dT,0.]]]1623 # for i in range(2):1624 # if not FSC[i]:1625 # CSI['Sfrac'][0][i] = [0,0]1626 # CSI['Sfrac'][1][i] = [0.,0.]1627 # else:1628 # for i in range(2):1629 # if np.allclose(dF[i,:],dFT[i,:],atol=1.e6):1630 # fsc[i] = 11631 # else:1632 # fsc[i] = 01633 # FSC &= fsc1634 #1635 # usc = np.ones(12,dtype='i')1636 # dUT = posFourier(tauT,nH,delt12[:6],delt12[6:]) #Uij modulations  6x12x49 array1637 # dUijT = np.rollaxis(np.rollaxis(np.array(Uij2U(dUT)),3),3) #convert dUT to 12x49x3x31638 # dUijT = np.rollaxis(np.inner(np.inner(sop[0],dUijT),sop[0].T),3)1639 # dUT = np.array(U2Uij(dUijT))1640 # dUT = dUT[:,:,np.argsort(tauT)]1641 # dUTP.append(dUT)1642 # if np.any(dtau%.5) and ('1/2' in SSGData['modSymb'] or '1' in SSGData['modSymb']):1643 # CSI['Sadp'] = [[[1,0,0],[2,0,0],[3,0,0],[4,0,0],[5,0,0],[6,0,0],1644 # [1,0,0],[2,0,0],[3,0,0],[4,0,0],[5,0,0],[6,0,0]],1645 # [[1.,0.,0.],[1.,0.,0.],[1.,0.,0.], [1.,0.,0.],[1.,0.,0.],[1.,0.,0.],1646 # [1./dT,0.,0.],[1./dT,0.,0.],[1./dT,0.,0.], [1.,0.,0.],[1.,0.,0.],[1.,0.,0.]]]1647 # if '(x)' in siteSym:1648 # CSI['Sadp'][1][9:] = [dT,0.,0.],[dT,0.,0.],[1./dT,0.,0.]1649 # elif '(y)' in siteSym:1650 # CSI['Sadp'][1][9:] = [dT,0.,0.],[1./dT,0.,0.],[dT,0.,0.]1651 # elif '(z)' in siteSym:1652 # CSI['Sadp'][1][9:] = [1./dT,0.,0.],[dT,0.,0.],[dT,0.,0.]1653 # for i in range(6):1654 # if not USC[i]:1655 # CSI['Sadp'][0][i] = [0,0,0]1656 # CSI['Sadp'][1][i] = [0.,0.,0.]1657 # CSI['Sadp'][0][i+6] = [0,0,0]1658 # CSI['Sadp'][1][i+6] = [0.,0.,0.]1659 # else:1660 #1661 # for i in range(6):1662 # if np.allclose(dU[i,i,:],dUT[i,i,:]*sdet):1663 # usc[i] = 11664 # else:1665 # usc[i] = 01666 # if np.allclose(dU[i,i+6,:],dUT[i,i+6,:]):1667 # usc[i+6] = 11668 # else:1669 # usc[i+6] = 01670 # if '4/m' in siteSym and np.any(dUT[0,1,:]):1671 # CSI['Sadp'][0][6:8] = [[12,0,0],[12,0,0]]1672 # if ssop[1][3]:1673 # CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]1674 # usc[9] = 11675 # else:1676 # CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]1677 # usc[9] = 01678 # elif '4' in siteSym and np.any(dUT[0,1,:]):1679 # CSI['Sadp'][0][6:8] = [[12,0,0],[12,0,0]]1680 # CSI['Sadp'][0][:2] = [[11,0,0],[11,0,0]]1681 # if ssop[1][3]:1682 # CSI['Sadp'][1][:2] = [[1.,0.,0.],[1.,0.,0.]]1683 # CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]1684 # usc[3] = 11685 # usc[9] = 11686 # else:1687 # CSI['Sadp'][1][:2] = [[1.,0.,0.],[1.,0.,0.]]1688 # CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]1689 # usc[3] = 01690 # usc[9] = 01691 # print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,usc1692 # USC &= usc1693 # print dtau1694 # print FSC1695 # print XSC1696 # print USC1697 # if not np.any(dtau%.5):1698 # n = 11699 # for i,U in enumerate(USC):1700 # if U:1701 # n += 11702 # CSI['Sadp'][0][i][0] = n+11703 # CSI['Sadp'][1][i][0] = 1.01704 # if waveType == 'Fourier':1705 # n = 11706 # for i,X in enumerate(XSC):1707 # if X:1708 # n += 11709 # CSI['Spos'][0][i][0] = n+11710 # CSI['Spos'][1][i][0] = 1.01711 # n = 11712 # for i,F in enumerate(FSC):1713 # if F:1714 # n += 11715 # CSI['Sfrac'][0][i] = n+11716 # CSI['Sfrac'][1][i] = 1.01717 # else:1718 # CSI['Sfrac'][0][i] = 01719 # CSI['Sfrac'][1][i] = 0.1720 # if debug:1721 # return CSI,[tau,tauT],[dF,dFTP],[dX,dXTP],[dU,dUTP]1722 # else:1723 # return CSI1724 #1725 1431 def GetSSfxuinel(waveType,nH,XYZ,SGData,SSGData,debug=False): 1726 1432 … … 1813 1519 fsc[i] = 0 1814 1520 FSC &= fsc 1815 print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,fsc1521 # print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,fsc 1816 1522 n = 1 1817 1523 for i,F in enumerate(FSC): … … 1864 1570 dXT[:,:3,:] *= (ssdet*sdet) # modify the sin component 1865 1571 dXTP.append(dXT) 1866 # print np.sum(dX**2,axis=1)*1e51867 # print np.sum(dXT**2,axis=1)*1e51868 1572 if waveType == 'Fourier': 1573 for i in range(3): 1574 if not np.allclose(dX[i,i,:],dXT[i,i,:]): 1575 xsc[i] = 0 1576 if not np.allclose(dX[i,i+3,:],dXT[i,i+3,:]): 1577 xsc[i+3] = 0 1869 1578 if np.any(dtau%.5) and ('1/2' in SSGData['modSymb'] or '1' in SSGData['modSymb']): 1870 1579 xsc[3:6] = 0 … … 1883 1592 if 'm' in siteSym and len(SdIndx) == 1: 1884 1593 CSI[1][3:] = [1./dT,0.,0.],[1./dT,0.,0.],[dT,0.,0.] 1885 elif '(xy)' in siteSym: 1886 CSI[0] = [[1,0,0],[1,0,0],[2,0,0], [1,0,0],[1,0,0],[2,0,0]] 1887 CSI[1][3:] = [[1./dT,0.,0.],[1./dT,0.,0.],[dT,0.,0.]] 1888 elif '(xy)' in siteSym or '(+0)' in siteSym: 1889 mul = 1 1890 if '(xy)' in siteSym: 1891 mul = 1 1892 if np.allclose(dX[0,0,:],dXT[1,0,:]*mul): 1893 CSI[0][3:5] = [[11,0,0],[11,0,0]] 1894 CSI[1][3:5] = [[1.,0,0],[mul,0,0]] 1895 xsc[3:5] = 0 1896 if np.allclose(dX[0,3,:],dXT[0,4,:]*mul): 1897 CSI[0][:2] = [[12,0,0],[12,0,0]] 1898 CSI[1][:2] = [[1.,0,0],[mul,0,0]] 1899 xsc[:2] = 0 1900 else: 1901 for i in range(3): 1902 if not np.allclose(dX[i,i,:],dXT[i,i,:]): 1903 xsc[i] = 0 1904 if not np.allclose(dX[i,i+3,:],dXT[i,i+3,:]): 1905 xsc[i+3] = 0 1906 XSC &= xsc 1907 print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,xsc 1594 if '4/mmm' in laue: 1595 if np.any(dtau%.5) and '1/2' in SSGData['modSymb']: 1596 if '(xy)' in siteSym: 1597 CSI[0] = [[1,0,0],[1,0,0],[2,0,0], [1,0,0],[1,0,0],[2,0,0]] 1598 CSI[1][3:] = [[1./dT,0.,0.],[1./dT,0.,0.],[dT,0.,0.]] 1599 if '(xy)' in siteSym or '(+0)' in siteSym: 1600 mul = 1 1601 if '(+0)' in siteSym: 1602 mul = 1 1603 if np.allclose(dX[0,0,:],dXT[1,0,:]): 1604 CSI[0][3:5] = [[11,0,0],[11,0,0]] 1605 CSI[1][3:5] = [[1.,0,0],[mul,0,0]] 1606 xsc[3:5] = 0 1607 if np.allclose(dX[0,3,:],dXT[0,4,:]): 1608 CSI[0][:2] = [[12,0,0],[12,0,0]] 1609 CSI[1][:2] = [[1.,0,0],[mul,0,0]] 1610 xsc[:2] = 0 1611 XSC &= xsc 1612 # print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,xsc 1908 1613 if waveType == 'Fourier': 1909 1614 n = 1 1910 print XSC1615 # print XSC 1911 1616 for i,X in enumerate(XSC): 1912 1617 if X: … … 1943 1648 dUT = np.array(U2Uij(dUijT)) #convert to 6x12x49 1944 1649 dUT = dUT[:,:,np.argsort(tauT)] 1650 dUT[:,:6,:] *=(ssdet*sdet) 1945 1651 dUTP.append(dUT) 1946 1652 if np.any(dtau%.5) and ('1/2' in SSGData['modSymb'] or '1' in SSGData['modSymb']): … … 1971 1677 else: 1972 1678 for i in range(6): 1973 if not np.allclose(dU[i,i,:],dUT[i,i,:] *sdet): #sin part1679 if not np.allclose(dU[i,i,:],dUT[i,i,:]): #sin part 1974 1680 usc[i] = 0 1975 1681 if not np.allclose(dU[i,i+6,:],dUT[i,i+6,:]): #cos part … … 2010 1716 usc[6:8] = 0 2011 1717 2012 print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,usc1718 # print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,usc 2013 1719 USC &= usc 2014 print USC1720 # print USC 2015 1721 if not np.any(dtau%.5): 2016 1722 n = 1 … … 2023 1729 return CSI,dU,dUTP 2024 1730 2025 def DoUiso(): 2026 print 'Uiso' 2027 delt4 = np.eye(4)*0.001 2028 2029 print 'super space group: ',SSGData['SSpGrp'] 1731 # print 'super space group: ',SSGData['SSpGrp'] 2030 1732 CSI = {'Sfrac':[[[1,0],[2,0]],[[1.,0.],[1.,0.]]], 2031 1733 'Spos':[[[1,0,0],[2,0,0],[3,0,0], [4,0,0],[5,0,0],[6,0,0]], … … 2040 1742 xyzt = np.array(XYZ+[0,])%1. 2041 1743 SGOps = copy.deepcopy(SGData['SGOps']) 1744 laue = SGData['SGLaue'] 2042 1745 siteSym = SytSym(XYZ,SGData)[0].strip() 2043 print 'siteSym: ',siteSym1746 # print 'siteSym: ',siteSym 2044 1747 if siteSym == '1': #"1" site symmetry 2045 1748 if debug: … … 2078 1781 OpText = [MT2text(s).replace(' ','') for s in Sop] #debug? 2079 1782 SSOpText = [SSMT2text(ss).replace(' ','') for ss in SSop] #debug? 2080 print 'special pos super operators: ',SSOpText1783 # print 'special pos super operators: ',SSOpText 2081 1784 #setup displacement arrays 2082 1785 tau = np.linspace(1,1,49,True)
Note: See TracChangeset
for help on using the changeset viewer.