Warning: Trying to access array offset on value of type null in /home/site/wwwroot/lib/plugins/move/action/rename.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/actions.php on line 38
wifd_mic [topas wiki]

User Tools

Site Tools


wifd_mic

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wifd_mic [2009/08/06 11:12] clarewifd_mic [2022/11/03 15:08] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Wifd_mic ======
 +
 +Description: Bill David peak shape for GEM diffractometer
 +
 +Contributed by: Originally by Bill David at Denver topas meeting, updated by John Evans January 2012
 +
 +Original wifd_mic macro is included at the bottom of the page for legacy reasons.  Suggest using the wifd_mic_new macro instead.  This (January 2012) corrects a scaling inconsistency between the code and the manual.  It should help convergence of tof peak shapes.  In the specific example I tested the two peak shapes give equivalent fits in minimum.
 +
 +<code topas>
 +macro wifd_mic_new(two_theta,two_thetav,tspow,tspowv,tauf_0,tauf_0v,tauf_1,tauf_1v,taus_0,taus_0v,taus_1,taus_1v,t_eff,t_effv,hhh,hhhv,double_pulse,double_pulsev) {
 +   local  !two_theta two_thetav
 + prm tspow   tspowv min 1.5 max 5.5   
 + prm tauf_0  tauf_0v min 0.001        
 + prm tauf_1  tauf_1v min 0.01         
 + prm taus_0  taus_0v min 0.001        
 + prm taus_1  taus_1v min 0.001        
 + prm t_eff  t_effv min 90.0           
 +   prm hhh  hhhv min .001 
 +   prm double_pulse  double_pulsev min 0.001
 + local  !lam = 2 D_spacing Sin(0.00872664626 two_theta)  ;
 +
 +  user_defined_convolution = X^tspow Exp(-X / (tauf_0 + tauf_1 lam )); 
 +   min 0 max = 10 (tauf_0 + tauf_1 lam );
 +
 + local !storage = Exp( -950 /(t_eff lam^2)) hhh;
 +        push_peak 
 +                hat = double_pulse ; 
 +                scale_top_peak = (1-storage); 
 +        bring_2nd_peak_to_top 
 +                exp_conv_const = -Ln(0.001) / (taus_0 + taus_1 / lam^2); 
 +                scale_top_peak = storage;   
 +        add_pop_1st_2nd_peak 
 +}
 +</code>
 +
 +<code topas>
 +macro wifd_mic(two_theta,two_thetav,tspow,tspowv,tauf_0,tauf_0v,tauf_1,tauf_1v,taus_0,taus_0v,taus_1,taus_1v,t_eff,t_effv,hhh,hhhv,double_pulse,double_pulsev) {
 +   local  !two_theta two_thetav
 + prm tspow   tspowv min 1.5 max 5.5   
 + prm tauf_0  tauf_0v min 0.001        
 + prm tauf_1  tauf_1v min 0.01         
 + prm taus_0  taus_0v min 0.001        
 + prm taus_1  taus_1v min 0.001        
 + prm t_eff  t_effv min 90.0           
 +   prm hhh  hhhv min .001 
 +   prm double_pulse  double_pulsev min 0.001
 + local  !lam = 2 D_spacing Sin(0.00872664626 two_theta)  ;
 +
 +  user_defined_convolution = X^tspow Exp(-X / (tauf_0 + tauf_1 lam )); 
 +   min 0 max = 10 (tauf_0 + tauf_1 lam );
 +
 + local !storage = Exp( -950 /(t_eff lam^2)) hhh;
 +        push_peak 
 +                hat = double_pulse ; 
 +                scale_top_peak = (1-storage)/double_pulse; 
 +        bring_2nd_peak_to_top 
 +                exp_conv_const = -Ln(0.001) / (taus_0 + taus_1 / lam^2); 
 +                scale_top_peak = storage/double_pulse;   
 +        add_pop_1st_2nd_peak 
 +}
 +</code>
 +
 +Some untested/caveat emptor parameters to get you going for the 6 banks on gem are:
 +
 +<code topas>
 +local !bank_two_theta 91.3
 +wifd_mic_new(two_theta, =bank_two_theta;, !tspow, 3.34670, !tauf_0, 1.13998, !tauf_1, 1.07527, !taus_0, 0.02876, !taus_1, 0.01314, !t_eff, 234.52357, !hhh, 0.02063, !double_pulse, 0.07775)   
 +</code>