Changeset 1066 for trunk/GSASIImath.py


Ignore:
Timestamp:
Sep 26, 2013 2:47:56 PM (8 years ago)
Author:
vondreele
Message:

more MC/SA fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIImath.py

    r1065 r1066  
    377377    XYZ = np.zeros_like(Cart)
    378378    for i,xyz in enumerate(Cart):
    379         X = prodQVQ(oriQ,xyz)
    380         XYZ[i] = np.inner(Bmat,X)
     379        XYZ[i] = np.inner(Bmat,prodQVQ(oriQ,xyz))
    381380    return XYZ
    382381
     
    405404    XYZ = np.zeros_like(Cart)
    406405    for i,xyz in enumerate(Cart):
    407         X = prodQVQ(RBObj['Orient'][0],xyz)
    408         XYZ[i] = np.inner(Bmat,X)+RBObj['Orig'][0]
     406        XYZ[i] = np.inner(Bmat,prodQVQ(RBObj['Orient'][0],xyz))+RBObj['Orig'][0]
    409407    return XYZ,Cart
    410408
     
    27572755        rcov /= Rnorm
    27582756    elif 'Pawley' in reflName:  #need a bail out if Pawley cov matrix doesn't exist.
    2759         vList = covData['varyList']
    2760         for iref,refI in enumerate(reflData):
     2757        vNames = []
     2758        pfx = str(data['pId'])+'::PWLref:'
     2759        for iref,refI in enumerate(reflData):           #Pawley reflection set
    27612760            h,k,l,m,d,v,f,s = refI
    27622761            if d >= MCSA['dmin'] and v:       #skip unrefined ones
     2762                vNames.append(pfx+str(iref))
    27632763                SQ = 0.25/d**2
    27642764                allFF.append(allM*[G2el.getFFvalues(FFtables,SQ,True)[i] for i in allT]/np.max(allM))
     
    27662766                sumFosq += f*m
    27672767        nRef = len(refs)
    2768         pfx = str(data['pId'])+'::PWLref:'
    27692768        if covData['freshCOV'] and generalData['doPawley'] and MCSA.get('newDmin',True):
     2769            vList = covData['varyList']
    27702770            covMatrix = covData['covMatrix']
    2771             rcov = np.zeros((nRef,nRef))       
    2772             for iref,refI in enumerate(refs):
    2773                 I = refI[5]
    2774                 nameI = pfx+str(I)
    2775                 if nameI in vList:
    2776                     Iindx = vList.index(nameI)
    2777                     rcov[iref][iref] = covMatrix[Iindx][Iindx]
    2778                     for jref,refJ in enumerate(refs[:iref]):
    2779                         J = refJ[5]
    2780                         nameJ = pfx+str(J)
    2781                         try:
    2782                             rcov[iref][jref] = covMatrix[vList.index(nameI)][vList.index(nameJ)]
    2783                         except ValueError:
    2784                             rcov[iref][jref] = rcov[iref][jref-1]
    2785                 else:
    2786                     rcov[iref] = rcov[iref-1]
    2787                     rcov[iref][iref] = rcov[iref-1][iref-1]
     2771            rcov = getVCov(vNames,vList,covMatrix)
    27882772            rcov += (rcov.T-np.diagflat(np.diagonal(rcov)))
    27892773            Rdiag = np.sqrt(np.diag(rcov))
     2774            Rdiag = np.where(Rdiag,Rdiag,1.0)
    27902775            Rnorm = np.outer(Rdiag,Rdiag)
    27912776            rcov /= Rnorm
Note: See TracChangeset for help on using the changeset viewer.