Changeset 1455


Ignore:
Timestamp:
Aug 3, 2014 3:13:15 PM (9 years ago)
Author:
vondreele
Message:

fix ddata copy flags so it copies extinction models as well as refine flags
more fixes to derivatives,

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIddataGUI.py

    r1453 r1455  
    196196            if name in ['Scale','Extinction','HStrain']:
    197197                if name == 'Extinction' and 'HKLF' in sourceDict['Histogram']:
    198                     copyDict[name] = {}
     198                    copyDict[name] = {name:[sourceDict[name][:1]]}
    199199                    for item in ['Eg','Es','Ep']:
    200200                        copyDict[name][item] = sourceDict[name][2][item][1]
     
    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])
    230231                                    for itm in ['Eg','Es','Ep']:
    231                                         UseList[item][name][2][itm][1] = copy.copy(copyDict[name][itm])                                 
     232                                        UseList[item][name][2][itm][1] = copy.copy(copyDict[name][itm])
    232233                                else:
    233234                                    UseList[item][name][1] = copy.copy(copyDict[name])
  • trunk/GSASIIstrMath.py

    r1454 r1455  
    17821782                            for j,var in enumerate(varylist):
    17831783                                if var in dFdvDict:
    1784                                     dMdvh[j][iref] = w*dFdvDict[var][iref]*parmDict[phfx+'Scale']*dervCor
     1784                                    dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
    17851785                            for var in dependentVars:
    17861786                                if var in dFdvDict:
    1787                                     depDerivDict[var][iref] = w*dFdvDict[var][iref]*parmDict[phfx+'Scale']*dervCor
     1787                                    depDerivDict[var][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
    17881788                            if phfx+'Scale' in varylist:
    17891789                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor
     
    17911791                                depDerivDict[phfx+'Scale'][iref] = w*ref[9]*dervCor
    17921792                            for item in ['Ep','Es','Eg']:
    1793                                 if phfx+item in varylist:
    1794                                     dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]/dervCor  #*parmDict[phfx+'Scale']
    1795                                 elif phfx+item in dependentVars:
    1796                                     depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]/dervCor   #*parmDict[phfx+'Scale']
     1793                                if phfx+item in varylist and dervDict:
     1794                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]/dervCor
     1795                                elif phfx+item in dependentVars and dervDict:
     1796                                    depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]/dervCor
    17971797                            for item in ['BabA','BabU']:
    17981798                                if phfx+item in varylist:
    1799                                     dMdvh[varylist.index(phfx+item)][iref] = w*dervCor*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
     1799                                    dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
    18001800                                elif phfx+item in dependentVars:
    1801                                     depDerivDict[phfx+item][iref] = w*dervCor*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
     1801                                    depDerivDict[phfx+item][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
    18021802            else:
    18031803                for iref,ref in enumerate(refDict['RefList']):
     
    18191819                                depDerivDict[phfx+'Scale'][iref] = w*ref[9]*dervCor                           
    18201820                            for item in ['Ep','Es','Eg']:
    1821                                 if phfx+item in varylist:
    1822                                     dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]/dervCor  #*parmDict[phfx+'Scale']
    1823                                 elif phfx+item in dependentVars:
    1824                                     depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]/dervCor   #*parmDict[phfx+'Scale']
     1821                                if phfx+item in varylist and dervDict:
     1822                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]/dervCor  #correct
     1823                                elif phfx+item in dependentVars and dervDict:
     1824                                    depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]/dervCor
    18251825                            for item in ['BabA','BabU']:
    18261826                                if phfx+item in varylist:
    1827                                     dMdvh[varylist.index(phfx+item)][iref] = w*dervCor*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']
     1827                                    dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
    18281828                                elif phfx+item in dependentVars:
    18291829                                    depDerivDict[phfx+item][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
     
    19241924                            for j,var in enumerate(varylist):
    19251925                                if var in dFdvDict:
    1926                                     dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
     1926                                    dMdvh[j][iref] = w*dFdvDict[var][iref]*parmDict[phfx+'Scale']*dervCor
    19271927                            for var in dependentVars:
    19281928                                if var in dFdvDict:
    1929                                     depDerivDict[var][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
     1929                                    depDerivDict[var][iref] = w*dFdvDict[var][iref]*parmDict[phfx+'Scale']*dervCor
    19301930                            if phfx+'Scale' in varylist:
    19311931                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor
     
    19331933                                depDerivDict[phfx+'Scale'][iref] = w*ref[9]*dervCor
    19341934                            for item in ['Ep','Es','Eg']:
    1935                                 if phfx+item in varylist:
    1936                                     dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]/dervCor  #*parmDict[phfx+'Scale']
    1937                                 elif phfx+item in dependentVars:
    1938                                     depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]/dervCor   #*parmDict[phfx+'Scale']
     1935                                if phfx+item in varylist and dervDict:
     1936                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]/dervCor
     1937                                elif phfx+item in dependentVars and dervDict:
     1938                                    depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]/dervCor
    19391939                            for item in ['BabA','BabU']:
    19401940                                if phfx+item in varylist:
     
    19531953                            for j,var in enumerate(varylist):
    19541954                                if var in dFdvDict:
    1955                                     dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
     1955                                    dMdvh[j][iref] = w*dFdvDict[var][iref]*parmDict[phfx+'Scale']*dervCor
    19561956                            for var in dependentVars:
    19571957                                if var in dFdvDict:
    1958                                     depDerivDict[var][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
     1958                                    depDerivDict[var][iref] = w*dFdvDict[var][iref]*parmDict[phfx+'Scale']*dervCor
    19591959                            if phfx+'Scale' in varylist:
    19601960                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor
     
    19631963                            for item in ['Ep','Es','Eg']:
    19641964                                if phfx+item in varylist and dervDict:
    1965                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]   #*parmDict[phfx+'Scale']
     1965                                   dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]/dervCor
    19661966                                elif phfx+item in dependentVars and dervDict:
    1967                                     depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]   #*parmDict[phfx+'Scale']
     1967                                    depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]/dervCor
    19681968                            for item in ['BabA','BabU']:
    19691969                                if phfx+item in varylist:
     
    20752075                        SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[11]
    20762076                        w = 1.0/ref[6]
    2077                         ref[7] = parmDict[phfx+'Scale']*ref[9]
    2078                         ref[7] *= ref[11]                       #correct Fc^2 for extinction
    2079                         ref[8] = ref[5]/parmDict[phfx+'Scale']
     2077                        ref[7] = parmDict[phfx+'Scale']*ref[9]*ref[11]  #correct Fc^2 for extinction
     2078                        ref[8] = ref[5]/(parmDict[phfx+'Scale']*ref[11])
    20802079                        if w*ref[5] >= calcControls['minF/sig']:
    20812080                            sumFo2 += ref[5]
     
    20922091                    if ref[5] > 0.:
    20932092                        SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[11]
    2094                         ref[7] = parmDict[phfx+'Scale']*ref[9]
    2095                         ref[7] *= ref[11]                       #correct Fc^2 for extinction
     2093                        ref[7] = parmDict[phfx+'Scale']*ref[9]*ref[11]    #correct Fc^2 for extinctio
     2094                        ref[8] = ref[5]/(parmDict[phfx+'Scale']*ref[11])
    20962095                        Fo = np.sqrt(ref[5])
    20972096                        Fc = np.sqrt(ref[7])
Note: See TracChangeset for help on using the changeset viewer.