Ignore:
Timestamp:
Mar 26, 2012 11:26:28 AM (11 years ago)
Author:
srkline
Message:

Changes to the real-space modeling to sped up the drawing of cylinders, and to provide a few more examples of scritped, unattended calculations, and saving the 3D matrix.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_FillTests.ipf

    r846 r849  
    290290// do the Binned SLD calculation + rename 
    291291// 
    292 Function TestSaveLoad_Hexagonal_vs_Sep() 
     292//      SaveExperiment statements are done after every step to be sure that there is enough free memory 
     293// -- running without caused a "not enough memory" error before any of the calculations could be done 
     294// -- so I'm not completely sure that the Save statements will work. 
     295// 
     296// 
     297Function TestSaveLoad_CoreShellHexagonal() 
    293298 
    294299 
     
    299304        NVAR FFT_delRho = root:FFT_delRho               //the SLD multiplier, should have been initialized to 1e-7 
    300305         
    301         // this function takes care of everything in clearing/filling the matrix 
     306//      // this function takes care of everything in clearing/filling the matrix 
    302307        FilledPores(40,25,2e-6,0e-6,400,100) 
    303         SaveMyMatrix("mat_R40C25_L400_S100.ibw") 
     308        SaveMyMatrix("mat_R40C25_L400_S100_N512.ibw") 
    304309        Print "Done with save 1 of 7" 
    305          
     310        SaveExperiment 
     311 
    306312        FilledPores(40,25,2e-6,0e-6,400,120) 
    307         SaveMyMatrix("mat_R40C25_L400_S120.ibw") 
     313        SaveMyMatrix("mat_R40C25_L400_S120_N512.ibw") 
    308314        Print "Done with save 2 of 7" 
     315        SaveExperiment 
    309316         
    310317        FilledPores(40,25,2e-6,0e-6,400,140) 
    311         SaveMyMatrix("mat_R40C25_L400_S140.ibw") 
     318        SaveMyMatrix("mat_R40C25_L400_S140_N512.ibw") 
    312319        Print "Done with save 3 of 7" 
     320        SaveExperiment 
    313321         
    314322        FilledPores(40,25,2e-6,0e-6,400,160) 
    315         SaveMyMatrix("mat_R40C25_L400_S160.ibw") 
     323        SaveMyMatrix("mat_R40C25_L400_S160_N512.ibw") 
    316324        Print "Done with save 4 of 7" 
     325        SaveExperiment 
    317326         
    318327        FilledPores(40,25,2e-6,0e-6,400,180) 
    319         SaveMyMatrix("mat_R40C25_L400_S180.ibw") 
     328        SaveMyMatrix("mat_R40C25_L400_S180_N512.ibw") 
    320329        Print "Done with save 5 of 7" 
     330        SaveExperiment 
    321331 
    322332        FilledPores(40,25,2e-6,0e-6,400,200) 
    323         SaveMyMatrix("mat_R40C25_L400_S200.ibw") 
     333        SaveMyMatrix("mat_R40C25_L400_S200_N512.ibw") 
    324334        Print "Done with save 6 of 7" 
     335        SaveExperiment 
    325336         
    326337        FilledPores(40,25,2e-6,0e-6,400,220) 
    327         SaveMyMatrix("mat_R40C25_L400_S220.ibw") 
     338        SaveMyMatrix("mat_R40C25_L400_S220_N512.ibw") 
    328339        Print "Done with save 7 of 7" 
    329  
    330  
     340        SaveExperiment 
     341 
     342         
     343         
    331344        //re-load the matrices 
    332345        Variable num,qmin,qmax 
     
    339352         
    340353         
    341         ReloadMatrix("mat_R40C25_L400_S100.ibw") 
    342         Execute "DoFFT()" 
    343         Duplicate/O iBin iBin_R40C25_L400_S100 
    344         Duplicate/O qBin qBin_R40C25_L400_S100 
    345         fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
    346         Duplicate/O ival_SLD ival_SLD_R40C25_L400_S100 
    347         Duplicate/O qval_SLD qval_SLD_R40C25_L400_S100 
     354        ReloadMatrix("mat_R40C25_L400_S100_N512.ibw") 
     355        Execute "DoFFT()" 
     356        Duplicate/O iBin iBin_R40C25_L400_S100_N512 
     357        Duplicate/O qBin qBin_R40C25_L400_S100_N512 
     358//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     359//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S100 
     360//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S100 
    348361        Print "Done with calculation 1 of 7" 
    349          
    350         ReloadMatrix("mat_R40C25_L400_S120.ibw") 
    351         Execute "DoFFT()" 
    352         Duplicate/O iBin iBin_R40C25_L400_S120 
    353         Duplicate/O qBin qBin_R40C25_L400_S120 
    354         fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
    355         Duplicate/O ival_SLD ival_SLD_R40C25_L400_S120 
    356         Duplicate/O qval_SLD qval_SLD_R40C25_L400_S120 
     362        SaveExperiment 
     363         
     364        ReloadMatrix("mat_R40C25_L400_S120_N512.ibw") 
     365        Execute "DoFFT()" 
     366        Duplicate/O iBin iBin_R40C25_L400_S120_N512 
     367        Duplicate/O qBin qBin_R40C25_L400_S120_N512 
     368//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     369//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S120 
     370//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S120 
    357371        Print "Done with calculation 2 of 7" 
    358          
    359         ReloadMatrix("mat_R40C25_L400_S140.ibw") 
    360         Execute "DoFFT()" 
    361         Duplicate/O iBin iBin_R40C25_L400_S140 
    362         Duplicate/O qBin qBin_R40C25_L400_S140 
    363         fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
    364         Duplicate/O ival_SLD ival_SLD_R40C25_L400_S140 
    365         Duplicate/O qval_SLD qval_SLD_R40C25_L400_S140 
     372        SaveExperiment 
     373         
     374        ReloadMatrix("mat_R40C25_L400_S140_N512.ibw") 
     375        Execute "DoFFT()" 
     376        Duplicate/O iBin iBin_R40C25_L400_S140_N512 
     377        Duplicate/O qBin qBin_R40C25_L400_S140_N512 
     378//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     379//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S140 
     380//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S140 
    366381        Print "Done with calculation 3 of 7" 
    367          
    368         ReloadMatrix("mat_R40C25_L400_S160.ibw") 
    369         Execute "DoFFT()" 
    370         Duplicate/O iBin iBin_R40C25_L400_S160 
    371         Duplicate/O qBin qBin_R40C25_L400_S160 
    372         fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
    373         Duplicate/O ival_SLD ival_SLD_R40C25_L400_S160 
    374         Duplicate/O qval_SLD qval_SLD_R40C25_L400_S160 
     382        SaveExperiment 
     383         
     384        ReloadMatrix("mat_R40C25_L400_S160_N512.ibw") 
     385        Execute "DoFFT()" 
     386        Duplicate/O iBin iBin_R40C25_L400_S160_N512 
     387        Duplicate/O qBin qBin_R40C25_L400_S160_N512 
     388//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     389//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S160 
     390//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S160 
    375391        Print "Done with calculation 4 of 7" 
    376          
    377         ReloadMatrix("mat_R40C25_L400_S180.ibw") 
    378         Execute "DoFFT()" 
    379         Duplicate/O iBin iBin_R40C25_L400_S180 
    380         Duplicate/O qBin qBin_R40C25_L400_S180 
    381         fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
    382         Duplicate/O ival_SLD ival_SLD_R40C25_L400_S180 
    383         Duplicate/O qval_SLD qval_SLD_R40C25_L400_S180 
     392        SaveExperiment 
     393         
     394        ReloadMatrix("mat_R40C25_L400_S180_N512.ibw") 
     395        Execute "DoFFT()" 
     396        Duplicate/O iBin iBin_R40C25_L400_S180_N512 
     397        Duplicate/O qBin qBin_R40C25_L400_S180_N512 
     398//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     399//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S180 
     400//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S180 
    384401        Print "Done with calculation 5 of 7" 
    385  
    386         ReloadMatrix("mat_R40C25_L400_S200.ibw") 
    387         Execute "DoFFT()" 
    388         Duplicate/O iBin iBin_R40C25_L400_S200 
    389         Duplicate/O qBin qBin_R40C25_L400_S200 
    390         fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
    391         Duplicate/O ival_SLD ival_SLD_R40C25_L400_S200 
    392         Duplicate/O qval_SLD qval_SLD_R40C25_L400_S200 
     402        SaveExperiment 
     403 
     404        ReloadMatrix("mat_R40C25_L400_S200_N512.ibw") 
     405        Execute "DoFFT()" 
     406        Duplicate/O iBin iBin_R40C25_L400_S200_N512 
     407        Duplicate/O qBin qBin_R40C25_L400_S200_N512 
     408//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     409//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S200 
     410//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S200 
    393411        Print "Done with calculation 6 of 7" 
    394          
    395         ReloadMatrix("mat_R40C25_L400_S220.ibw") 
    396         Execute "DoFFT()" 
    397         Duplicate/O iBin iBin_R40C25_L400_S220 
    398         Duplicate/O qBin qBin_R40C25_L400_S220 
    399         fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
    400         Duplicate/O ival_SLD ival_SLD_R40C25_L400_S220 
    401         Duplicate/O qval_SLD qval_SLD_R40C25_L400_S220 
     412        SaveExperiment 
     413         
     414        ReloadMatrix("mat_R40C25_L400_S220_N512.ibw") 
     415        Execute "DoFFT()" 
     416        Duplicate/O iBin iBin_R40C25_L400_S220_N512 
     417        Duplicate/O qBin qBin_R40C25_L400_S220_N512 
     418//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     419//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S220 
     420//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S220 
    402421        Print "Done with calculation 7 of 7" 
    403          
    404  
     422        SaveExperiment 
     423 
     424                 
     425         
    405426        Print "All calculations done" 
    406427 
     
    409430        return(0) 
    410431End 
     432 
     433 
     434Function TestSaveLoad_Hexagonal_vs_Sep() 
     435 
     436 
     437        Wave    mat=mat 
     438        NVAR    solventSLD = root:FFT_SolventSLD 
     439         
     440        NVAR grid=root:FFT_T 
     441        NVAR FFT_delRho = root:FFT_delRho               //the SLD multiplier, should have been initialized to 1e-7 
     442 
     443 
     444// fill the matrix with solvent 
     445        FFTFillSolventMatrixProc("") 
     446        X_CylindersHexagonalGrid(mat,40,400,100,20) 
     447        SaveMyMatrix("mat_R40_L400_S100_N512.ibw") 
     448        Print "Done with save 1 of 7" 
     449        SaveExperiment 
     450 
     451// fill the matrix with solvent 
     452        FFTFillSolventMatrixProc("")     
     453        X_CylindersHexagonalGrid(mat,40,400,120,20) 
     454        SaveMyMatrix("mat_R40_L400_S120_N512.ibw") 
     455        Print "Done with save 2 of 7" 
     456        SaveExperiment 
     457         
     458        // fill the matrix with solvent 
     459        FFTFillSolventMatrixProc("") 
     460        X_CylindersHexagonalGrid(mat,40,400,140,20) 
     461        SaveMyMatrix("mat_R40_L400_S140_N512.ibw") 
     462        Print "Done with save 3 of 7" 
     463        SaveExperiment 
     464         
     465        // fill the matrix with solvent 
     466        FFTFillSolventMatrixProc("") 
     467        X_CylindersHexagonalGrid(mat,40,400,160,20) 
     468        SaveMyMatrix("mat_R40_L400_S160_N512.ibw") 
     469        Print "Done with save 4 of 7" 
     470        SaveExperiment 
     471         
     472        // fill the matrix with solvent 
     473        FFTFillSolventMatrixProc("") 
     474        X_CylindersHexagonalGrid(mat,40,400,180,20) 
     475        SaveMyMatrix("mat_R40_L400_S180_N512.ibw") 
     476        Print "Done with save 5 of 7" 
     477        SaveExperiment 
     478         
     479        // fill the matrix with solvent 
     480        FFTFillSolventMatrixProc("") 
     481        X_CylindersHexagonalGrid(mat,40,400,200,20) 
     482        SaveMyMatrix("mat_R40_L400_S200_N512.ibw") 
     483        Print "Done with save 6 of 7" 
     484        SaveExperiment 
     485         
     486        // fill the matrix with solvent 
     487        FFTFillSolventMatrixProc("") 
     488        X_CylindersHexagonalGrid(mat,40,400,220,20) 
     489        SaveMyMatrix("mat_R40_L400_S220_N512.ibw") 
     490        Print "Done with save 7 of 7" 
     491        SaveExperiment 
     492         
     493         
     494        //re-load the matrices 
     495        Variable num,qmin,qmax 
     496        num=1000 
     497        qmin=0.01 
     498        qmax=0.6 
     499         
     500        Make/O/D/N=(num) qval_SLD,ival_SLD 
     501        qval_SLD = alog(log(qmin) + x*((log(qmax)-log(qmin))/num))               
     502 
     503 
     504 
     505        ReloadMatrix("mat_R40_L400_S100_N512.ibw") 
     506        Execute "DoFFT()" 
     507        Duplicate/O iBin iBin_R40_L400_S100_N512 
     508        Duplicate/O qBin qBin_R40_L400_S100_N512 
     509//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     510//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S100 
     511//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S100 
     512        Print "Done with calculation 1 of 7" 
     513        SaveExperiment 
     514         
     515        ReloadMatrix("mat_R40_L400_S120_N512.ibw") 
     516        Execute "DoFFT()" 
     517        Duplicate/O iBin iBin_R40_L400_S120_N512 
     518        Duplicate/O qBin qBin_R40_L400_S120_N512 
     519//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     520//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S120 
     521//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S120 
     522        Print "Done with calculation 2 of 7" 
     523        SaveExperiment 
     524         
     525        ReloadMatrix("mat_R40_L400_S140_N512.ibw") 
     526        Execute "DoFFT()" 
     527        Duplicate/O iBin iBin_R40_L400_S140_N512 
     528        Duplicate/O qBin qBin_R40_L400_S140_N512 
     529//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     530//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S140 
     531//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S140 
     532        Print "Done with calculation 3 of 7" 
     533        SaveExperiment 
     534         
     535        ReloadMatrix("mat_R40_L400_S160_N512.ibw") 
     536        Execute "DoFFT()" 
     537        Duplicate/O iBin iBin_R40_L400_S160_N512 
     538        Duplicate/O qBin qBin_R40_L400_S160_N512 
     539//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     540//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S160 
     541//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S160 
     542        Print "Done with calculation 4 of 7" 
     543        SaveExperiment 
     544         
     545        ReloadMatrix("mat_R40_L400_S180_N512.ibw") 
     546        Execute "DoFFT()" 
     547        Duplicate/O iBin iBin_R40_L400_S180_N512 
     548        Duplicate/O qBin qBin_R40_L400_S180_N512 
     549//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     550//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S180 
     551//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S180 
     552        Print "Done with calculation 5 of 7" 
     553        SaveExperiment 
     554         
     555        ReloadMatrix("mat_R40_L400_S200_N512.ibw") 
     556        Execute "DoFFT()" 
     557        Duplicate/O iBin iBin_R40_L400_S200_N512 
     558        Duplicate/O qBin qBin_R40_L400_S200_N512 
     559//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     560//      Duplicate/O ival_SLD ival_SLD_R40C25_L400_S200 
     561//      Duplicate/O qval_SLD qval_SLD_R40C25_L400_S200 
     562        Print "Done with calculation 6 of 7" 
     563        SaveExperiment 
     564 
     565        ReloadMatrix("mat_R40_L400_S220_N512.ibw") 
     566        Execute "DoFFT()" 
     567        Duplicate/O iBin iBin_R40_L400_S220_N512 
     568        Duplicate/O qBin qBin_R40_L400_S220_N512 
     569//      fDoCalc(qval_SLD,ival_SLD,grid,3,1) 
     570//      Duplicate/O ival_SLD ival_SLD_R40_L400_S220 
     571//      Duplicate/O qval_SLD qval_SLD_R40_L400_S220 
     572        Print "Done with calculation 7 of 7" 
     573        SaveExperiment 
     574                 
     575         
     576        Print "All calculations done" 
     577 
     578 
     579 
     580        return(0) 
     581End 
Note: See TracChangeset for help on using the changeset viewer.