Changeset 1559


Ignore:
Timestamp:
Nov 3, 2014 2:48:51 PM (7 years ago)
Author:
vondreele
Message:

use deepcopy for various copy operations in G2ddataGUI
use complementary colors to background for cell edges
trap superlattice in cubics
more fixes to cell indexing routines from possible use of superlattice
add HStrainVals to G2spc
use it (maybe) in G2strIO, Math
make arguments for GetReflPos? & GetReflPosDeriv? the same (use A not G)
add GetDij? to G2strMath
topas xye file comments start with "'" sometimes

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIddataGUI.py

    r1547 r1559  
    228228                            if name in ['Scale','Extinction','HStrain']:
    229229                                if name == 'Extinction' and 'HKLF' in sourceDict['Histogram']:
    230                                     UseList[item][name][:1] = copy.copy(sourceDict[name][:1])
     230                                    UseList[item][name][:1] = copy.deepcopy(sourceDict[name][:1])
    231231                                    for itm in ['Eg','Es','Ep']:
    232                                         UseList[item][name][2][itm][1] = copy.copy(copyDict[name][itm])
     232                                        UseList[item][name][2][itm][1] = copy.deepcopy(copyDict[name][itm])
    233233                                else:
    234                                     UseList[item][name][1] = copy.copy(copyDict[name])
     234                                    UseList[item][name][1] = copy.deepcopy(copyDict[name])
    235235                            elif name in ['Size','Mustrain']:
    236                                 UseList[item][name][0] = copy.copy(copyDict[name][0])
    237                                 UseList[item][name][2] = copy.copy(copyDict[name][1])
    238                                 UseList[item][name][4] = copy.copy(copyDict[name][2])
     236                                UseList[item][name][0] = copy.deepcopy(copyDict[name][0])
     237                                UseList[item][name][2] = copy.deepcopy(copyDict[name][1])
     238                                UseList[item][name][4] = copy.deepcopy(copyDict[name][2])
    239239                            elif name == 'Pref.Ori.':
    240                                 UseList[item][name][0] = copy.copy(copyDict[name][0])
    241                                 UseList[item][name][2] = copy.copy(copyDict[name][1])
     240                                UseList[item][name][0] = copy.deepcopy(copyDict[name][0])
     241                                UseList[item][name][2] = copy.deepcopy(copyDict[name][1])
    242242                                if sourceDict[name][0] == 'SH':
    243                                     SHflags = copy.copy(copyDict[name][2])
    244                                     SHterms = copy.copy(sourceDict[name][5])
     243                                    SHflags = copy.deepcopy(copyDict[name][2])
     244                                    SHterms = copy.deepcopy(sourceDict[name][5])
    245245                                    for item in SHflags:
    246                                         SHterms[item][1] = copy.copy(SHflags[item])
     246                                        SHterms[item][1] = copy.deepcopy(SHflags[item])
    247247                            elif name == 'Babinet':
    248248                                for bab in babNames:
    249                                     UseList[item][name][bab][1] = copy.copy(copyDict[name][bab])                                             
     249                                    UseList[item][name][bab][1] = copy.deepcopy(copyDict[name][bab])                                             
    250250                    wx.CallAfter(UpdateDData,G2frame,DData,data)
    251251            finally:
  • trunk/GSASIIplot.py

    r1519 r1559  
    38563856    mapPeakVecs = np.inner(mV,Bmat)
    38573857
    3858     uColors = [Rd,Gr,Bl,Wt, Wt,Wt,Wt,Wt, Wt,Wt,Wt,Wt]
     3858    backColor = np.array(list(drawingData['backColor'])+[0,])
     3859    Bc = np.array(list(drawingData['backColor']))
     3860    uColors = [Rd,Gr,Bl,Wt-Bc, Wt-Bc,Wt-Bc,Wt-Bc,Wt-Bc, Wt-Bc,Wt-Bc,Wt-Bc,Wt-Bc]
    38593861    altDown = False
    38603862    shiftDown = False
     
    47494751    Page.camera['position'] = drawingData['cameraPos']
    47504752    Page.camera['viewPoint'] = np.inner(Amat,drawingData['viewPoint'][0])
    4751     Page.camera['backColor'] = np.array(list(drawingData['backColor'])+[0,])/255.
     4753    Page.camera['backColor'] = backColor/255.
    47524754    try:
    47534755        Page.canvas.SetCurrent()
  • trunk/GSASIIpwdGUI.py

    r1552 r1559  
    22042204       
    22052205    def OnSSopt(event):
     2206        if controls[5] in ['Fm3m','Im3m','Pm3m']:
     2207            SSopt.SetValue(False)
     2208            G2frame.ErrorDialog('Cubic lattice', 'Superlattice not allowed for a cubic lattice')
     2209            return
    22062210        ssopt['Use'] = SSopt.GetValue()
    22072211        wx.CallAfter(UpdateUnitCellsGrid,G2frame,data)
     
    24682472    def RefreshUnitCellsGrid(event):
    24692473        data =G2frame.PatternTree.GetItemPyData(UnitCellsId)
    2470         cells,dmin = data[2:]
     2474        cells,dmin = data[2:4]
    24712475        r,c =  event.GetRow(),event.GetCol()
    24722476        if cells:
  • trunk/GSASIIspc.py

    r1548 r1559  
    13231323        SHKL += ['S211','S121','S112']
    13241324        return SHKL
     1325       
     1326def HStrainVals(HSvals,SGData):
     1327    laue = SGData['SGLaue']
     1328    uniq = SGData['SGUniq']
     1329    DIJ = np.zeros(6)
     1330    if laue in ['m3','m3m']:
     1331        DIJ[:3] = [HSvals[0],HSvals[0],HSvals[0]]
     1332    elif laue in ['6/m','6/mmm','3m1','31m','3']:
     1333        DIJ[:4] = [HSvals[0],HSvals[0],HSvals[1],HSvals[0]]
     1334    elif laue in ['3R','3mR']:
     1335        DIJ = [HSvals[0],HSvals[0],HSvals[0],HSvals[1],HSvals[1],HSvals[1]]
     1336    elif laue in ['4/m','4/mmm']:
     1337        DIJ[:3] = [HSvals[0],HSvals[0],HSvals[1]]
     1338    elif laue in ['mmm']:
     1339        DIJ[:3] = [HSvals[0],HSvals[1],HSvals[2]]
     1340    elif laue in ['2/m']:
     1341        DIJ[:3] = [HSvals[0],HSvals[1],HSvals[2]]
     1342        if uniq == 'a':
     1343            DIJ[5] = HSvals[3]
     1344        elif uniq == 'b':
     1345            DIJ[4] = HSvals[3]
     1346        elif uniq == 'c':
     1347            DIJ[3] = HSvals[3]
     1348        return Dij
     1349    else:
     1350        DIJ = [HSvals[0],HSvals[1],HSvals[2],HSvals[3],HSvals[4],HSvals[5]]
     1351    return DIJ
    13251352
    13261353def HStrainNames(SGData):
  • trunk/GSASIIstrIO.py

    r1529 r1559  
    17581758                        hapVary.append(pfx+item)
    17591759                names = G2spc.HStrainNames(SGData)
     1760                HSvals = []
    17601761                for i,name in enumerate(names):
    17611762                    hapDict[pfx+name] = hapData['HStrain'][0][i]
     1763                    HSvals.append(hapDict[pfx+name])
    17621764                    if hapData['HStrain'][1][i]:
    17631765                        hapVary.append(pfx+name)
     1766                DIJS = G2spc.HStrainVals(HSvals,SGData)
    17641767                controlDict[pfx+'poType'] = hapData['Pref.Ori.'][0]
    17651768                if hapData['Pref.Ori.'][0] == 'MD':
     
    18241827                    if hapData['Babinet']['BabA'][0]:
    18251828                        PrintBabinet(hapData['Babinet'])
    1826                 HKLd = np.array(G2lat.GenHLaue(dmin,SGData,A))
     1829                HKLd = np.array(G2lat.GenHLaue(dmin,SGData,A))  #+DIJS
    18271830                if resetRefList:
    18281831                    refList = []
  • trunk/GSASIIstrMath.py

    r1498 r1559  
    13701370    return sigDict,gamDict
    13711371       
    1372 def GetReflPos(refl,wave,G,hfx,calcControls,parmDict):
     1372def GetReflPos(refl,wave,A,hfx,calcControls,parmDict):
    13731373    'Needs a doc string'
    13741374    h,k,l = refl[:3]
    1375     dsq = 1./G2lat.calc_rDsq2(np.array([h,k,l]),G)
    1376     d = np.sqrt(dsq)
     1375    d = 1./np.sqrt(G2lat.calc_rDsq(np.array([h,k,l]),A))
    13771376
    13781377    refl[4] = d
     
    14891488    return dDijDict
    14901489   
     1490def GetDij(phfx,SGData,parmDict):
     1491    HSvals = [parmDict[phfx+name] for name in G2spc.HStrainNames(SGData)]
     1492    return G2spc.HStrainVals(HSvals,SGData)
     1493               
    14911494def GetFobsSq(Histograms,Phases,parmDict,calcControls):
    14921495    'Needs a doc string'
     
    15961599        bet = parmDict[hfx+'beta-0']+parmDict[hfx+'beta-1']/refl[4]**4+parmDict[hfx+'beta-q']/refl[4]**2
    15971600        return alp,bet
    1598                
     1601       
    15991602    hId = Histogram['hId']
    16001603    hfx = ':%d:'%(hId)
     
    16241627        SGData = Phase['General']['SGData']
    16251628        SGMT = np.array([ops[0].T for ops in SGData['SGOps']])
    1626         A = [parmDict[pfx+'A%d'%(i)] for i in range(6)]     #Do I want to modify by Dij?
     1629        A = [parmDict[pfx+'A%d'%(i)] for i in range(6)] #+GetDij(phfx,SGData,parmDict)
    16271630        G,g = G2lat.A2Gmat(A)       #recip & real metric tensors
    16281631        GA,GB = G2lat.Gmat2AB(G)    #Orthogonalization matricies
     
    16381641                h,k,l = refl[:3]
    16391642                Uniq = np.inner(refl[:3],SGMT)
    1640                 refl[5] = GetReflPos(refl,wave,G,hfx,calcControls,parmDict)         #corrected reflection position
     1643                refl[5] = GetReflPos(refl,wave,A,hfx,calcControls,parmDict)         #corrected reflection position
    16411644                Lorenz = 1./(2.*sind(refl[5]/2.)**2*cosd(refl[5]/2.))           #Lorentz correction
    16421645                refl[5] += GetHStrainShift(refl,SGData,phfx,hfx,calcControls,parmDict)               #apply hydrostatic strain shift
     
    16781681                h,k,l = refl[:3]
    16791682                Uniq = np.inner(refl[:3],SGMT)
    1680                 refl[5] = GetReflPos(refl,0.0,G,hfx,calcControls,parmDict)         #corrected reflection position
     1683                refl[5] = GetReflPos(refl,0.0,A,hfx,calcControls,parmDict)         #corrected reflection position
    16811684                Lorenz = sind(parmDict[hfx+'2-theta']/2)*refl[4]**4                                                #TOF Lorentz correction
    16821685                refl[5] += GetHStrainShift(refl,SGData,phfx,hfx,calcControls,parmDict)               #apply hydrostatic strain shift
     
    17831786        pfx = '%d::'%(pId)
    17841787        phfx = '%d:%d:'%(pId,hId)
    1785         A = [parmDict[pfx+'A%d'%(i)] for i in range(6)]     #And modify here by Dij? - no
     1788        A = [parmDict[pfx+'A%d'%(i)] for i in range(6)] #+GetDij(phfx,SGData,parmDict)
    17861789        G,g = G2lat.A2Gmat(A)       #recip & real metric tensors
    17871790        GA,GB = G2lat.Gmat2AB(G)    #Orthogonalization matricies
  • trunk/imports/G2pwd_xye.py

    r1544 r1559  
    4646                    gotCcomment = True
    4747                    continue   
    48                 if S[0] == '#':
     48                if S[0] in ["'",'#']:
    4949                    continue       #ignore comments, if any
    5050                else:
     
    8181                        gotCcomment = True
    8282                        continue   
    83                     if S[0] == '#':
     83                    if S[0] in ["'"'#']:
    8484                        self.comments.append(S[:-1])
    8585                        continue       #ignore comments, if any
Note: See TracChangeset for help on using the changeset viewer.