Changeset 1315
- Timestamp:
- May 1, 2014 3:20:21 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwdGUI.py
r1313 r1315 2684 2684 data['Particle']['Levels'].append({ 2685 2685 'Controls':{'FormFact':'Sphere','DistType':'LogNormal','Material':material, 2686 'FFargs':{},'SFargs':{},'NumPoints':50,'Cutoff':0.01, 2686 'FFargs':{},'SFargs':{},'NumPoints':50,'Cutoff':0.01,'Contrast':0.0, 2687 2687 'SlitSmear':[0.0,False],'StrFact':'Dilute'}, #last 2 not used - future? 2688 2688 'LogNormal':{'Volume':[0.05,False],'Mean':[1000.,False],'StdDev':[0.5,False],'MinSize':[10.,False],}, … … 2696 2696 'PkSig':[10,False],'PkGam':[10,False],}, #reasonable 31A peak 2697 2697 }) 2698 G2sasd.ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,data)2698 G2sasd.ModelFxn(Profile,ProfDict,Limits,Sample,data) 2699 2699 RefreshPlots(True) 2700 2700 … … 2789 2789 ILimits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Limits')) 2790 2790 IInst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Instrument Parameters')) 2791 ISubstances = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Substances'))2792 IfOK,result,varyList,sig,Rvals,covMatrix = G2sasd.ModelFit(IProfile,IProfDict,ILimits,IS ubstances,ISample,IModel)2791 # ISubstances = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Substances')) 2792 IfOK,result,varyList,sig,Rvals,covMatrix = G2sasd.ModelFit(IProfile,IProfDict,ILimits,ISample,IModel) 2793 2793 if not IfOK: 2794 2794 G2frame.ErrorDialog('Failed sequential refinement for data '+name, … … 2799 2799 break 2800 2800 2801 G2sasd.ModelFxn(IProfile,IProfDict,ILimits,IS ubstances,ISample,IModel)2801 G2sasd.ModelFxn(IProfile,IProfDict,ILimits,ISample,IModel) 2802 2802 SeqResult[name] = {'variables':result[0],'varyList':varyList,'sig':sig,'Rvals':Rvals, 2803 2803 'covMatrix':covMatrix,'title':name} … … 2822 2822 ' Do Substances and then Sample parameters') 2823 2823 return 2824 G2sasd.SizeDistribution(Profile,ProfDict,Limits,S ubstances,Sample,data)2824 G2sasd.SizeDistribution(Profile,ProfDict,Limits,Sample,data) 2825 2825 G2plt.PlotSASDSizeDist(G2frame) 2826 2826 RefreshPlots(True) … … 2828 2828 elif data['Current'] == 'Particle fit': 2829 2829 SaveState() 2830 if not G2sasd.ModelFit(Profile,ProfDict,Limits,S ubstances,Sample,data)[0]:2830 if not G2sasd.ModelFit(Profile,ProfDict,Limits,Sample,data)[0]: 2831 2831 G2frame.ErrorDialog('Failed refinement', 2832 2832 'You need to rethink your selection of parameters\n'+ \ 2833 2833 ' Model restored to previous version') 2834 G2sasd.ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,data)2834 G2sasd.ModelFxn(Profile,ProfDict,Limits,Sample,data) 2835 2835 RefreshPlots(True) 2836 2836 wx.CallAfter(UpdateModelsGrid,G2frame,data) … … 2842 2842 G2frame.dataFrame.SasdUndo.Enable(False) 2843 2843 UpdateModelsGrid(G2frame,data) 2844 G2sasd.ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,data)2844 G2sasd.ModelFxn(Profile,ProfDict,Limits,Sample,data) 2845 2845 RefreshPlots(True) 2846 2846 … … 3031 3031 sldrObj.SetRange(slMult*valMinMax[0],slMult*valMinMax[1]) 3032 3032 sldrObj.SetValue(slMult*logv) 3033 G2sasd.ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,data)3033 G2sasd.ModelFxn(Profile,ProfDict,Limits,Sample,data) 3034 3034 RefreshPlots() 3035 3035 … … 3044 3044 item['SFargs'] = StructureFactors[Obj.GetValue()] 3045 3045 wx.CallAfter(UpdateModelsGrid,G2frame,data) 3046 G2sasd.ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,data)3046 G2sasd.ModelFxn(Profile,ProfDict,Limits,Sample,data) 3047 3047 RefreshPlots() 3048 3048 … … 3052 3052 del data['Particle']['Levels'][item] 3053 3053 wx.CallAfter(UpdateModelsGrid,G2frame,data) 3054 G2sasd.ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,data)3054 G2sasd.ModelFxn(Profile,ProfDict,Limits,Sample,data) 3055 3055 RefreshPlots() 3056 3056 … … 3065 3065 item[key][0] = value 3066 3066 pvObj.SetValue('%.3g'%(item[key][0])) 3067 G2sasd.ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,data)3067 G2sasd.ModelFxn(Profile,ProfDict,Limits,Sample,data) 3068 3068 RefreshPlots() 3069 3069 … … 3096 3096 sizeSizer.Add(matSel,0,WACV) #do neutron test here? 3097 3097 rho = Substances['Substances'][level['Controls']['Material']].get('XAnom density',0.0) 3098 contrast = (rho-rhoMat)**23098 level['Controls']['Contrast'] = contrast = (rho-rhoMat)**2 3099 3099 sizeSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Resonant X-ray contrast: '),0,WACV) 3100 3100 sizeSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' %.2f 10%scm%s'%(contrast,Pwr20,Pwrm4)),0,WACV) -
trunk/GSASIIsasd.py
r1313 r1315 1005 1005 ############################################################################### 1006 1006 1007 def SizeDistribution(Profile,ProfDict,Limits,S ubstances,Sample,data):1007 def SizeDistribution(Profile,ProfDict,Limits,Sample,data): 1008 1008 shapes = {'Spheroid':[SpheroidFF,SpheroidVol],'Cylinder':[CylinderDFF,CylinderDVol], 1009 1009 'Cylinder AR':[CylinderARFF,CylinderARVol],'Unified sphere':[UniSphereFF,UniSphereVol], … … 1053 1053 ################################################################################ 1054 1054 1055 def ModelFit(Profile,ProfDict,Limits,S ubstances,Sample,Model):1055 def ModelFit(Profile,ProfDict,Limits,Sample,Model): 1056 1056 shapes = {'Spheroid':[SpheroidFF,SpheroidVol],'Cylinder':[CylinderDFF,CylinderDVol], 1057 1057 'Cylinder AR':[CylinderARFF,CylinderARVol],'Unified sphere':[UniSphereFF,UniSphereVol], … … 1081 1081 parmDict['Back'] = Back[0] 1082 1082 partData = Model['Particle'] 1083 parmDict['Matrix density'] = Substances['Substances'][partData['Matrix']['Name']].get('XAnom density',0.0)1084 1083 for i,level in enumerate(partData['Levels']): 1085 1084 cid = str(i)+':' … … 1094 1093 parmDict[cid+'FFVolume'] = shapes[controls['FormFact']][1] 1095 1094 parmDict[cid+'StrFact'] = sfxns[controls['StrFact']] 1096 parmDict[cid+' XAnom density'] = Substances['Substances'][controls['Material']].get('XAnom density',0.0)1095 parmDict[cid+'Contrast'] = controls['Contrast'] 1097 1096 for item in FFparmOrder: 1098 1097 if item in controls['FFargs']: … … 1126 1125 Type = controls['DistType'] 1127 1126 if Type in ['LogNormal','Gaussian','LSW','Schulz-Zimm','Monodisperse']: 1128 print ' Component %d: Type: %s: Structure Factor: %s'%(i,Type,controls['StrFact']) 1127 print ' Component %d: Type: %s: Structure Factor: %s Contrast: %12.3f' \ 1128 %(i,Type,controls['StrFact'],controls['Contrast']) 1129 1129 else: 1130 1130 print ' Component %d: Type: %s: '%(i,Type,) … … 1152 1152 def getSASD(Q,levelTypes,parmDict): 1153 1153 Ic = np.zeros_like(Q) 1154 rhoMat = parmDict['Matrix density']1155 1154 for i,Type in enumerate(levelTypes): 1156 1155 cid = str(i)+':' … … 1171 1170 if item in parmDict: 1172 1171 distDict[item.split(':')[1]] = parmDict[item] 1173 rho = parmDict[cid+'XAnom density'] 1174 contrast = (rho-rhoMat)**2 1172 contrast = parmDict[cid+'Contrast'] 1175 1173 rBins,dBins,dist = MakeDiamDist(Type,parmDict[cid+'NumPoints'],parmDict[cid+'Cutoff'],distDict) 1176 1174 Gmat = G_matrix(Q,rBins,contrast,FFfxn,Volfxn,FFargs).T … … 1200 1198 if item in parmDict: 1201 1199 SFargs.append(parmDict[item]) 1202 rho = parmDict[cid+'XAnom density'] 1203 contrast = (rho-rhoMat)**2 1200 contrast = parmDict[cid+'Contrast'] 1204 1201 R = parmDict[cid+'Radius'] 1205 1202 Gmat = G_matrix(Q,R,contrast,FFfxn,Volfxn,FFargs) … … 1252 1249 return False,0,0,0,0,0 1253 1250 1254 def ModelFxn(Profile,ProfDict,Limits,S ubstances,Sample,sasdData):1251 def ModelFxn(Profile,ProfDict,Limits,Sample,sasdData): 1255 1252 1256 1253 shapes = {'Spheroid':[SpheroidFF,SpheroidVol],'Cylinder':[CylinderDFF,CylinderDVol], … … 1264 1261 # pdb.set_trace() 1265 1262 partData = sasdData['Particle'] 1266 rhoMat = Substances['Substances'][partData['Matrix']['Name']].get('XAnom density',0.0)1267 1263 matFrac = partData['Matrix']['VolFrac'] #[value,flag] 1268 1264 Scale = Sample['Scale'] #[value,flag] … … 1294 1290 if item in controls['FFargs']: 1295 1291 FFargs.append(controls['FFargs'][item][0]) 1296 rho = Substances['Substances'][level['Controls']['Material']].get('XAnom density',0.0) 1297 contrast = (rho-rhoMat)**2 1292 contrast = controls['Contrast'] 1298 1293 distDict = {} 1299 1294 for item in parmDict: … … 1336 1331 if item in controls['FFargs']: 1337 1332 FFargs.append(controls['FFargs'][item][0]) 1338 rho = Substances['Substances'][level['Controls']['Material']].get('XAnom density',0.0) 1339 contrast = (rho-rhoMat)**2 1333 contrast = controls['Contrast'] 1340 1334 Gmat = G_matrix(Q[Ibeg:Ifin],R,contrast,FFfxn,Volfxn,FFargs) 1341 1335 Ic[Ibeg:Ifin] += Gmat[0]*level[distFxn]['Volume'][0]*SFfxn(Q[Ibeg:Ifin],args=SFargs)
Note: See TracChangeset
for help on using the changeset viewer.