Changeset 825


Ignore:
Timestamp:
Jan 11, 2013 11:35:34 AM (9 years ago)
Author:
vondreele
Message:

small fixes to restraint processing

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIlattice.py

    r812 r825  
    771771                            coeffNames.append('C(%d,%d)'%(iord,n))
    772772    return coeffNames
    773 
     773   
    774774def CrsAng(H,cell,SGData):
    775775    a,b,c,al,be,ga = cell
  • trunk/GSASIIrestrGUI.py

    r823 r825  
    15401540           
    15411541        def OnDeleteRestraint(event):
    1542             r = ChemComps.GetSelectedRows()[0]
     1542            rows = ChemComps.GetSelectedRows()[0]
    15431543            if not rows:
    15441544                return
  • trunk/GSASIIstruct.py

    r824 r825  
    1313import time
    1414import math
     15import copy
    1516import random
    1617import cPickle
     
    21442145        shModels = ['cylindrical','none','shear - 2/m','rolling - mmm']
    21452146        SamSym = dict(zip(shModels,['0','-1','2/m','mmm']))
     2147        sam = SamSym[textureData['Model']]
    21462148        phaseRest = restraintDict[phase]
    21472149        names = {'Bond':'Bonds','Angle':'Angles','Plane':'Planes',
     
    21532155            if pId == int(pnames[0]):
    21542156                name = pnames[1]
     2157                if not name:        #empty for Pawley restraints; pName has '::' in it - skip the rest
     2158                    continue
    21552159                id = int(pnames[2])
    21562160                itemRest = phaseRest[name]
     
    21842188                    dNames = []
    21852189                    for ind in indx:
    2186                         dNames += str(pId)+'::Afrac:'+str(AtLookup[ind])
     2190                        dNames += [str(pId)+'::Afrac:'+str(AtLookup[ind])]
    21872191                        mul = np.array(G2mth.GetAtomItemsById(Atoms,AtLookUp,indx,cs+1))
    21882192                        deriv = mul*factors
    21892193                elif 'Texture' in name:
     2194                    deriv = []
     2195                    dNames = []
    21902196                    hkl,grid,esd1,ifesd2,esd2 = itemRest[names[name]][id]
     2197                    hkl = np.array(hkl)
    21912198                    if np.any(lasthkl-hkl):
    21922199                        PH = np.array(hkl)
    21932200                        phi,beta = G2lat.CrsAng(np.array(hkl),cell,SGData)
    21942201                        ODFln = G2lat.Flnh(False,SHCoef,phi,beta,SGData)
    2195 #                        R,P,Z = G2mth.getRestPolefig(ODFln,SamSym[textureData['Model']],grid)
    21962202                        lasthkl = copy.copy(hkl)                       
    21972203                    if 'unit' in name:
     
    21992205                    else:
    22002206                        gam = float(pnames[3])
    2201                         phi = float(pnames[4])
    2202                         pass
    2203                    
    2204                     raise Exception
     2207                        psi = float(pnames[4])
     2208                        for SHname in ODFln:
     2209                            l,m,n = eval(SHname[1:])
     2210                            Ksl = G2lat.GetKsl(l,m,sam,psi,gam)[0]
     2211                            dNames += [str(pId)+'::'+SHname]
     2212                            deriv.append(-ODFln[SHname][0]*Ksl/SHCoef[SHname])
    22052213                for dName,drv in zip(dNames,deriv):
    22062214                    try:
     
    22112219    for i,item in enumerate(varyList):
    22122220        if item in pNames:
    2213             pId = int(item.split(':')[0])
    22142221            pDerv[i][pNames.index(item)] += 1.
    22152222    return pDerv
     
    35103517    if np.any(pVals):
    35113518        print 'Penalty function: %.3f on %d terms'%(np.sum(pWt*pVals**2),len(pVals))
     3519        Nobs += len(pVals)
    35123520        M = np.concatenate((M,pWt*pVals))
    35133521    return M
Note: See TracChangeset for help on using the changeset viewer.