Changeset 774
- Timestamp:
- Dec 8, 2010 11:48:00 AM (12 years ago)
- Location:
- sans/Dev/trunk/NCNR_User_Procedures/Analysis
- Files:
-
- 1 added
- 1 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/CoreShell_Sq_v40.ipf
r570 r774 10 10 #include "SquareWellStruct_v40" 11 11 #include "StickyHardSphereStruct_v40" 12 #include "Two_Yukawa_v40" 12 13 13 14 Proc PlotCoreShell_HS(num,qmin,qmax) … … 413 414 End 414 415 416 //two yukawa 417 Proc PlotCoreShell_2Y(num,qmin,qmax) 418 Variable num=256,qmin=0.001,qmax=0.7 419 Prompt num "Enter number of data points for model: " 420 Prompt qmin "Enter minimum q-value (A^-1) for model: " 421 Prompt qmax "Enter maximum q-value (A^-1) for model: " 422 423 Make/O/D/n=(num) xwave_CSS_2Y,ywave_CSS_2Y 424 xwave_CSS_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 425 Make/O/D coef_CSS_2Y = {0.1,60,10,1e-6,2e-6,3e-6,6,10,-1,2,0.0001} 426 make/o/t parameters_CSS_2Y = {"volume fraction","core rad (A)","shell thickness (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 427 Edit/K=1 parameters_CSS_2Y,coef_CSS_2Y 428 429 Variable/G root:g_CSS_2Y 430 g_CSS_2Y := CoreShell_2Y(coef_CSS_2Y,ywave_CSS_2Y,xwave_CSS_2Y) 431 Display/K=1 ywave_CSS_2Y vs xwave_CSS_2Y 432 ModifyGraph log=1,marker=29,msize=2,mode=4 433 Label bottom "q (A\\S-1\\M)" 434 Label left "Intensity (cm\\S-1\\M)" 435 436 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 437 438 AddModelToStrings("CoreShell_2Y","coef_CSS_2Y","parameters_CSS_2Y","CSS_2Y") 439 End 440 441 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 442 Proc PlotSmearedCoreShell_2Y(str) 443 String str 444 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 445 446 // if any of the resolution waves are missing => abort 447 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 448 Abort 449 endif 450 451 SetDataFolder $("root:"+str) 452 453 // Setup parameter table for model function 454 Make/O/D smear_coef_CSS_2Y = {0.1,60,10,1e-6,2e-6,3e-6,6,10,-1,2,0.0001} 455 make/o/t smear_parameters_CSS_2Y = {"volume fraction","core rad (A)","shell thickness (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 456 Edit smear_parameters_CSS_2Y,smear_coef_CSS_2Y 457 458 // output smeared intensity wave, dimensions are identical to experimental QSIG values 459 // make extra copy of experimental q-values for easy plotting 460 Duplicate/O $(str+"_q") smeared_CSS_2Y,smeared_qvals 461 SetScale d,0,0,"1/cm",smeared_CSS_2Y 462 463 Variable/G gs_CSS_2Y=0 464 gs_CSS_2Y := fSmearedCoreShell_2Y(smear_coef_CSS_2Y,smeared_CSS_2Y,smeared_qvals) //this wrapper fills the STRUCT 465 466 Display smeared_CSS_2Y vs smeared_qvals 467 ModifyGraph log=1,marker=29,msize=2,mode=4 468 Label bottom "q (A\\S-1\\M)" 469 Label left "Intensity (cm\\S-1\\M)" 470 471 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 472 473 SetDataFolder root: 474 AddModelToStrings("SmearedCoreShell_2Y","smear_coef_CSS_2Y","smear_parameters_CSS_2Y","CSS_2Y") 475 End 476 477 478 Function CoreShell_2Y(w,yw,xw) : FitFunc 479 Wave w,yw,xw 480 481 Variable inten 482 483 //setup form factor coefficient wave 484 Make/O/D/N=7 form_CSS_2Y 485 form_CSS_2Y[0] = 1 486 form_CSS_2Y[1] = w[1] 487 form_CSS_2Y[2] = w[2] 488 form_CSS_2Y[3] = w[3] 489 form_CSS_2Y[4] = w[4] 490 form_CSS_2Y[5] = w[5] 491 form_CSS_2Y[6] = 0 492 493 //setup structure factor coefficient wave 494 Make/O/D/N=6 struct_CSS_2Y 495 struct_CSS_2Y[0] = w[0] 496 struct_CSS_2Y[1] = w[1] + w[2] 497 struct_CSS_2Y[2] = w[6] 498 struct_CSS_2Y[3] = w[7] 499 struct_CSS_2Y[4] = w[8] 500 struct_CSS_2Y[5] = w[9] 501 502 //calculate each and combine 503 Duplicate/O xw temp_CSS_2Y_PQ,temp_CSS_2Y_SQ //make waves for the AAO 504 CoreShellSphere(form_CSS_2Y,temp_CSS_2Y_PQ,xw) 505 TwoYukawa(struct_CSS_2Y,temp_CSS_2Y_SQ,xw) 506 yw = temp_CSS_2Y_PQ * temp_CSS_2Y_SQ 507 yw *= w[0] 508 yw += w[10] 509 510 //cleanup waves 511 // Killwaves/Z form_CSS_2Y,struct_CSS_2Y 512 513 return (0) 514 End 515 415 516 416 517 … … 451 552 // the name of your unsmeared model is the first argument 452 553 Smear_Model_20(CoreShell_SHS,s.coefW,s.xW,s.yW,s.resW) 554 555 return(0) 556 End 557 558 // this is all there is to the smeared calculation! 559 Function SmearedCoreShell_2Y(s) :FitFunc 560 Struct ResSmearAAOStruct &s 561 562 // the name of your unsmeared model is the first argument 563 Smear_Model_20(CoreShell_2Y,s.coefW,s.xW,s.yW,s.resW) 453 564 454 565 return(0) … … 554 665 return (0) 555 666 End 667 668 //wrapper to calculate the smeared model as an AAO-Struct 669 // fills the struct and calls the ususal function with the STRUCT parameter 670 // 671 // used only for the dependency, not for fitting 672 // 673 Function fSmearedCoreShell_2Y(coefW,yW,xW) 674 Wave coefW,yW,xW 675 676 String str = getWavesDataFolder(yW,0) 677 String DF="root:"+str+":" 678 679 WAVE resW = $(DF+str+"_res") 680 681 STRUCT ResSmearAAOStruct fs 682 WAVE fs.coefW = coefW 683 WAVE fs.yW = yW 684 WAVE fs.xW = xW 685 WAVE fs.resW = resW 686 687 Variable err 688 err = SmearedCoreShell_2Y(fs) 689 690 return (0) 691 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/Cylinder_Sq_v40.ipf
r570 r774 10 10 #include "SquareWellStruct_v40" 11 11 #include "StickyHardSphereStruct_v40" 12 #include "Two_Yukawa_v40" 12 13 13 14 Proc PlotCylinder_HS(num,qmin,qmax) … … 414 415 End 415 416 416 417 // two yukawa 418 Proc PlotCylinder_2Y(num,qmin,qmax) 419 Variable num=128,qmin=0.001,qmax=0.7 420 Prompt num "Enter number of data points for model: " 421 Prompt qmin "Enter minimum q-value (A^-1) for model: " 422 Prompt qmax "Enter maximum q-value (A^-1) for model: " 423 424 Make/O/D/n=(num) xwave_CYL_2Y,ywave_CYL_2Y 425 xwave_CYL_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 426 Make/O/D coef_CYL_2Y = {0.01,20.,400,1e-6,6.3e-6,6,10,-1,2,0.01} 427 make/o/t parameters_CYL_2Y = {"volume fraction","radius (A)","length (A)","SLD cylinder (A^-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","incoh. bkg (cm^-1)"} 428 Edit parameters_CYL_2Y,coef_CYL_2Y 429 430 Variable/G root:g_CYL_2Y 431 g_CYL_2Y := Cylinder_2Y(coef_CYL_2Y,ywave_CYL_2Y,xwave_CYL_2Y) 432 Display ywave_CYL_2Y vs xwave_CYL_2Y 433 ModifyGraph log=1,marker=29,msize=2,mode=4 434 Label bottom "q (A\\S-1\\M)" 435 Label left "Intensity (cm\\S-1\\M)" 436 437 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 438 439 AddModelToStrings("Cylinder_2Y","coef_CYL_2Y","parameters_CYL_2Y","CYL_2Y") 440 End 441 442 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 443 Proc PlotSmearedCylinder_2Y(str) 444 String str 445 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 446 447 // if any of the resolution waves are missing => abort 448 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 449 Abort 450 endif 451 452 SetDataFolder $("root:"+str) 453 454 // Setup parameter table for model function 455 Make/O/D smear_coef_CYL_2Y = {0.01,20.,400,1e-6,6.3e-6,6,10,-1,2,0.01} 456 make/o/t smear_parameters_CYL_2Y = {"volume fraction","radius (A)","length (A)","SLD cylinder (A^-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","incoh. bkg (cm^-1)"} 457 Edit smear_parameters_CYL_2Y,smear_coef_CYL_2Y 458 459 // output smeared intensity wave, dimensions are identical to experimental QSIG values 460 // make extra copy of experimental q-values for easy plotting 461 Duplicate/O $(str+"_q") smeared_CYL_2Y,smeared_qvals 462 SetScale d,0,0,"1/cm",smeared_CYL_2Y 463 464 Variable/G gs_CYL_2Y=0 465 gs_CYL_2Y := fSmearedCylinder_2Y(smear_coef_CYL_2Y,smeared_CYL_2Y,smeared_qvals) //this wrapper fills the STRUCT 466 467 Display smeared_CYL_2Y vs smeared_qvals 468 ModifyGraph log=1,marker=29,msize=2,mode=4 469 Label bottom "q (A\\S-1\\M)" 470 Label left "Intensity (cm\\S-1\\M)" 471 472 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 473 474 SetDataFolder root: 475 AddModelToStrings("SmearedCylinder_2Y","smear_coef_CYL_2Y","smear_parameters_CYL_2Y","CYL_2Y") 476 End 477 478 479 Function Cylinder_2Y(w,yw,xw) : FitFunc 480 Wave w,yw,xw 481 482 Variable inten,rad,len 483 rad=w[1] 484 len=w[2] 485 486 //setup form factor coefficient wave 487 Make/O/D/N=6 form_CYL_2Y 488 form_CYL_2Y[0] = 1 489 form_CYL_2Y[1] = w[1] 490 form_CYL_2Y[2] = w[2] 491 form_CYL_2Y[3] = w[3] 492 form_CYL_2Y[4] = w[4] 493 form_CYL_2Y[5] = 0 494 495 //setup structure factor coefficient wave 496 Make/O/D/N=6 struct_CYL_2Y 497 struct_CYL_2Y[0] = w[0] 498 struct_CYL_2Y[1] = 0.5*DiamCyl(len,rad) 499 struct_CYL_2Y[2] = w[5] 500 struct_CYL_2Y[3] = w[6] 501 struct_CYL_2Y[4] = w[7] 502 struct_CYL_2Y[5] = w[8] 503 504 //calculate each and combine 505 Duplicate/O xw temp_CYL_2Y_PQ,temp_CYL_2Y_SQ //make waves for the AAO 506 CylinderForm(form_CYL_2Y,temp_CYL_2Y_PQ,xw) 507 TwoYukawa(struct_CYL_2Y,temp_CYL_2Y_SQ,xw) 508 yw = temp_CYL_2Y_PQ * temp_CYL_2Y_SQ 509 yw *= w[0] 510 yw += w[9] 511 512 //cleanup waves (don't do this - it takes a lot of time...) 513 // Killwaves/Z form_CYL_2Y,struct_CYL_2Y 514 515 return (0) 516 End 417 517 418 518 // this is all there is to the smeared calculation! … … 452 552 // the name of your unsmeared model is the first argument 453 553 Smear_Model_20(Cylinder_SHS,s.coefW,s.xW,s.yW,s.resW) 554 555 return(0) 556 End 557 558 // this is all there is to the smeared calculation! 559 Function SmearedCylinder_2Y(s) :FitFunc 560 Struct ResSmearAAOStruct &s 561 562 // the name of your unsmeared model is the first argument 563 Smear_Model_20(Cylinder_2Y,s.coefW,s.xW,s.yW,s.resW) 454 564 455 565 return(0) … … 555 665 return (0) 556 666 End 667 668 //wrapper to calculate the smeared model as an AAO-Struct 669 // fills the struct and calls the ususal function with the STRUCT parameter 670 // 671 // used only for the dependency, not for fitting 672 // 673 Function fSmearedCylinder_2Y(coefW,yW,xW) 674 Wave coefW,yW,xW 675 676 String str = getWavesDataFolder(yW,0) 677 String DF="root:"+str+":" 678 679 WAVE resW = $(DF+str+"_res") 680 681 STRUCT ResSmearAAOStruct fs 682 WAVE fs.coefW = coefW 683 WAVE fs.yW = yW 684 WAVE fs.xW = xW 685 WAVE fs.resW = resW 686 687 Variable err 688 err = SmearedCylinder_2Y(fs) 689 690 return (0) 691 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2006/GaussSpheres_Sq_v40.ipf
r570 r774 11 11 #include "SquareWellStruct_v40" 12 12 #include "StickyHardSphereStruct_v40" 13 #include "Two_Yukawa_v40" 13 14 14 15 Proc PlotGaussPolySphere_HS(num,qmin,qmax) … … 436 437 End 437 438 438 439 //two yukawa 440 Proc PlotGaussPolySphere_2Y(num,qmin,qmax) 441 Variable num=128,qmin=0.001,qmax=0.7 442 Prompt num "Enter number of data points for model: " 443 Prompt qmin "Enter minimum q-value (A^-1) for model: " 444 Prompt qmax "Enter maximum q-value (A^-1) for model: " 445 446 Make/O/D/N=(num) xwave_pgs_2Y,ywave_pgs_2Y 447 xwave_pgs_2Y = alog( log(qmin) + x*((log(qmax)-log(qmin))/num) ) 448 Make/O/D coef_pgs_2Y = {0.01,60,0.2,1e-6,3e-6,6,10,-1,2,0.001} 449 make/O/T parameters_pgs_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 450 Edit parameters_pgs_2Y,coef_pgs_2Y 451 452 Variable/G root:g_pgs_2Y 453 g_pgs_2Y := GaussPolySphere_2Y(coef_pgs_2Y,ywave_pgs_2Y,xwave_pgs_2Y) 454 Display ywave_pgs_2Y vs xwave_pgs_2Y 455 ModifyGraph log=1,marker=29,msize=2,mode=4 456 Label bottom "q (A\\S-1\\M)" 457 Label left "Intensity (cm\\S-1\\M)" 458 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 459 460 AddModelToStrings("GaussPolySphere_2Y","coef_pgs_2Y","parameters_pgs_2Y","pgs_2Y") 461 End 462 463 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 464 Proc PlotSmearedGaussPolySphere_2Y(str) 465 String str 466 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 467 468 // if any of the resolution waves are missing => abort 469 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 470 Abort 471 endif 472 473 SetDataFolder $("root:"+str) 474 475 // Setup parameter table for model function 476 Make/O/D smear_coef_pgs_2Y = {0.01,60,0.2,1e-6,3e-6,6,10,-1,2,0.001} 477 make/o/t smear_parameters_pgs_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 478 Edit smear_parameters_pgs_2Y,smear_coef_pgs_2Y 479 480 // output smeared intensity wave, dimensions are identical to experimental QSIG values 481 // make extra copy of experimental q-values for easy plotting 482 Duplicate/O $(str+"_q") smeared_pgs_2Y,smeared_qvals 483 SetScale d,0,0,"1/cm",smeared_pgs_2Y 484 485 Variable/G gs_pgs_2Y=0 486 gs_pgs_2Y := fSmearedGaussPolySphere_2Y(smear_coef_pgs_2Y,smeared_pgs_2Y,smeared_qvals) //this wrapper fills the STRUCT 487 488 Display smeared_pgs_2Y vs smeared_qvals 489 ModifyGraph log=1,marker=29,msize=2,mode=4 490 Label bottom "q (A\\S-1\\M)" 491 Label left "Intensity (cm\\S-1\\M)" 492 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 493 494 SetDataFolder root: 495 AddModelToStrings("SmearedGaussPolySphere_2Y","smear_coef_pgs_2Y","smear_parameters_pgs_2Y","pgs_2Y") 496 End 497 498 499 500 Function GaussPolySphere_2Y(w,yw,xw) : FitFunc 501 Wave w,yw,xw 502 503 Variable inten 504 505 //setup form factor coefficient wave 506 Make/O/D/N=6 form_pgs_2Y 507 form_pgs_2Y[0] = 1 508 form_pgs_2Y[1] = w[1] 509 form_pgs_2Y[2] = w[2] 510 form_pgs_2Y[3] = w[3] 511 form_pgs_2Y[4] = w[4] 512 form_pgs_2Y[5] = 0 513 514 //calculate the diameter of the effective one-component sphere 515 Variable pd,diam,Vpoly,Ravg 516 pd = w[2] 517 Ravg = w[1] 518 519 Vpoly = (4*pi/3*Ravg^3)*(1+3*pd^2) 520 diam = (6*Vpoly/pi)^(1/3) 521 522 523 //setup structure factor coefficient wave 524 Make/O/D/N=6 struct_pgs_2Y 525 struct_pgs_2Y[0] = w[0] 526 struct_pgs_2Y[1] = diam/2 527 struct_pgs_2Y[2] = w[5] 528 struct_pgs_2Y[3] = w[6] 529 struct_pgs_2Y[4] = w[7] 530 struct_pgs_2Y[5] = w[8] 531 532 //calculate each and combine 533 Duplicate/O xw tmp_pgs_2Y_PQ,tmp_pgs_2Y_SQ 534 GaussSpheres(form_pgs_2Y,tmp_pgs_2Y_PQ,xw) 535 TwoYukawa(struct_pgs_2Y,tmp_pgs_2Y_SQ,xw) 536 yw = tmp_pgs_2Y_PQ * tmp_pgs_2Y_SQ 537 yw *= w[0] 538 yw += w[9] 539 540 //cleanup waves 541 // Killwaves/Z form_pgs_2Y,struct_pgs_2Y 542 543 return (0) 544 End 439 545 440 546 // this is all there is to the smeared calculation! … … 474 580 // the name of your unsmeared model (AAO) is the first argument 475 581 Smear_Model_20(GaussPolySphere_SHS,s.coefW,s.xW,s.yW,s.resW) 582 583 return(0) 584 End 585 586 // this is all there is to the smeared calculation! 587 Function SmearedGaussPolySphere_2Y(s) : FitFunc 588 Struct ResSmearAAOStruct &s 589 590 // the name of your unsmeared model (AAO) is the first argument 591 Smear_Model_20(GaussPolySphere_2Y,s.coefW,s.xW,s.yW,s.resW) 476 592 477 593 return(0) … … 577 693 return (0) 578 694 End 695 696 //wrapper to calculate the smeared model as an AAO-Struct 697 // fills the struct and calls the ususal function with the STRUCT parameter 698 // 699 // used only for the dependency, not for fitting 700 // 701 Function fSmearedGaussPolySphere_2Y(coefW,yW,xW) 702 Wave coefW,yW,xW 703 704 String str = getWavesDataFolder(yW,0) 705 String DF="root:"+str+":" 706 707 WAVE resW = $(DF+str+"_res") 708 709 STRUCT ResSmearAAOStruct fs 710 WAVE fs.coefW = coefW 711 WAVE fs.yW = yW 712 WAVE fs.xW = xW 713 WAVE fs.resW = resW 714 715 Variable err 716 err = SmearedGaussPolySphere_2Y(fs) 717 718 return (0) 719 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2006/LogNormalSphere_Sq_v40.ipf
r570 r774 11 11 #include "SquareWellStruct_v40" 12 12 #include "StickyHardSphereStruct_v40" 13 #include "Two_Yukawa_v40" 14 13 15 14 16 Proc PlotLogNormalSphere_HS(num,qmin,qmax) … … 436 438 End 437 439 440 // two yukawa 441 Proc PlotLogNormalSphere_2Y(num,qmin,qmax) 442 Variable num=128,qmin=0.001,qmax=0.7 443 Prompt num "Enter number of data points for model: " 444 Prompt qmin "Enter minimum q-value (A^-1) for model: " 445 Prompt qmax "Enter maximum q-value (A^-1) for model: " 446 447 Make/O/D/N=(num) xwave_lns_2Y,ywave_lns_2Y 448 xwave_lns_2Y = alog( log(qmin) + x*((log(qmax)-log(qmin))/num) ) 449 Make/O/D coef_lns_2Y = {0.1,60,0.2,1e-6,3e-6,6,10,-1,2,0.001} 450 make/O/T parameters_lns_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 451 Edit parameters_lns_2Y,coef_lns_2Y 452 453 Variable/G root:g_lns_2Y 454 g_lns_2Y := LogNormalSphere_2Y(coef_lns_2Y,ywave_lns_2Y,xwave_lns_2Y) 455 Display ywave_lns_2Y vs xwave_lns_2Y 456 ModifyGraph log=1,marker=29,msize=2,mode=4 457 Label bottom "q (A\\S-1\\M)" 458 Label left "Intensity (cm\\S-1\\M)" 459 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 460 461 AddModelToStrings("LogNormalSphere_2Y","coef_lns_2Y","parameters_lns_2Y","lns_2Y") 462 End 463 464 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 465 Proc PlotSmearedLogNormalSphere_2Y(str) 466 String str 467 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 468 469 // if any of the resolution waves are missing => abort 470 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 471 Abort 472 endif 473 474 SetDataFolder $("root:"+str) 475 476 // Setup parameter table for model function 477 Make/O/D smear_coef_lns_2Y = {0.1,60,0.2,1e-6,3e-6,6,10,-1,2,0.001} 478 make/o/t smear_parameters_lns_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 479 Edit smear_parameters_lns_2Y,smear_coef_lns_2Y 480 481 // output smeared intensity wave, dimensions are identical to experimental QSIG values 482 // make extra copy of experimental q-values for easy plotting 483 Duplicate/O $(str+"_q") smeared_lns_2Y,smeared_qvals 484 SetScale d,0,0,"1/cm",smeared_lns_2Y 485 486 Variable/G gs_lns_2Y=0 487 gs_lns_2Y := fSmearedLogNormalSphere_2Y(smear_coef_lns_2Y,smeared_lns_2Y,smeared_qvals) //this wrapper fills the STRUCT 488 489 Display smeared_lns_2Y vs smeared_qvals 490 ModifyGraph log=1,marker=29,msize=2,mode=4 491 Label bottom "q (A\\S-1\\M)" 492 Label left "Intensity (cm\\S-1\\M)" 493 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 494 495 SetDataFolder root: 496 AddModelToStrings("SmearedLogNormalSphere_2Y","smear_coef_lns_2Y","smear_parameters_lns_2Y","lns_2Y") 497 End 498 499 500 Function LogNormalSphere_2Y(w,yw,xw) : FitFunc 501 Wave w,yw,xw 502 503 Variable inten 504 505 //setup form factor coefficient wave 506 Make/O/D/N=6 form_lns_2Y 507 form_lns_2Y[0] = 1 508 form_lns_2Y[1] = w[1] 509 form_lns_2Y[2] = w[2] 510 form_lns_2Y[3] = w[3] 511 form_lns_2Y[4] = w[4] 512 form_lns_2Y[5] = 0 513 514 //calculate the diameter of the effective one-component sphere 515 Variable r3,mu,sig,diam 516 sig = w[2] //polydispersity 517 mu = ln(w[1]) //ln of mean radius 518 r3 = exp(3*mu + 9/2*sig^2) // <R^3> calculated directly for log-normal distr. 519 520 diam = 2*(r3)^(1/3) 521 522 523 //setup structure factor coefficient wave 524 Make/O/D/N=6 struct_lns_2Y 525 struct_lns_2Y[0] = w[0] 526 struct_lns_2Y[1] = diam/2 527 struct_lns_2Y[2] = w[5] 528 struct_lns_2Y[3] = w[6] 529 struct_lns_2Y[4] = w[7] 530 struct_lns_2Y[5] = w[8] 531 532 //calculate each and combine 533 Duplicate/O xw tmp_lns_2Y_PQ,tmp_lns_2Y_SQ 534 LogNormalSphere(form_lns_2Y,tmp_lns_2Y_PQ,xw) 535 TwoYukawa(struct_lns_2Y,tmp_lns_2Y_SQ,xw) 536 yw = tmp_lns_2Y_PQ *tmp_lns_2Y_SQ 537 yw *= w[0] 538 yw += w[9] 539 540 //cleanup waves 541 // Killwaves/Z form_lns_2Y,struct_lns_2Y 542 543 return (0) 544 End 545 438 546 439 547 // this is all there is to the smeared calculation! … … 473 581 // the name of your unsmeared model (AAO) is the first argument 474 582 Smear_Model_20(LogNormalSphere_SHS,s.coefW,s.xW,s.yW,s.resW) 583 584 return(0) 585 End 586 587 // this is all there is to the smeared calculation! 588 Function SmearedLogNormalSphere_2Y(s) : FitFunc 589 Struct ResSmearAAOStruct &s 590 591 // the name of your unsmeared model (AAO) is the first argument 592 Smear_Model_20(LogNormalSphere_2Y,s.coefW,s.xW,s.yW,s.resW) 475 593 476 594 return(0) … … 576 694 return (0) 577 695 End 696 697 //wrapper to calculate the smeared model as an AAO-Struct 698 // fills the struct and calls the ususal function with the STRUCT parameter 699 // 700 // used only for the dependency, not for fitting 701 // 702 Function fSmearedLogNormalSphere_2Y(coefW,yW,xW) 703 Wave coefW,yW,xW 704 705 String str = getWavesDataFolder(yW,0) 706 String DF="root:"+str+":" 707 708 WAVE resW = $(DF+str+"_res") 709 710 STRUCT ResSmearAAOStruct fs 711 WAVE fs.coefW = coefW 712 WAVE fs.yW = yW 713 WAVE fs.xW = xW 714 WAVE fs.resW = resW 715 716 Variable err 717 err = SmearedLogNormalSphere_2Y(fs) 718 719 return (0) 720 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2006/SchulzSpheres_Sq_v40.ipf
r570 r774 11 11 #include "SquareWellStruct_v40" 12 12 #include "StickyHardSphereStruct_v40" 13 #include "Two_Yukawa_v40" 14 13 15 14 16 Proc PlotSchulzSpheres_HS(num,qmin,qmax) … … 441 443 End 442 444 445 //two yukawa 446 Proc PlotSchulzSpheres_2Y(num,qmin,qmax) 447 Variable num=128,qmin=0.001,qmax=0.7 448 Prompt num "Enter number of data points for model: " 449 Prompt qmin "Enter minimum q-value (A^-1) for model: " 450 Prompt qmax "Enter maximum q-value (A^-1) for model: " 451 452 Make/O/D/N=(num) xwave_sch_2Y,ywave_sch_2Y 453 xwave_sch_2Y = alog( log(qmin) + x*((log(qmax)-log(qmin))/num) ) 454 Make/O/D coef_sch_2Y = {0.01,60,0.2,1e-6,3e-6,6,10,-1,2,0.001} 455 make/O/T parameters_sch_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 456 Edit parameters_sch_2Y,coef_sch_2Y 457 458 Variable/G root:g_sch_2Y 459 g_sch_2Y := SchulzSpheres_2Y(coef_sch_2Y,ywave_sch_2Y,xwave_sch_2Y) 460 Display ywave_sch_2Y vs xwave_sch_2Y 461 ModifyGraph log=1,marker=29,msize=2,mode=4 462 Label bottom "q (A\\S-1\\M)" 463 Label left "Intensity (cm\\S-1\\M)" 464 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 465 466 AddModelToStrings("SchulzSpheres_2Y","coef_sch_2Y","parameters_sch_2Y","sch_2Y") 467 End 468 469 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 470 Proc PlotSmearedSchulzSpheres_2Y(str) 471 String str 472 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 473 474 // if any of the resolution waves are missing => abort 475 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 476 Abort 477 endif 478 479 SetDataFolder $("root:"+str) 480 481 // Setup parameter table for model function 482 Make/O/D smear_coef_sch_2Y = {0.01,60,0.2,1e-6,3e-6,6,10,-1,2,0.001} 483 make/o/t smear_parameters_sch_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 484 Edit smear_parameters_sch_2Y,smear_coef_sch_2Y 485 486 // output smeared intensity wave, dimensions are identical to experimental QSIG values 487 // make extra copy of experimental q-values for easy plotting 488 Duplicate/O $(str+"_q") smeared_sch_2Y,smeared_qvals 489 SetScale d,0,0,"1/cm",smeared_sch_2Y 490 491 Variable/G gs_sch_2Y=0 492 gs_sch_2Y := fSmearedSchulzSpheres_2Y(smear_coef_sch_2Y,smeared_sch_2Y,smeared_qvals) //this wrapper fills the STRUCT 493 494 Display smeared_sch_2Y vs smeared_qvals 495 ModifyGraph log=1,marker=29,msize=2,mode=4 496 Label bottom "q (A\\S-1\\M)" 497 Label left "Intensity (cm\\S-1\\M)" 498 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 499 500 SetDataFolder root: 501 AddModelToStrings("SmearedSchulzSpheres_2Y","smear_coef_sch_2Y","smear_parameters_sch_2Y","sch_2Y") 502 End 503 504 505 506 Function SchulzSpheres_2Y(w,yw,xw) : FitFunc 507 Wave w,yw,xw 508 509 Variable inten 510 511 //setup form factor coefficient wave 512 Make/O/D/N=6 form_sch_2Y 513 form_sch_2Y[0] = 1 514 form_sch_2Y[1] = w[1] 515 form_sch_2Y[2] = w[2] 516 form_sch_2Y[3] = w[3] 517 form_sch_2Y[4] = w[4] 518 form_sch_2Y[5] = 0 519 520 //calculate the diameter of the effective one-component sphere 521 Variable pd,diam,zz,Vpoly,Ravg 522 pd = w[2] 523 zz = (1/pd)^2 - 1 524 Ravg = w[1] 525 526 Vpoly = 4*pi/3*(Ravg)^3*(zz+3)*(zz+2)/(zz+1)^2 527 diam = (6*Vpoly/pi)^(1/3) 528 529 530 //setup structure factor coefficient wave 531 Make/O/D/N=6 struct_sch_2Y 532 struct_sch_2Y[0] = w[0] 533 struct_sch_2Y[1] = diam/2 534 struct_sch_2Y[2] = w[5] 535 struct_sch_2Y[3] = w[6] 536 struct_sch_2Y[4] = w[7] 537 struct_sch_2Y[5] = w[8] 538 539 //calculate each and combine 540 Duplicate/O xw tmp_sch_2Y_PQ,tmp_sch_2Y_SQ 541 SchulzSpheres(form_sch_2Y,tmp_sch_2Y_PQ,xw) 542 TwoYukawa(struct_sch_2Y,tmp_sch_2Y_SQ,xw) 543 yw = tmp_sch_2Y_PQ * tmp_sch_2Y_SQ 544 yw *= w[0] 545 yw += w[9] 546 547 //cleanup waves 548 // Killwaves/Z form_sch_2Y,struct_sch_2Y 549 550 return (0) 551 End 552 443 553 444 554 … … 479 589 // the name of your unsmeared model (AAO) is the first argument 480 590 Smear_Model_20(SchulzSpheres_SHS,s.coefW,s.xW,s.yW,s.resW) 591 592 return(0) 593 End 594 595 // this is all there is to the smeared calculation! 596 Function SmearedSchulzSpheres_2Y(s) : FitFunc 597 Struct ResSmearAAOStruct &s 598 599 // the name of your unsmeared model (AAO) is the first argument 600 Smear_Model_20(SchulzSpheres_2Y,s.coefW,s.xW,s.yW,s.resW) 481 601 482 602 return(0) … … 582 702 return (0) 583 703 End 704 705 //wrapper to calculate the smeared model as an AAO-Struct 706 // fills the struct and calls the ususal function with the STRUCT parameter 707 // 708 // used only for the dependency, not for fitting 709 // 710 Function fSmearedSchulzSpheres_2Y(coefW,yW,xW) 711 Wave coefW,yW,xW 712 713 String str = getWavesDataFolder(yW,0) 714 String DF="root:"+str+":" 715 716 WAVE resW = $(DF+str+"_res") 717 718 STRUCT ResSmearAAOStruct fs 719 WAVE fs.coefW = coefW 720 WAVE fs.yW = yW 721 WAVE fs.xW = xW 722 WAVE fs.resW = resW 723 724 Variable err 725 err = SmearedSchulzSpheres_2Y(fs) 726 727 return (0) 728 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2009/FuzzySpheres_Sq_v40.ipf
r682 r774 30 30 #include "SquareWellStruct_v40" 31 31 #include "StickyHardSphereStruct_v40" 32 #include "Two_Yukawa_v40" 32 33 33 34 Proc PlotFuzzySphere_HS(num,qmin,qmax) … … 472 473 End 473 474 475 //two yukawa 476 Proc PlotFuzzySphere_2Y(num,qmin,qmax) 477 Variable num=128,qmin=0.001,qmax=0.7 478 Prompt num "Enter number of data points for model: " 479 Prompt qmin "Enter minimum q-value (A^-1) for model: " 480 Prompt qmax "Enter maximum q-value (A^-1) for model: " 481 482 Make/O/D/N=(num) xwave_fuzz_2Y,ywave_fuzz_2Y 483 xwave_fuzz_2Y = alog( log(qmin) + x*((log(qmax)-log(qmin))/num) ) 484 Make/O/D coef_fuzz_2Y = {0.01,60,0.2,10,1e-6,3e-6,1,50,6,10,-1,2,0.001} 485 make/O/T parameters_fuzz_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","interface thickness (A)","SLD sphere (A-2)","SLD solvent (A-2)","Lorentz Scale","Lorentz length","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 486 Edit parameters_fuzz_2Y,coef_fuzz_2Y 487 488 Variable/G root:g_fuzz_2Y 489 g_fuzz_2Y := FuzzySphere_2Y(coef_fuzz_2Y,ywave_fuzz_2Y,xwave_fuzz_2Y) 490 Display ywave_fuzz_2Y vs xwave_fuzz_2Y 491 ModifyGraph log=1,marker=29,msize=2,mode=4 492 Label bottom "q (A\\S-1\\M)" 493 Label left "Intensity (cm\\S-1\\M)" 494 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 495 496 AddModelToStrings("FuzzySphere_2Y","coef_fuzz_2Y","parameters_fuzz_2Y","fuzz_2Y") 497 End 498 499 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 500 Proc PlotSmearedFuzzySphere_2Y(str) 501 String str 502 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 503 504 // if any of the resolution waves are missing => abort 505 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 506 Abort 507 endif 508 509 SetDataFolder $("root:"+str) 510 511 // Setup parameter table for model function 512 Make/O/D smear_coef_fuzz_2Y = {0.01,60,0.2,10,1e-6,3e-6,1,50,6,10,-1,2,0.001} 513 make/o/t smear_parameters_fuzz_2Y = {"Volume Fraction (scale)","mean radius (A)","polydisp (sig/avg)","interface thickness (A)","SLD sphere (A-2)","SLD solvent (A-2)","Lorentz Scale","Lorentz length","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1 sr-1)"} 514 Edit smear_parameters_fuzz_2Y,smear_coef_fuzz_2Y 515 516 // output smeared intensity wave, dimensions are identical to experimental QSIG values 517 // make extra copy of experimental q-values for easy plotting 518 Duplicate/O $(str+"_q") smeared_fuzz_2Y,smeared_qvals 519 SetScale d,0,0,"1/cm",smeared_fuzz_2Y 520 521 Variable/G gs_fuzz_2Y=0 522 gs_fuzz_2Y := fSmearedFuzzySphere_2Y(smear_coef_fuzz_2Y,smeared_fuzz_2Y,smeared_qvals) //this wrapper fills the STRUCT 523 524 Display smeared_fuzz_2Y vs smeared_qvals 525 ModifyGraph log=1,marker=29,msize=2,mode=4 526 Label bottom "q (A\\S-1\\M)" 527 Label left "Intensity (cm\\S-1\\M)" 528 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 529 530 SetDataFolder root: 531 AddModelToStrings("SmearedFuzzySphere_2Y","smear_coef_fuzz_2Y","smear_parameters_fuzz_2Y","fuzz_2Y") 532 End 533 534 535 536 Function FuzzySphere_2Y(w,yw,xw) : FitFunc 537 Wave w,yw,xw 538 539 Variable inten 540 541 //setup form factor coefficient wave 542 Make/O/D/N=9 form_fuzz_2Y 543 form_fuzz_2Y[0] = w[0] // send the real volume fraction in here, so the scaling is done correctly 544 form_fuzz_2Y[1] = w[1] 545 form_fuzz_2Y[2] = w[2] 546 form_fuzz_2Y[3] = w[3] 547 form_fuzz_2Y[4] = w[4] 548 form_fuzz_2Y[5] = w[5] 549 form_fuzz_2Y[6] = w[6] // w[6] is the Lorentzian scale 550 form_fuzz_2Y[7] = w[7] 551 form_fuzz_2Y[8] = 0 552 553 //calculate the diameter of the effective one-component sphere 554 Variable pd,diam,Vpoly,Ravg 555 pd = w[2] 556 Ravg = w[1] 557 558 Vpoly = (4*pi/3*Ravg^3)*(1+3*pd^2) 559 diam = (6*Vpoly/pi)^(1/3) 560 561 562 //setup structure factor coefficient wave 563 Make/O/D/N=6 struct_fuzz_2Y 564 struct_fuzz_2Y[0] = w[0] 565 struct_fuzz_2Y[1] = diam/2 566 struct_fuzz_2Y[2] = w[8] 567 struct_fuzz_2Y[3] = w[9] 568 struct_fuzz_2Y[4] = w[10] 569 struct_fuzz_2Y[5] = w[11] 570 571 //calculate each and combine 572 Duplicate/O xw tmp_fuzz_2Y_PQ,tmp_fuzz_2Y_SQ 573 FuzzySpheres(form_fuzz_2Y,tmp_fuzz_2Y_PQ,xw) 574 575 TwoYukawa(struct_fuzz_2Y,tmp_fuzz_2Y_SQ,xw) 576 yw = tmp_fuzz_2Y_PQ * tmp_fuzz_2Y_SQ 577 578 // yw *= w[0] // scaling is done in FuzzySpheres 579 yw += w[12] 580 581 //cleanup waves 582 // Killwaves/Z form_fuzz_2Y,struct_fuzz_2Y 583 584 return (0) 585 End 474 586 475 587 … … 510 622 // the name of your unsmeared model (AAO) is the first argument 511 623 Smear_Model_20(FuzzySphere_SHS,s.coefW,s.xW,s.yW,s.resW) 624 625 return(0) 626 End 627 628 // this is all there is to the smeared calculation! 629 Function SmearedFuzzySphere_2Y(s) : FitFunc 630 Struct ResSmearAAOStruct &s 631 632 // the name of your unsmeared model (AAO) is the first argument 633 Smear_Model_20(FuzzySphere_2Y,s.coefW,s.xW,s.yW,s.resW) 512 634 513 635 return(0) … … 613 735 return (0) 614 736 End 737 738 //wrapper to calculate the smeared model as an AAO-Struct 739 // fills the struct and calls the ususal function with the STRUCT parameter 740 // 741 // used only for the dependency, not for fitting 742 // 743 Function fSmearedFuzzySphere_2Y(coefW,yW,xW) 744 Wave coefW,yW,xW 745 746 String str = getWavesDataFolder(yW,0) 747 String DF="root:"+str+":" 748 749 WAVE resW = $(DF+str+"_res") 750 751 STRUCT ResSmearAAOStruct fs 752 WAVE fs.coefW = coefW 753 WAVE fs.yW = yW 754 WAVE fs.xW = xW 755 WAVE fs.resW = resW 756 757 Variable err 758 err = SmearedFuzzySphere_2Y(fs) 759 760 return (0) 761 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2010/Raspberry_v40.ipf
r772 r774 10 10 // Default parameters are for a 5000A hexadecane drop stabilized by 100A silica particles 11 11 // in D2O. The particles are 50% inserted into the interface (delta = 0) and surface coverage is 50% 12 // 13 // -- bumped the smearing calculation to use 76 points, since the model is often used with a very 14 // large radius of the "large" sphere, causing unsightly oscillations at low Q. Polydispersity 15 // of the large sphere takes care of this too. 16 // 12 17 //////////////////////////////////////////////////// 13 18 … … 313 318 314 319 // the name of your unsmeared model (AAO) is the first argument 315 Smear_Model_ 20(Raspberry,s.coefW,s.xW,s.yW,s.resW)320 Smear_Model_76(Raspberry,s.coefW,s.xW,s.yW,s.resW) 316 321 317 322 return(0) -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/OblateCoreShell_Sq_v40.ipf
r570 r774 11 11 #include "SquareWellStruct_v40" 12 12 #include "StickyHardSphereStruct_v40" 13 #include "Two_Yukawa_v40" 13 14 14 15 Proc PlotOblate_HS(num,qmin,qmax) … … 427 428 End 428 429 430 //two yukawa 431 Proc PlotOblate_2Y(num,qmin,qmax) 432 Variable num=128,qmin=0.001,qmax=0.7 433 Prompt num "Enter number of data points for model: " 434 Prompt qmin "Enter minimum q-value (A^-1) for model: " 435 Prompt qmax "Enter maximum q-value (A^-1) for model: " 436 437 Make/O/D/n=(num) xwave_OEF_2Y,ywave_OEF_2Y 438 xwave_OEF_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 439 Make/O/D coef_OEF_2Y = {0.01,100,50,110,60,1e-6,2e-6,6.3e-6,6,10,-1,2,0.0001} 440 make/o/t parameters_OEF_2Y = {"volume fraction","major core radius (A)","minor core radius (A)","major shell radius (A)","minor shell radius (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 441 Edit parameters_OEF_2Y,coef_OEF_2Y 442 443 Variable/G root:g_OEF_2Y 444 g_OEF_2Y := Oblate_2Y(coef_OEF_2Y,ywave_OEF_2Y,xwave_OEF_2Y) 445 Display ywave_OEF_2Y vs xwave_OEF_2Y 446 ModifyGraph log=1,marker=29,msize=2,mode=4 447 Label bottom "q (A\\S-1\\M)" 448 Label left "Intensity (cm\\S-1\\M)" 449 450 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 451 452 AddModelToStrings("Oblate_2Y","coef_OEF_2Y","parameters_OEF_2Y","OEF_2Y") 453 End 454 455 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 456 Proc PlotSmearedOblate_2Y(str) 457 String str 458 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 459 460 // if any of the resolution waves are missing => abort 461 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 462 Abort 463 endif 464 465 SetDataFolder $("root:"+str) 466 467 // Setup parameter table for model function 468 Make/O/D smear_coef_OEF_2Y = {0.01,100,50,110,60,1e-6,2e-6,6.3e-6,6,10,-1,2,0.0001} 469 make/o/t smear_parameters_OEF_2Y = {"volume fraction","major core radius (A)","minor core radius (A)","major shell radius (A)","minor shell radius (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 470 Edit smear_parameters_OEF_2Y,smear_coef_OEF_2Y 471 472 // output smeared intensity wave, dimensions are identical to experimental QSIG values 473 // make extra copy of experimental q-values for easy plotting 474 Duplicate/O $(str+"_q") smeared_OEF_2Y,smeared_qvals 475 SetScale d,0,0,"1/cm",smeared_OEF_2Y 476 477 Variable/G gs_OEF_2Y=0 478 gs_OEF_2Y := fSmearedOblate_2Y(smear_coef_OEF_2Y,smeared_OEF_2Y,smeared_qvals) //this wrapper fills the STRUCT 479 480 Display smeared_OEF_2Y vs smeared_qvals 481 ModifyGraph log=1,marker=29,msize=2,mode=4 482 Label bottom "q (A\\S-1\\M)" 483 Label left "Intensity (cm\\S-1\\M)" 484 485 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 486 487 SetDataFolder root: 488 AddModelToStrings("SmearedOblate_2Y","smear_coef_OEF_2Y","smear_parameters_OEF_2Y","OEF_2Y") 489 End 490 491 492 Function Oblate_2Y(w,yw,xw) : FitFunc 493 Wave w,yw,xw 494 495 Variable inten,Ras,Rbs 496 Ras = w[4] //Ras is the rotation axis, the minor axis for an oblate ellipsoid 497 Rbs = w[3] 498 499 //setup form factor coefficient wave 500 Make/O/D/N=9 form_OEF_2Y 501 form_OEF_2Y[0] = 1 502 form_OEF_2Y[1] = w[1] 503 form_OEF_2Y[2] = w[2] 504 form_OEF_2Y[3] = w[3] 505 form_OEF_2Y[4] = w[4] 506 form_OEF_2Y[5] = w[5] 507 form_OEF_2Y[6] = w[6] 508 form_OEF_2Y[7] = w[7] 509 form_OEF_2Y[8] = 0 510 511 //setup structure factor coefficient wave 512 Make/O/D/N=6 struct_OEF_2Y 513 struct_OEF_2Y[0] = w[0] 514 struct_OEF_2Y[1] = 0.5*DiamEllip(Ras,Rbs) 515 struct_OEF_2Y[2] = w[8] 516 struct_OEF_2Y[3] = w[9] 517 struct_OEF_2Y[4] = w[10] 518 struct_OEF_2Y[5] = w[11] 519 520 //calculate each and combine 521 Duplicate/O xw temp_OEF_2Y_PQ,temp_OEF_2Y_SQ //make waves for the AAO 522 OblateForm(form_OEF_2Y,temp_OEF_2Y_PQ,xw) 523 TwoYukawa(struct_OEF_2Y,temp_OEF_2Y_SQ,xw) 524 yw = temp_OEF_2Y_PQ * temp_OEF_2Y_SQ 525 yw *= w[0] 526 yw += w[12] 527 528 //cleanup waves 529 // Killwaves/Z form_OEF_2Y,struct_OEF_2Y 530 531 return (0) 532 End 429 533 430 534 // this is all there is to the smeared calculation! … … 464 568 // the name of your unsmeared model is the first argument 465 569 Smear_Model_20(Oblate_SHS,s.coefW,s.xW,s.yW,s.resW) 570 571 return(0) 572 End 573 574 // this is all there is to the smeared calculation! 575 Function SmearedOblate_2Y(s) :FitFunc 576 Struct ResSmearAAOStruct &s 577 578 // the name of your unsmeared model is the first argument 579 Smear_Model_20(Oblate_2Y,s.coefW,s.xW,s.yW,s.resW) 466 580 467 581 return(0) … … 567 681 return (0) 568 682 End 683 684 //wrapper to calculate the smeared model as an AAO-Struct 685 // fills the struct and calls the ususal function with the STRUCT parameter 686 // 687 // used only for the dependency, not for fitting 688 // 689 Function fSmearedOblate_2Y(coefW,yW,xW) 690 Wave coefW,yW,xW 691 692 String str = getWavesDataFolder(yW,0) 693 String DF="root:"+str+":" 694 695 WAVE resW = $(DF+str+"_res") 696 697 STRUCT ResSmearAAOStruct fs 698 WAVE fs.coefW = coefW 699 WAVE fs.yW = yW 700 WAVE fs.xW = xW 701 WAVE fs.resW = resW 702 703 Variable err 704 err = SmearedOblate_2Y(fs) 705 706 return (0) 707 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/PolyCoreShellRatio_Sq_v40.ipf
r570 r774 10 10 #include "SquareWellStruct_v40" 11 11 #include "StickyHardSphereStruct_v40" 12 #include "Two_Yukawa_v40" 12 13 13 14 Proc PlotPolyCSRatio_HS(num,qmin,qmax) … … 457 458 End 458 459 460 // two yukawa 461 Proc PlotPolyCSRatio_2Y(num,qmin,qmax) 462 Variable num=256,qmin=0.001,qmax=0.7 463 Prompt num "Enter number of data points for model: " 464 Prompt qmin "Enter minimum q-value (A^-1) for model: " 465 Prompt qmax "Enter maximum q-value (A^-1) for model: " 466 467 Make/O/D/n=(num) xwave_PCR_2Y,ywave_PCR_2Y 468 xwave_PCR_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 469 Make/O/D coef_PCR_2Y = {0.1,60,10,0.1,1e-6,2e-6,6e-6,6,10,-1,2,0.0001} 470 make/o/t parameters_PCR_2Y = {"volume fraction","avg radius (A)","avg shell thickness (A)","overall polydispersity","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 471 Edit/K=1 parameters_PCR_2Y,coef_PCR_2Y 472 473 Variable/G root:g_PCR_2Y 474 g_PCR_2Y := PolyCSRatio_2Y(coef_PCR_2Y,ywave_PCR_2Y,xwave_PCR_2Y) 475 Display/K=1 ywave_PCR_2Y vs xwave_PCR_2Y 476 ModifyGraph log=1,marker=29,msize=2,mode=4 477 Label bottom "q (A\\S-1\\M)" 478 Label left "Intensity (cm\\S-1\\M)" 479 480 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 481 482 AddModelToStrings("PolyCSRatio_2Y","coef_PCR_2Y","parameters_PCR_2Y","PCR_2Y") 483 End 484 485 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 486 Proc PlotSmearedPolyCSRatio_2Y(str) 487 String str 488 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 489 490 // if any of the resolution waves are missing => abort 491 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 492 Abort 493 endif 494 495 SetDataFolder $("root:"+str) 496 497 // Setup parameter table for model function 498 Make/O/D smear_coef_PCR_2Y = {0.1,60,10,0.1,1e-6,2e-6,6e-6,6,10,-1,2,0.0001} 499 make/o/t smear_parameters_PCR_2Y = {"volume fraction","avg radius (A)","avg shell thickness (A)","overall polydispersity","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 500 Edit smear_parameters_PCR_2Y,smear_coef_PCR_2Y 501 502 // output smeared intensity wave, dimensions are identical to experimental QSIG values 503 // make extra copy of experimental q-values for easy plotting 504 Duplicate/O $(str+"_q") smeared_PCR_2Y,smeared_qvals 505 SetScale d,0,0,"1/cm",smeared_PCR_2Y 506 507 Variable/G gs_PCR_2Y=0 508 gs_PCR_2Y := fSmearedPolyCSRatio_2Y(smear_coef_PCR_2Y,smeared_PCR_2Y,smeared_qvals) //this wrapper fills the STRUCT 509 510 Display smeared_PCR_2Y vs smeared_qvals 511 ModifyGraph log=1,marker=29,msize=2,mode=4 512 Label bottom "q (A\\S-1\\M)" 513 Label left "Intensity (cm\\S-1\\M)" 514 515 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 516 517 SetDataFolder root: 518 AddModelToStrings("SmearedPolyCSRatio_2Y","smear_coef_PCR_2Y","smear_parameters_PCR_2Y","PCR_2Y") 519 End 520 521 522 Function PolyCSRatio_2Y(w,yw,xw) : FitFunc 523 Wave w,yw,xw 524 525 Variable inten 526 527 //setup form factor coefficient wave 528 Make/O/D/N=8 form_PCR_2Y 529 form_PCR_2Y[0] = 1 530 form_PCR_2Y[1] = w[1] 531 form_PCR_2Y[2] = w[2] 532 form_PCR_2Y[3] = w[3] 533 form_PCR_2Y[4] = w[4] 534 form_PCR_2Y[5] = w[5] 535 form_PCR_2Y[6] = w[6] 536 form_PCR_2Y[7] = 0 537 538 //calculate the diameter of the effective one-component sphere 539 Variable pd,diam,zz,Vpoly,Ravg,thick 540 pd = w[3] 541 zz = (1/pd)^2 - 1 542 Ravg = w[1] 543 thick = w[2] 544 545 Vpoly = 4*pi/3*(Ravg+thick)^3*(zz+3)*(zz+2)/(zz+1)^2 546 diam = (6*Vpoly/pi)^(1/3) 547 548 //setup structure factor coefficient wave 549 Make/O/D/N=6 struct_PCR_2Y 550 struct_PCR_2Y[0] = w[0] 551 struct_PCR_2Y[1] = diam/2 552 struct_PCR_2Y[2] = w[7] 553 struct_PCR_2Y[3] = w[8] 554 struct_PCR_2Y[4] = w[9] 555 struct_PCR_2Y[5] = w[10] 556 557 //calculate each and combine 558 Duplicate/O xw temp_PCR_2Y_PQ,temp_PCR_2Y_SQ //make waves for the AAO 559 PolyCoreShellRatio(form_PCR_2Y,temp_PCR_2Y_PQ,xw) 560 TwoYukawa(struct_PCR_2Y,temp_PCR_2Y_SQ,xw) 561 yw = temp_PCR_2Y_PQ * temp_PCR_2Y_SQ 562 yw *= w[0] 563 yw += w[11] 564 565 //cleanup waves 566 // Killwaves/Z form_PCR_2Y,struct_PCR_2Y 567 568 return (0) 569 End 459 570 460 571 … … 495 606 // the name of your unsmeared model is the first argument 496 607 Smear_Model_20(PolyCSRatio_SHS,s.coefW,s.xW,s.yW,s.resW) 608 609 return(0) 610 End 611 612 // this is all there is to the smeared calculation! 613 Function SmearedPolyCSRatio_2Y(s) :FitFunc 614 Struct ResSmearAAOStruct &s 615 616 // the name of your unsmeared model is the first argument 617 Smear_Model_20(PolyCSRatio_2Y,s.coefW,s.xW,s.yW,s.resW) 497 618 498 619 return(0) … … 598 719 return (0) 599 720 End 721 722 //wrapper to calculate the smeared model as an AAO-Struct 723 // fills the struct and calls the ususal function with the STRUCT parameter 724 // 725 // used only for the dependency, not for fitting 726 // 727 Function fSmearedPolyCSRatio_2Y(coefW,yW,xW) 728 Wave coefW,yW,xW 729 730 String str = getWavesDataFolder(yW,0) 731 String DF="root:"+str+":" 732 733 WAVE resW = $(DF+str+"_res") 734 735 STRUCT ResSmearAAOStruct fs 736 WAVE fs.coefW = coefW 737 WAVE fs.yW = yW 738 WAVE fs.xW = xW 739 WAVE fs.resW = resW 740 741 Variable err 742 err = SmearedPolyCSRatio_2Y(fs) 743 744 return (0) 745 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/PolyCore_Sq_v40.ipf
r570 r774 11 11 #include "SquareWellStruct_v40" 12 12 #include "StickyHardSphereStruct_v40" 13 #include "Two_Yukawa_v40" 13 14 14 15 Proc PlotPolyCore_HS(num,qmin,qmax) … … 458 459 End 459 460 461 // two yukawa 462 Proc PlotPolyCore_2Y(num,qmin,qmax) 463 Variable num=256,qmin=0.001,qmax=0.7 464 Prompt num "Enter number of data points for model: " 465 Prompt qmin "Enter minimum q-value (A^-1) for model: " 466 Prompt qmax "Enter maximum q-value (A^-1) for model: " 467 468 Make/O/D/n=(num) xwave_PCF_2Y,ywave_PCF_2Y 469 xwave_PCF_2Y = alog( log(qmin) + x*((log(qmax)-log(qmin))/num) ) 470 Make/O/D coef_PCF_2Y = {0.1,60,.2,10,1e-6,2e-6,3e-6,6,10,-1,2,0.0001} 471 make/o/t parameters_PCF_2Y = {"volume fraction","avg core rad (A)","core polydisp (0,1)","shell thickness (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 472 Edit/K=1 parameters_PCF_2Y,coef_PCF_2Y 473 Variable/G root:g_PCF_2Y 474 g_PCF_2Y := PolyCore_2Y(coef_PCF_2Y,ywave_PCF_2Y,xwave_PCF_2Y) 475 // ywave_PCF_2Y := PolyCore_2Y(coef_PCF_2Y,xwave_PCF_2Y) 476 Display/K=1 ywave_PCF_2Y vs xwave_PCF_2Y 477 ModifyGraph log=1,marker=29,msize=2,mode=4 478 Label bottom "q (A\\S-1\\M)" 479 Label left "Intensity (cm\\S-1\\M)" 480 481 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 482 483 AddModelToStrings("PolyCore_2Y","coef_PCF_2Y","parameters_PCF_2Y","PCF_2Y") 484 End 485 486 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 487 Proc PlotSmearedPolyCore_2Y(str) 488 String str 489 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 490 491 // if any of the resolution waves are missing => abort 492 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 493 Abort 494 endif 495 496 SetDataFolder $("root:"+str) 497 498 // Setup parameter table for model function 499 Make/O/D smear_coef_PCF_2Y = {0.1,60,.2,10,1e-6,2e-6,3e-6,6,10,-1,2,0.0001} 500 make/o/t smear_parameters_PCF_2Y = {"volume fraction","avg core rad (A)","core polydisp (0,1)","shell thickness (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 501 Edit smear_parameters_PCF_2Y,smear_coef_PCF_2Y 502 503 // output smeared intensity wave, dimensions are identical to experimental QSIG values 504 // make extra copy of experimental q-values for easy plotting 505 Duplicate/O $(str+"_q") smeared_PCF_2Y,smeared_qvals 506 SetScale d,0,0,"1/cm",smeared_PCF_2Y 507 508 Variable/G gs_PCF_2Y=0 509 gs_PCF_2Y := fSmearedPolyCore_2Y(smear_coef_PCF_2Y,smeared_PCF_2Y,smeared_qvals) //this wrapper fills the STRUCT 510 511 Display smeared_PCF_2Y vs smeared_qvals 512 ModifyGraph log=1,marker=29,msize=2,mode=4 513 Label bottom "q (A\\S-1\\M)" 514 Label left "Intensity (cm\\S-1\\M)" 515 516 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 517 518 SetDataFolder root: 519 AddModelToStrings("SmearedPolyCore_2Y","smear_coef_PCF_2Y","smear_parameters_PCF_2Y","PCF_2Y") 520 End 521 522 523 //AAO function 524 Function PolyCore_2Y(w,yw,xw) : FitFunc 525 Wave w,yw,xw 526 527 //setup form factor coefficient wave 528 Make/O/D/N=8 form_PCF_2Y 529 form_PCF_2Y[0] = 1 530 form_PCF_2Y[1] = w[1] 531 form_PCF_2Y[2] = w[2] 532 form_PCF_2Y[3] = w[3] 533 form_PCF_2Y[4] = w[4] 534 form_PCF_2Y[5] = w[5] 535 form_PCF_2Y[6] = w[6] 536 form_PCF_2Y[7] = 0 537 538 //calculate the diameter of the effective one-component sphere 539 Variable pd,diam,zz,Vpoly,Ravg,thick 540 pd = w[2] 541 zz = (1/pd)^2 - 1 542 Ravg = w[1] 543 thick = w[3] 544 545 Vpoly = 4*pi/3*(Ravg+thick)^3*(zz+3)*(zz+2)/(zz+1)^2 546 diam = (6*Vpoly/pi)^(1/3) 547 548 549 //setup structure factor coefficient wave 550 Make/O/D/N=6 struct_PCF_2Y 551 struct_PCF_2Y[0] = w[0] 552 struct_PCF_2Y[1] = diam/2 553 struct_PCF_2Y[2] = w[7] 554 struct_PCF_2Y[3] = w[8] 555 struct_PCF_2Y[4] = w[9] 556 struct_PCF_2Y[5] = w[10] 557 558 //calculate each and combine 559 Duplicate/O xw temp_PCF_2Y_PQ,temp_PCF_2Y_SQ //make waves for the AAO 560 PolyCoreForm(form_PCF_2Y,temp_PCF_2Y_PQ,xw) 561 TwoYukawa(struct_PCF_2Y,temp_PCF_2Y_SQ,xw) 562 yw = temp_PCF_2Y_PQ*temp_PCF_2Y_SQ 563 yw *= w[0] 564 yw += w[11] 565 566 //cleanup waves 567 // Killwaves/Z form_PCF_2Y,struct_PCF_2Y 568 569 return (0) 570 End 460 571 461 572 // this is all there is to the smeared calculation! … … 495 606 // the name of your unsmeared model is the first argument 496 607 Smear_Model_20(PolyCore_SHS,s.coefW,s.xW,s.yW,s.resW) 608 609 return(0) 610 End 611 612 // this is all there is to the smeared calculation! 613 Function SmearedPolyCore_2Y(s) :FitFunc 614 Struct ResSmearAAOStruct &s 615 616 // the name of your unsmeared model is the first argument 617 Smear_Model_20(PolyCore_2Y,s.coefW,s.xW,s.yW,s.resW) 497 618 498 619 return(0) … … 598 719 return (0) 599 720 End 721 722 //wrapper to calculate the smeared model as an AAO-Struct 723 // fills the struct and calls the ususal function with the STRUCT parameter 724 // 725 // used only for the dependency, not for fitting 726 // 727 Function fSmearedPolyCore_2Y(coefW,yW,xW) 728 Wave coefW,yW,xW 729 730 String str = getWavesDataFolder(yW,0) 731 String DF="root:"+str+":" 732 733 WAVE resW = $(DF+str+"_res") 734 735 STRUCT ResSmearAAOStruct fs 736 WAVE fs.coefW = coefW 737 WAVE fs.yW = yW 738 WAVE fs.xW = xW 739 WAVE fs.resW = resW 740 741 Variable err 742 err = SmearedPolyCore_2Y(fs) 743 744 return (0) 745 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/PolyRectSphere_Sq_v40.ipf
r570 r774 10 10 #include "SquareWellStruct_v40" 11 11 #include "StickyHardSphereStruct_v40" 12 #include "Two_Yukawa_v40" 12 13 13 14 Proc PlotPolyRectSphere_HS(num,qmin,qmax) … … 445 446 End 446 447 448 //two yukawa 449 Proc PlotPolyRectSphere_2Y(num,qmin,qmax) 450 Variable num=256,qmin=0.001,qmax=0.7 451 Prompt num "Enter number of data points for model: " 452 Prompt qmin "Enter minimum q-value (A^-1) for model: " 453 Prompt qmax "Enter maximum q-value (A^-1) for model: " 454 455 Make/O/D/n=(num) xwave_RECT_2Y,ywave_RECT_2Y 456 xwave_RECT_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 457 Make/O/D coef_RECT_2Y = {0.1,60,0.1,1e-6,6.3e-6,6,10,-1,2,0.0001} 458 make/o/t parameters_RECT_2Y = {"volume fraction","avg radius (A)","polydispersity","SLD sphere (A^-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 459 Edit/K=1 parameters_RECT_2Y,coef_RECT_2Y 460 461 Variable/G root:g_RECT_2Y 462 g_RECT_2Y := PolyRectSphere_2Y(coef_RECT_2Y,ywave_RECT_2Y,xwave_RECT_2Y) 463 Display/K=1 ywave_RECT_2Y vs xwave_RECT_2Y 464 ModifyGraph log=1,marker=29,msize=2,mode=4 465 Label bottom "q (A\\S-1\\M)" 466 Label left "Intensity (cm\\S-1\\M)" 467 468 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 469 470 AddModelToStrings("PolyRectSphere_2Y","coef_RECT_2Y","parameters_RECT_2Y","RECT_2Y") 471 End 472 473 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 474 Proc PlotSmearedPolyRectSphere_2Y(str) 475 String str 476 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 477 478 // if any of the resolution waves are missing => abort 479 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 480 Abort 481 endif 482 483 SetDataFolder $("root:"+str) 484 485 // Setup parameter table for model function 486 Make/O/D smear_coef_RECT_2Y = {0.1,60,0.1,1e-6,6.3e-6,6,10,-1,2,0.0001} 487 make/o/t smear_parameters_RECT_2Y = {"volume fraction","avg radius (A)","polydispersity","SLD sphere (A^-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 488 Edit smear_parameters_RECT_2Y,smear_coef_RECT_2Y 489 490 // output smeared intensity wave, dimensions are identical to experimental QSIG values 491 // make extra copy of experimental q-values for easy plotting 492 Duplicate/O $(str+"_q") smeared_RECT_2Y,smeared_qvals 493 SetScale d,0,0,"1/cm",smeared_RECT_2Y 494 495 Variable/G gs_RECT_2Y=0 496 gs_RECT_2Y := fSmearedPolyRectSphere_2Y(smear_coef_RECT_2Y,smeared_RECT_2Y,smeared_qvals) //this wrapper fills the STRUCT 497 498 Display smeared_RECT_2Y vs smeared_qvals 499 ModifyGraph log=1,marker=29,msize=2,mode=4 500 Label bottom "q (A\\S-1\\M)" 501 Label left "Intensity (cm\\S-1\\M)" 502 503 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 504 505 SetDataFolder root: 506 AddModelToStrings("SmearedPolyRectSphere_2Y","smear_coef_RECT_2Y","smear_parameters_RECT_2Y","RECT_2Y") 507 End 508 509 510 Function PolyRectSphere_2Y(w,yw,xw) : FitFunc 511 Wave w,yw,xw 512 513 Variable inten 514 515 //setup form factor coefficient wave 516 Make/O/D/N=6 form_RECT_2Y 517 form_RECT_2Y[0] = 1 518 form_RECT_2Y[1] = w[1] 519 form_RECT_2Y[2] = w[2] 520 form_RECT_2Y[3] = w[3] 521 form_RECT_2Y[4] = w[4] 522 form_RECT_2Y[5] = 0 523 524 //calculate the diameter of the effective one-component sphere 525 Variable pd,diam,zz,Vpoly,Ravg 526 pd = w[2] 527 zz = (1/pd)^2 - 1 528 Ravg = w[1] // <R^3> = Ravg^3*(1+3*pd^2) 529 530 Vpoly = 4*pi/3*Ravg^3*(1+3*pd^2) 531 diam = (6*Vpoly/pi)^(1/3) 532 533 //setup structure factor coefficient wave 534 Make/O/D/N=6 struct_RECT_2Y 535 struct_RECT_2Y[0] = w[0] 536 struct_RECT_2Y[1] = diam/2 537 struct_RECT_2Y[2] = w[5] 538 struct_RECT_2Y[3] = w[6] 539 struct_RECT_2Y[4] = w[7] 540 struct_RECT_2Y[5] = w[8] 541 542 //calculate each and combine 543 Duplicate/O xw temp_RECT_2Y_PQ,temp_RECT_2Y_SQ //make waves for the AAO 544 PolyRectSpheres(form_RECT_2Y,temp_RECT_2Y_PQ,xw) 545 TwoYukawa(struct_RECT_2Y,temp_RECT_2Y_SQ,xw) 546 yw = temp_RECT_2Y_PQ * temp_RECT_2Y_SQ 547 yw *= w[0] 548 yw += w[9] 549 550 //cleanup waves 551 // Killwaves/Z form_RECT_2Y,struct_RECT_2Y 552 553 return (0) 554 End 447 555 448 556 … … 486 594 return(0) 487 595 End 596 597 // this is all there is to the smeared calculation! 598 Function SmearedPolyRectSphere_2Y(s) :FitFunc 599 Struct ResSmearAAOStruct &s 600 601 // the name of your unsmeared model is the first argument 602 Smear_Model_20(PolyRectSphere_2Y,s.coefW,s.xW,s.yW,s.resW) 603 604 return(0) 605 End 606 488 607 489 608 //wrapper to calculate the smeared model as an AAO-Struct … … 586 705 return (0) 587 706 End 707 708 //wrapper to calculate the smeared model as an AAO-Struct 709 // fills the struct and calls the ususal function with the STRUCT parameter 710 // 711 // used only for the dependency, not for fitting 712 // 713 Function fSmearedPolyRectSphere_2Y(coefW,yW,xW) 714 Wave coefW,yW,xW 715 716 String str = getWavesDataFolder(yW,0) 717 String DF="root:"+str+":" 718 719 WAVE resW = $(DF+str+"_res") 720 721 STRUCT ResSmearAAOStruct fs 722 WAVE fs.coefW = coefW 723 WAVE fs.yW = yW 724 WAVE fs.xW = xW 725 WAVE fs.resW = resW 726 727 Variable err 728 err = SmearedPolyRectSphere_2Y(fs) 729 730 return (0) 731 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/ProlateCoreShell_Sq_v40.ipf
r570 r774 10 10 #include "SquareWellStruct_v40" 11 11 #include "StickyHardSphereStruct_v40" 12 #include "Two_Yukawa_v40" 12 13 13 14 Proc PlotProlate_HS(num,qmin,qmax) … … 426 427 End 427 428 429 // two yukawa 430 Proc PlotProlate_2Y(num,qmin,qmax) 431 Variable num=128,qmin=0.001,qmax=0.7 432 Prompt num "Enter number of data points for model: " 433 Prompt qmin "Enter minimum q-value (A^-1) for model: " 434 Prompt qmax "Enter maximum q-value (A^-1) for model: " 435 436 Make/O/D/n=(num) xwave_PEF_2Y,ywave_PEF_2Y 437 xwave_PEF_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 438 Make/O/D coef_PEF_2Y = {0.01,100,50,110,60,1e-6,2e-6,6.3e-6,6,10,-1,2,0.0001} 439 make/o/t parameters_PEF_2Y = {"volume fraction","major core radius (A)","minor core radius (A)","major shell radius (A)","minor shell radius (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 440 Edit parameters_PEF_2Y,coef_PEF_2Y 441 442 Variable/G root:g_PEF_2Y 443 g_PEF_2Y := Prolate_2Y(coef_PEF_2Y,ywave_PEF_2Y,xwave_PEF_2Y) 444 Display ywave_PEF_2Y vs xwave_PEF_2Y 445 ModifyGraph log=1,marker=29,msize=2,mode=4 446 Label bottom "q (A\\S-1\\M)" 447 Label left "Intensity (cm\\S-1\\M)" 448 449 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 450 451 AddModelToStrings("Prolate_2Y","coef_PEF_2Y","parameters_PEF_2Y","PEF_2Y") 452 End 453 454 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 455 Proc PlotSmearedProlate_2Y(str) 456 String str 457 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 458 459 // if any of the resolution waves are missing => abort 460 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 461 Abort 462 endif 463 464 SetDataFolder $("root:"+str) 465 466 // Setup parameter table for model function 467 Make/O/D smear_coef_PEF_2Y = {0.01,100,50,110,60,1e-6,2e-6,6.3e-6,6,10,-1,2,0.0001} 468 make/o/t smear_parameters_PEF_2Y = {"volume fraction","major core radius (A)","minor core radius (A)","major shell radius (A)","minor shell radius (A)","SLD core (A-2)","SLD shell (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkg (cm-1)"} 469 Edit smear_parameters_PEF_2Y,smear_coef_PEF_2Y 470 471 // output smeared intensity wave, dimensions are identical to experimental QSIG values 472 // make extra copy of experimental q-values for easy plotting 473 Duplicate/O $(str+"_q") smeared_PEF_2Y,smeared_qvals 474 SetScale d,0,0,"1/cm",smeared_PEF_2Y 475 476 Variable/G gs_PEF_2Y=0 477 gs_PEF_2Y := fSmearedProlate_2Y(smear_coef_PEF_2Y,smeared_PEF_2Y,smeared_qvals) //this wrapper fills the STRUCT 478 479 Display smeared_PEF_2Y vs smeared_qvals 480 ModifyGraph log=1,marker=29,msize=2,mode=4 481 Label bottom "q (A\\S-1\\M)" 482 Label left "Intensity (cm\\S-1\\M)" 483 484 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 485 486 SetDataFolder root: 487 AddModelToStrings("SmearedProlate_2Y","smear_coef_PEF_2Y","smear_parameters_PEF_2Y","PEF_2Y") 488 End 489 490 491 Function Prolate_2Y(w,yw,xw) : FitFunc 492 Wave w,yw,xw 493 494 Variable inten,Ras,Rbs 495 Ras = w[3] //Ras is the rotation axis 496 Rbs = w[4] 497 498 //setup form factor coefficient wave 499 Make/O/D/N=9 form_PEF_2Y 500 form_PEF_2Y[0] = 1 501 form_PEF_2Y[1] = w[1] 502 form_PEF_2Y[2] = w[2] 503 form_PEF_2Y[3] = w[3] 504 form_PEF_2Y[4] = w[4] 505 form_PEF_2Y[5] = w[5] 506 form_PEF_2Y[6] = w[6] 507 form_PEF_2Y[7] = w[7] 508 form_PEF_2Y[8] = 0 509 510 //setup structure factor coefficient wave 511 Make/O/D/N=6 struct_PEF_2Y 512 struct_PEF_2Y[0] = w[0] 513 struct_PEF_2Y[1] = 0.5*DiamEllip(Ras,Rbs) 514 struct_PEF_2Y[2] = w[8] 515 struct_PEF_2Y[3] = w[9] 516 struct_PEF_2Y[4] = w[10] 517 struct_PEF_2Y[5] = w[11] 518 519 //calculate each and combine 520 Duplicate/O xw temp_PEF_2Y_PQ,temp_PEF_2Y_SQ //make waves for the AAO 521 ProlateForm(form_PEF_2Y,temp_PEF_2Y_PQ,xw) 522 TwoYukawa(struct_PEF_2Y,temp_PEF_2Y_SQ,xw) 523 yw = temp_PEF_2Y_PQ *temp_PEF_2Y_SQ 524 yw *= w[0] 525 yw += w[12] 526 527 //cleanup waves 528 // Killwaves/Z form_PEF_2Y,struct_PEF_2Y 529 530 return (yw) 531 End 428 532 429 533 // this is all there is to the smeared calculation! … … 463 567 // the name of your unsmeared model is the first argument 464 568 Smear_Model_20(Prolate_SHS,s.coefW,s.xW,s.yW,s.resW) 569 570 return(0) 571 End 572 573 // this is all there is to the smeared calculation! 574 Function SmearedProlate_2Y(s) :FitFunc 575 Struct ResSmearAAOStruct &s 576 577 // the name of your unsmeared model is the first argument 578 Smear_Model_20(Prolate_2Y,s.coefW,s.xW,s.yW,s.resW) 465 579 466 580 return(0) … … 566 680 return (0) 567 681 End 682 683 //wrapper to calculate the smeared model as an AAO-Struct 684 // fills the struct and calls the ususal function with the STRUCT parameter 685 // 686 // used only for the dependency, not for fitting 687 // 688 Function fSmearedProlate_2Y(coefW,yW,xW) 689 Wave coefW,yW,xW 690 691 String str = getWavesDataFolder(yW,0) 692 String DF="root:"+str+":" 693 694 WAVE resW = $(DF+str+"_res") 695 696 STRUCT ResSmearAAOStruct fs 697 WAVE fs.coefW = coefW 698 WAVE fs.yW = yW 699 WAVE fs.xW = xW 700 WAVE fs.resW = resW 701 702 Variable err 703 err = SmearedProlate_2Y(fs) 704 705 return (0) 706 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/Sphere_Sq_v40.ipf
r570 r774 10 10 #include "SquareWellStruct_v40" 11 11 #include "StickyHardSphereStruct_v40" 12 #include "Two_Yukawa_v40" 12 13 13 14 Proc PlotSphere_HS(num,qmin,qmax) … … 408 409 End 409 410 411 // two yukawa 412 Proc PlotSphere_2Y(num,qmin,qmax) 413 Variable num=256,qmin=0.001,qmax=0.7 414 Prompt num "Enter number of data points for model: " 415 Prompt qmin "Enter minimum q-value (A^-1) for model: " 416 Prompt qmax "Enter maximum q-value (A^-1) for model: " 417 418 //make the normal model waves 419 Make/O/D/n=(num) xwave_S_2Y,ywave_S_2Y 420 xwave_S_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 421 Make/O/D coef_S_2Y = {0.1,60,1e-6,6.3e-6,6,10,-1,2,0.01} 422 make/o/t parameters_S_2Y = {"volume fraction","Radius (A)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkgd (cm-1)"} 423 Edit/K=1 parameters_S_2Y,coef_S_2Y 424 Variable/G root:g_S_2Y 425 g_S_2Y := Sphere_2Y(coef_S_2Y,ywave_S_2Y,xwave_S_2Y) 426 // ywave_S_2Y := Sphere_2Y(coef_S_2Y,xwave_S_2Y) 427 Display/K=1 ywave_S_2Y vs xwave_S_2Y 428 ModifyGraph log=1,marker=29,msize=2,mode=4 429 Label bottom "q (A\\S-1\\M)" 430 Label left "Intensity (cm\\S-1\\M)" 431 432 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 433 434 AddModelToStrings("Sphere_2Y","coef_S_2Y","parameters_S_2Y","S_2Y") 435 End 436 437 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 438 Proc PlotSmearedSphere_2Y(str) 439 String str 440 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 441 442 // if any of the resolution waves are missing => abort 443 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 444 Abort 445 endif 446 447 SetDataFolder $("root:"+str) 448 449 // Setup parameter table for model function 450 Make/O/D smear_coef_S_2Y = {0.1,60,1e-6,6.3e-6,6,10,-1,2,0.01} 451 make/o/t smear_parameters_S_2Y = {"volume fraction","Radius (A)","SLD sphere (A-2)","SLD solvent (A-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","bkgd (cm-1)"} 452 Edit smear_parameters_S_2Y,smear_coef_S_2Y 453 454 // output smeared intensity wave, dimensions are identical to experimental QSIG values 455 // make extra copy of experimental q-values for easy plotting 456 Duplicate/O $(str+"_q") smeared_S_2Y,smeared_qvals 457 SetScale d,0,0,"1/cm",smeared_S_2Y 458 459 Variable/G gs_S_2Y=0 460 gs_S_2Y := fSmearedSphere_2Y(smear_coef_S_2Y,smeared_S_2Y,smeared_qvals) //this wrapper fills the STRUCT 461 462 Display smeared_S_2Y vs smeared_qvals 463 ModifyGraph log=1,marker=29,msize=2,mode=4 464 Label bottom "q (A\\S-1\\M)" 465 Label left "Intensity (cm\\S-1\\M)" 466 467 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 468 469 SetDataFolder root: 470 AddModelToStrings("SmearedSphere_2Y","smear_coef_S_2Y","smear_parameters_S_2Y","S_2Y") 471 End 472 473 474 //AAO function 475 Function Sphere_2Y(w,yw,xw) : FitFunc 476 Wave w,yw,xw 477 478 //setup form factor coefficient wave 479 Make/O/D/N=5 form_S_2Y 480 form_S_2Y[0] = 1 481 form_S_2Y[1] = w[1] 482 form_S_2Y[2] = w[2] 483 form_S_2Y[3] = w[3] 484 form_S_2Y[4] = 0 485 486 //setup structure factor coefficient wave 487 Make/O/D/N=6 struct_S_2Y 488 struct_S_2Y[0] = w[0] //phi 489 struct_S_2Y[1] = w[1] //rad 490 struct_S_2Y[2] = w[4] //K1 491 struct_S_2Y[3] = w[5] //Z1 492 struct_S_2Y[4] = w[6] //K2 493 struct_S_2Y[5] = w[7] //Z2 494 495 //calculate each and combine 496 Duplicate/O xw temp_S_2Y_PQ,temp_S_2Y_SQ //make waves for the AAO 497 SphereForm(form_S_2Y,temp_S_2Y_PQ,xw) 498 TwoYukawa(struct_S_2Y,temp_S_2Y_SQ,xw) 499 yw = temp_S_2Y_PQ * temp_S_2Y_SQ 500 yw *= w[0] 501 yw += w[8] 502 503 //cleanup waves 504 //Killwaves/Z form_S_2Y,struct_S_2Y 505 506 return (0) 507 End 508 509 410 510 411 511 … … 449 549 return(0) 450 550 End 551 552 // this is all there is to the smeared calculation! 553 Function SmearedSphere_2Y(s) :FitFunc 554 Struct ResSmearAAOStruct &s 555 556 // the name of your unsmeared model is the first argument 557 Smear_Model_20(Sphere_2Y,s.coefW,s.xW,s.yW,s.resW) 558 559 return(0) 560 End 561 451 562 452 563 //wrapper to calculate the smeared model as an AAO-Struct … … 549 660 return (0) 550 661 End 662 663 //wrapper to calculate the smeared model as an AAO-Struct 664 // fills the struct and calls the ususal function with the STRUCT parameter 665 // 666 // used only for the dependency, not for fitting 667 // 668 Function fSmearedSphere_2Y(coefW,yW,xW) 669 Wave coefW,yW,xW 670 671 String str = getWavesDataFolder(yW,0) 672 String DF="root:"+str+":" 673 674 WAVE resW = $(DF+str+"_res") 675 676 STRUCT ResSmearAAOStruct fs 677 WAVE fs.coefW = coefW 678 WAVE fs.yW = yW 679 WAVE fs.xW = xW 680 WAVE fs.resW = resW 681 682 Variable err 683 err = SmearedSphere_2Y(fs) 684 685 return (0) 686 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/UniformEllipsoid_Sq_v40.ipf
r570 r774 11 11 #include "SquareWellStruct_v40" 12 12 #include "StickyHardSphereStruct_v40" 13 #include "Two_Yukawa_v40" 13 14 14 15 Proc PlotEllipsoid_HS(num,qmin,qmax) … … 414 415 End 415 416 416 417 //two yukawa 418 Proc PlotEllipsoid_2Y(num,qmin,qmax) 419 Variable num=128,qmin=0.001,qmax=0.7 420 Prompt num "Enter number of data points for model: " 421 Prompt qmin "Enter minimum q-value (A^-1) for model: " 422 Prompt qmax "Enter maximum q-value (A^-1) for model: " 423 424 Make/O/D/n=(num) xwave_EOR_2Y,ywave_EOR_2Y 425 xwave_EOR_2Y = alog(log(qmin) + x*((log(qmax)-log(qmin))/num)) 426 Make/O/D coef_EOR_2Y = {0.01,20.,400,1e-6,6.3e-6,6,10,-1,2,0.01} 427 make/o/t parameters_EOR_2Y = {"volume fraction","R(a) rotation axis (A)","R(b) (A)","SLD ellipsoid (A^-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","incoh. bkg (cm^-1)"} 428 Edit parameters_EOR_2Y,coef_EOR_2Y 429 430 Variable/G root:g_EOR_2Y 431 g_EOR_2Y := Ellipsoid_2Y(coef_EOR_2Y,ywave_EOR_2Y,xwave_EOR_2Y) 432 Display ywave_EOR_2Y vs xwave_EOR_2Y 433 ModifyGraph log=1,marker=29,msize=2,mode=4 434 Label bottom "q (A\\S-1\\M)" 435 Label left "Intensity (cm\\S-1\\M)" 436 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 437 438 AddModelToStrings("Ellipsoid_2Y","coef_EOR_2Y","parameters_EOR_2Y","EOR_2Y") 439 End 440 441 // - sets up a dependency to a wrapper, not the actual SmearedModelFunction 442 Proc PlotSmearedEllipsoid_2Y(str) 443 String str 444 Prompt str,"Pick the data folder containing the resolution you want",popup,getAList(4) 445 446 // if any of the resolution waves are missing => abort 447 if(ResolutionWavesMissingDF(str)) //updated to NOT use global strings (in GaussUtils) 448 Abort 449 endif 450 451 SetDataFolder $("root:"+str) 452 453 // Setup parameter table for model function 454 Make/O/D smear_coef_EOR_2Y = {0.01,20.,400,1e-6,6.3e-6,6,10,-1,2,0.01} 455 make/o/t smear_parameters_EOR_2Y = {"volume fraction","R(a) rotation axis (A)","R(b) (A)","SLD ellipsoid (A^-2)","SLD solvent (A^-2)","scale, K1","charge, Z1","scale, K2","charge, Z2","incoh. bkg (cm^-1)"} 456 Edit smear_parameters_EOR_2Y,smear_coef_EOR_2Y 457 458 // output smeared intensity wave, dimensions are identical to experimental QSIG values 459 // make extra copy of experimental q-values for easy plotting 460 Duplicate/O $(str+"_q") smeared_EOR_2Y,smeared_qvals 461 SetScale d,0,0,"1/cm",smeared_EOR_2Y 462 463 Variable/G gs_EOR_2Y=0 464 gs_EOR_2Y := fSmearedEllipsoid_2Y(smear_coef_EOR_2Y,smeared_EOR_2Y,smeared_qvals) //this wrapper fills the STRUCT 465 466 Display smeared_EOR_2Y vs smeared_qvals 467 ModifyGraph log=1,marker=29,msize=2,mode=4 468 Label bottom "q (A\\S-1\\M)" 469 Label left "Intensity (cm\\S-1\\M)" 470 471 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 472 473 SetDataFolder root: 474 AddModelToStrings("SmearedEllipsoid_2Y","smear_coef_EOR_2Y","smear_parameters_EOR_2Y","EOR_2Y") 475 End 476 477 478 //AAO function 479 Function Ellipsoid_2Y(w,yW,xW) : FitFunc 480 Wave w,yW,xW 481 482 Variable inten,aa,bb 483 aa=w[1] 484 bb=w[2] 485 486 //setup form factor coefficient wave 487 Make/O/D/N=6 form_EOR_2Y 488 form_EOR_2Y[0] = 1 489 form_EOR_2Y[1] = w[1] 490 form_EOR_2Y[2] = w[2] 491 form_EOR_2Y[3] = w[3] 492 form_EOR_2Y[4] = w[4] 493 form_EOR_2Y[5] = 0 494 495 //setup structure factor coefficient wave 496 Make/O/D/N=6 struct_EOR_2Y 497 struct_EOR_2Y[0] = w[0] 498 struct_EOR_2Y[1] = 0.5*DiamEllip(aa,bb) 499 struct_EOR_2Y[2] = w[5] 500 struct_EOR_2Y[3] = w[6] 501 struct_EOR_2Y[4] = w[7] 502 struct_EOR_2Y[5] = w[8] 503 504 //calculate each and combine 505 Duplicate/O xw, temp_EOR_2Y_PQ,temp_EOR_2Y_SQ 506 EllipsoidForm(form_EOR_2Y,temp_EOR_2Y_PQ,xW) 507 TwoYukawa(struct_EOR_2Y,temp_EOR_2Y_SQ,xW) 508 yw = temp_EOR_2Y_PQ * temp_EOR_2Y_SQ 509 yw *= w[0] 510 yw += w[9] 511 512 //cleanup waves 513 // Killwaves/Z form_EOR_2Y,struct_EOR_2Y 514 515 return (0) 516 End 417 517 418 518 // this is all there is to the smeared calculation! … … 452 552 // the name of your unsmeared model is the first argument 453 553 Smear_Model_20(Ellipsoid_SHS,s.coefW,s.xW,s.yW,s.resW) 554 555 return(0) 556 End 557 558 // this is all there is to the smeared calculation! 559 Function SmearedEllipsoid_2Y(s) :FitFunc 560 Struct ResSmearAAOStruct &s 561 562 // the name of your unsmeared model is the first argument 563 Smear_Model_20(Ellipsoid_2Y,s.coefW,s.xW,s.yW,s.resW) 454 564 455 565 return(0) … … 555 665 return (0) 556 666 End 667 668 //wrapper to calculate the smeared model as an AAO-Struct 669 // fills the struct and calls the ususal function with the STRUCT parameter 670 // 671 // used only for the dependency, not for fitting 672 // 673 Function fSmearedEllipsoid_2Y(coefW,yW,xW) 674 Wave coefW,yW,xW 675 676 String str = getWavesDataFolder(yW,0) 677 String DF="root:"+str+":" 678 679 WAVE resW = $(DF+str+"_res") 680 681 STRUCT ResSmearAAOStruct fs 682 WAVE fs.coefW = coefW 683 WAVE fs.yW = yW 684 WAVE fs.xW = xW 685 WAVE fs.resW = resW 686 687 Variable err 688 err = SmearedEllipsoid_2Y(fs) 689 690 return (0) 691 End -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Packages/ModelPicker/SANSModelPicker_v40.ipf
r773 r774 205 205 SANS_Model_List[62] = "StickyHardSphereStruct.ipf" 206 206 SANS_Model_List[63] = "TriaxialEllipsoid.ipf" 207 SANS_Model_List[64] = "Vesicle_UL_ and_Struct.ipf"207 SANS_Model_List[64] = "Vesicle_UL_Sq.ipf" 208 208 SANS_Model_List[65] = "Vesicle_UL.ipf" 209 209 //2008 Models -
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Packages/ModelPicker/SANS_Model_List.itx
r773 r774 66 66 "StickyHardSphereStruct.ipf" 67 67 "TriaxialEllipsoid.ipf" 68 "Vesicle_UL_ and_Struct.ipf"68 "Vesicle_UL_Sq.ipf" 69 69 "Vesicle_UL.ipf" 70 70 "Core_and_NShells.ipf"
Note: See TracChangeset
for help on using the changeset viewer.