Ignore:
Timestamp:
Feb 17, 2012 12:04:13 PM (11 years ago)
Author:
srkline
Message:

changes to FFT routines to clean things up for a beta release at the next startup. No functionality changes, just cleaning up the operation, interface, and menu items.

Some important changes to the polarization routines. New equations for calculating the coefficient matrix. Now appears to be correct. Also, proper proportions are used when adding multiple files together to the matrix.

Change to the Model Docs is an updated reference.

WorkFileUtils? was broken when I changed to use linear_data exclusively. This has now been fixed and it operates as expected.

PackageLoader? now has menu items (under Macros) for the Polarization routines. These may later be moved to the SANS menu.

File:
1 edited

Legend:

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

    r798 r836  
    8484        Button FFTButton_2,pos={14,187},size={100,20},proc=FFTDrawSphereButtonProc,title="Draw Sphere" 
    8585        Button FFTButton_3,pos={14,265},size={70,20},proc=DoTheFFT_ButtonProc,title="Do FFT" 
    86         Button FFTButton_4,pos={191,264},size={110,20},proc=FFT_PlotResultsButtonProc,title="Plot 1D Results" 
     86        Button FFTButton_4,pos={180,264},size={130,20},proc=FFT_PlotResultsButtonProc,title="Plot FFT Results" 
    8787        Button FFTButton_5,pos={13,218},size={120,20},proc=FFTDrawZCylinderButtonProc,title="Draw Cylinder" 
    8888        Button FFTButton_6,pos={134,79},size={90,20},proc=FFTEraseMatrixButtonProc,title="Erase Matrix" 
    8989        Button FFTButton_7,pos={13,329},size={130,20},proc=FFT_BinnedSpheresButtonProc,title="Do Binned Debye" 
     90        Button FFTButton_7a,pos={180,329},size={130,20},proc=FFT_PlotResultsButtonProc,title="Plot Binned Results" 
     91 
    9092        Button FFTButton_8,pos={13,297},size={130,20},proc=FFT_AltiSpheresButtonProc,title="Do Debye Spheres" 
     93        Button FFTButton_8a,pos={180,297},size={130,20},proc=FFT_PlotResultsButtonProc,title="Plot Debye Results" 
     94 
    9195        Button FFTButton_14,pos={13,360},size={130,20},proc=FFT_BinnedSLDButtonProc,title="Do Binned SLD" 
     96        Button FFTButton_14a,pos={180,360},size={130,20},proc=FFT_PlotResultsButtonProc,title="Plot SLD Results" 
     97 
    9298        SetVariable FFTSetVar_4,pos={201,4},size={100,15},title="FFT time(s)" 
    9399        SetVariable FFTSetVar_4,limits={0,0,0},value= FFT_estTime,noedit= 1,live= 1,format="%d" 
    94         Button FFTButton_9,pos={200,295},size={100,20},proc=FFT_Get2DSlice,title="Get Slice" 
     100        Button FFTButton_9,pos={200,400},size={100,20},proc=FFT_Get2DSlice,title="Get 2D Slice" 
    95101        Button FFTButton_10,pos={169,156},size={130,20},proc=FFT_TransposeMat,title="Transpose Matrix" 
    96102        Button FFTButton_11,pos={169,189},size={130,20},proc=FFT_RotateMat,title="Rotate Matrix" 
    97103        Button FFTButton_12,pos={168,219},size={130,20},proc=FFT_AddRotatedObject,title="Add Rotated Obj" 
     104        Button FFTButton_12,disable=2           // hide this button 
    98105        Button FFTButton_13,pos={14,109},size={120,20},proc=FFTFillSolventMatrixProc,title="Solvent Matrix" 
    99         SetVariable FFTSetVar_5,pos={155,111},size={100,15},title="Solvent SLD" 
     106        SetVariable FFTSetVar_5,pos={155,111},size={150,15},title="Solvent SLD (10^-6)" 
    100107        SetVariable FFTSetVar_5,limits={-99,99,1},value= FFT_SolventSLD,live= 1 
    101         Button FFTButton_15,pos={209,327},size={90,20},proc=Interp2DSliceButton,title="Interp 2D" 
     108        Button FFTButton_15,pos={209,430},size={90,20},proc=Interp2DSliceButton,title="Interp 2D" 
     109        Button FFTButton_16,pos={14,460},size={70,20},proc=FFTHelpButton,title="Help" 
    102110EndMacro 
     111 
     112Function FFTHelpButton(ba) : ButtonControl 
     113        STRUCT WMButtonAction &ba 
     114         
     115        String win = ba.win 
     116 
     117        switch (ba.eventCode) 
     118                case 2: 
     119                        // click code here 
     120                        DisplayHelpTopic/Z/K=1 "Real-Space Modeling" 
     121                        if(V_flag !=0) 
     122                                DoAlert 0,"The Real-Space Modeling Help file could not be found" 
     123                        endif 
     124                        break 
     125        endswitch 
     126 
     127        return 0 
     128End 
     129 
    103130 
    104131Function Interp2DSliceButton(ba) : ButtonControl 
     
    424451        String ctrlName 
    425452 
     453        Variable first=0 
    426454        DoWindow/F FFT_IQ 
    427455        if(V_flag==0) 
    428                 Execute "FFT_IQ()" 
     456                first = 1 
     457                Display /W=(295,44,627,302) 
     458                DoWindow/C FFT_IQ 
    429459        Endif 
    430 End 
    431  
     460         
     461        // append the desired data, if it's not already there 
     462        // FFTButton_4 = FFT            = iBin 
     463        // FFTButton_7a = binned = _XOP 
     464        // FFTButton_8a = Debye = _full 
     465        // FFTButton_14a = SLD = _SLD 
     466        strswitch(ctrlName)      
     467                case "FFTButton_4": 
     468                        if(!isTraceOnGraph("iBin","FFT_IQ") && exists("iBin")==1)               //only append if it's not already there 
     469                                AppendToGraph /W=FFT_IQ iBin vs qBin 
     470                                ModifyGraph mode=4,marker=19,msize=2,rgb(iBin)=(65535,0,0) 
     471                        endif 
     472                        break 
     473                case "FFTButton_7a": 
     474                        if(!isTraceOnGraph("ival_XOP","FFT_IQ") && exists("ival_XOP")==1)               //only append if it's not already there 
     475                                AppendToGraph /W=FFT_IQ ival_XOP vs qval_XOP 
     476                                ModifyGraph mode=4,marker=19,msize=2,rgb(ival_XOP)=(1,12815,52428) 
     477                        endif            
     478                        break 
     479                case "FFTButton_8a": 
     480                        if(!isTraceOnGraph("ival_full","FFT_IQ") && exists("ival_full")==1)             //only append if it's not already there 
     481                                AppendToGraph /W=FFT_IQ ival_full vs qval_full 
     482                                ModifyGraph mode=4,marker=19,msize=2,rgb(ival_full)=(0,0,0) 
     483                        endif            
     484                        break 
     485                case "FFTButton_14a": 
     486                        if(!isTraceOnGraph("ival_SLD","FFT_IQ") && exists("ival_SLD")==1)               //only append if it's not already there 
     487                                AppendToGraph /W=FFT_IQ ival_SLD vs qval_SLD 
     488                                ModifyGraph mode=4,marker=19,msize=2,rgb(ival_SLD)=(2,39321,1) 
     489                        endif            
     490                        break 
     491        endswitch 
     492         
     493        if(first) 
     494                ModifyGraph mode=4 
     495                ModifyGraph marker=19 
     496                ModifyGraph msize=2 
     497                ModifyGraph gaps=0 
     498                ModifyGraph grid=1 
     499                ModifyGraph log=1 
     500                ModifyGraph mirror=2 
     501                Legend 
     502        endif 
     503         
     504        return(0) 
     505End 
     506 
     507Function isTraceOnGraph(traceStr,winStr) 
     508        String traceStr,winStr 
     509         
     510        Variable isOn=0 
     511        String str 
     512        str = TraceNameList("winStr",";",1)             //only normal traces 
     513        isOn = stringmatch(str,traceStr)                //must be an exact match 
     514 
     515        return(isOn) 
     516End 
    432517 
    433518Function FFTEraseMatrixButtonProc(ctrlName) : ButtonControl 
     
    466551End 
    467552 
    468  
    469 Proc FFT_IQ() : Graph 
    470         PauseUpdate; Silent 1           // building window... 
    471         Display /W=(295,44,627,302) iBin vs qBin 
    472         DoWindow/C FFT_IQ 
    473         ModifyGraph mode=4 
    474         ModifyGraph marker=19 
    475         ModifyGraph msize=2 
    476         ModifyGraph gaps=0 
    477         ModifyGraph grid=1 
    478         ModifyGraph log=1 
    479         ModifyGraph mirror=2 
    480         Legend/N=text0/J "\\s(iBin) iBin" 
    481 EndMacro 
    482553 
    483554 
Note: See TracChangeset for help on using the changeset viewer.