Changeset 595 for sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2009/CSParallelepiped_v40.ipf
- Timestamp:
- Nov 4, 2009 2:21:47 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2009/CSParallelepiped_v40.ipf
r570 r595 30 30 //needed to calculate the model function. 31 31 // 32 Proc PlotCSParall piped(num,qmin,qmax)32 Proc PlotCSParallelepiped(num,qmin,qmax) 33 33 Variable num=100, qmin=.001, qmax=.7 34 34 Prompt num "Enter number of data points for model: " … … 36 36 Prompt qmax "Enter maximum q-value (A^1) for model: " 37 37 // 38 Make/O/D/n=(num) xwave_CSP arallpiped, ywave_CSParallpiped39 xwave_CSP arallpiped= alog(log(qmin) + x*((log(qmax)-log(qmin))/num))40 Make/O/D coef_CSP arallpiped = {1,35,75,400,10,10,10,2e-6,4e-6,2e-6,-1e-6,6e-6,0.06} //CH#241 make/o/t parameters_CSP arallpiped= {"Scale Factor","Shortest Edge A (A)","B (A)","Longest Edge C (A)","Rim A ()", "Rim B ()","Rim C ()", "SLD A(A^-2)", "SLD B(A^-2)", "SLD C(A^-2)", "SLD P(A^-2)", "SLD Solv(A^-2)", "Incoherent Bgd (cm-1)"} //CH#342 Edit parameters_CSP arallpiped, coef_CSParallpiped43 44 Variable/G root:g_CSP arallpiped45 g_CSP arallpiped := CSParallpiped(coef_CSParallpiped,ywave_CSParallpiped, xwave_CSParallpiped)46 Display ywave_CSP arallpiped vs xwave_CSParallpiped38 Make/O/D/n=(num) xwave_CSPP, ywave_CSPP 39 xwave_CSPP = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 40 Make/O/D coef_CSPP = {1,35,75,400,10,10,10,2e-6,4e-6,2e-6,1e-6,6e-6,0.06} //CH#2 41 make/o/t parameters_CSPP = {"Scale Factor","Shortest Edge A (A)","B (A)","Longest Edge C (A)","Rim A ()", "Rim B ()","Rim C ()", "SLD A(A^-2)", "SLD B(A^-2)", "SLD C(A^-2)", "SLD P(A^-2)", "SLD Solv(A^-2)", "Incoherent Bgd (cm-1)"} //CH#3 42 Edit parameters_CSPP, coef_CSPP 43 44 Variable/G root:g_CSPP 45 g_CSPP := CSParallelepiped(coef_CSPP,ywave_CSPP, xwave_CSPP) 46 Display ywave_CSPP vs xwave_CSPP 47 47 ModifyGraph marker=29, msize=2, mode=4 48 48 ModifyGraph log=1 … … 51 51 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 52 52 53 AddModelToStrings("CSParall piped","coef_CSParallpiped","parameters_CSParallpiped","CSParallpiped")53 AddModelToStrings("CSParallelepiped","coef_CSPP","parameters_CSPP","CSPP") 54 54 // 55 55 End … … 62 62 // from the experimental data read in from an AVE/QSIG data file 63 63 //////////////////////////////////////////////////// 64 Proc PlotSmearedCSParall piped(str)64 Proc PlotSmearedCSParallelepiped(str) 65 65 String str 66 66 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) … … 74 74 75 75 // Setup parameter table for model function 76 Make/O/D smear_coef_CSP arallpiped = {1,35,75,400,10,10,10,2e-6,4e-6,2e-6,-1e-6,6e-6,0.06} //CH#477 make/o/t smear_parameters_CSP arallpiped= {"Scale Factor","Shortest Edge A (A)","B (A)","Longest Edge C (A)","Rim A ()", "Rim B ()","Rim C ()", "SLD A(A^-2)", "SLD B(A^-2)", "SLD C(A^-2)", "SLD P(A^-2)", "SLD Solv(A^-2)", "Incoherent Bgd (cm-1)"}78 Edit smear_parameters_CSP arallpiped,smear_coef_CSParallpiped//display parameters in a table76 Make/O/D smear_coef_CSPP = {1,35,75,400,10,10,10,2e-6,4e-6,2e-6,1e-6,6e-6,0.06} //CH#4 77 make/o/t smear_parameters_CSPP = {"Scale Factor","Shortest Edge A (A)","B (A)","Longest Edge C (A)","Rim A ()", "Rim B ()","Rim C ()", "SLD A(A^-2)", "SLD B(A^-2)", "SLD C(A^-2)", "SLD P(A^-2)", "SLD Solv(A^-2)", "Incoherent Bgd (cm-1)"} 78 Edit smear_parameters_CSPP,smear_coef_CSPP //display parameters in a table 79 79 80 80 // output smeared intensity wave, dimensions are identical to experimental QSIG values 81 81 // make extra copy of experimental q-values for easy plotting 82 Duplicate/O $(str+"_q") smeared_CSP arallpiped,smeared_qvals //83 SetScale d,0,0,"1/cm",smeared_CSP arallpiped//84 85 Variable/G gs_CSP arallpiped=086 gs_CSP arallpiped := fSmearedCSParallpiped(smear_coef_CSParallpiped,smeared_CSParallpiped,smeared_qvals) //this wrapper fills the STRUCT87 88 Display smeared_CSP arallpipedvs smeared_qvals //82 Duplicate/O $(str+"_q") smeared_CSPP,smeared_qvals // 83 SetScale d,0,0,"1/cm",smeared_CSPP // 84 85 Variable/G gs_CSPP=0 86 gs_CSPP := fSmearedCSParallelepiped(smear_coef_CSPP,smeared_CSPP,smeared_qvals) //this wrapper fills the STRUCT 87 88 Display smeared_CSPP vs smeared_qvals // 89 89 ModifyGraph log=1,marker=29,msize=2,mode=4 90 90 Label bottom "q (A\\S-1\\M)" … … 93 93 94 94 SetDataFolder root: 95 AddModelToStrings("SmearedCSParall piped","smear_coef_CSParallpiped","smear_parameters_CSParallpiped","CSParallpiped")96 End 97 98 Function CSParall piped(cw,yw,xw) : FitFunc95 AddModelToStrings("SmearedCSParallelepiped","smear_coef_CSPP","smear_parameters_CSPP","CSPP") 96 End 97 98 Function CSParallelepiped(cw,yw,xw) : FitFunc 99 99 Wave cw,yw,xw 100 100 101 #if exists("CSParall pipedX")102 yw = CSParall pipedX(cw,xw)101 #if exists("CSParallelepipedX") 102 yw = CSParallelepipedX(cw,xw) 103 103 #else 104 yw = fCSParall piped(cw,xw)104 yw = fCSParallelepiped(cw,xw) 105 105 #endif 106 106 return(0) … … 111 111 // - a double integral - choose points wisely 112 112 // 113 Function fCSParall piped(w,x) : FitFunc113 Function fCSParallelepiped(w,x) : FitFunc 114 114 Wave w 115 115 Variable x … … 141 141 rhoC=w[9] //rim C SLD 142 142 rhoP = w[10] //Parallelpiped core SLD 143 144 143 rhosolv=w[11] // Solvent SLD 144 bkg = w[12] 145 145 146 146 // mu = bb*x //scale in terms of B … … 268 268 retval =( dr0*t1*t2*Vin + drA*(t3-t1)*t2*V1+ drB*t1*(t4-t2)*V2 )*( dr0*t1*t2*Vin + drA*(t3-t1)*t2*V1+ drB*t1*(t4-t2)*V2 ) // correct FF : square of sum of phase factors 269 269 // retval =t1*t2* dr0*dr0*Vin*Vin //*( dr0*t1*t2*Vin ) //test case of original PP with no rims 270 return(retVal) ;270 return(retVal) 271 271 End 272 272 273 273 274 274 // this is all there is to the smeared calculation! 275 Function fSmearedCSParall piped(coefW,yW,xW)275 Function fSmearedCSParallelepiped(coefW,yW,xW) 276 276 Wave coefW,yW,xW 277 277 … … 288 288 289 289 Variable err 290 err = SmearedCSParall piped(fs)290 err = SmearedCSParallelepiped(fs) 291 291 292 292 return (0) … … 294 294 295 295 // this is all there is to the smeared calculation! 296 Function SmearedCSParall piped(s) :FitFunc296 Function SmearedCSParallelepiped(s) :FitFunc 297 297 Struct ResSmearAAOStruct &s 298 298 299 299 // the name of your unsmeared model (AAO) is the first argument 300 Smear_Model_20(CSParall piped,s.coefW,s.xW,s.yW,s.resW)300 Smear_Model_20(CSParallelepiped,s.coefW,s.xW,s.yW,s.resW) 301 301 302 302 return(0)
Note: See TracChangeset
for help on using the changeset viewer.