Differences

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

Link to this comparison view

list_command [2017/06/01 16:30]
johnsoevans
list_command [2020/07/16 11:29]
Line 1: Line 1:
-====== List #list Command ====== 
- 
-#list is a new feature in v6.  It's super-useful for running multiple refinements on different data sets or running multiple models against a single data set.  Some things you can do are below. ​ There are lots more! 
- 
-Typical syntax is: 
- 
-<code topas>​num_runs 5 
-Backup_INP 
-#list pa_val ​ { 
-0.1 
-0.2 
-0.3 
-0.4 
-0.5 
-} 
-prm pa = pa_val(Run_Number);</​code>​ 
- 
-By default refinement results aren't written to the INP file.  This can be changed with the lines below, where inp_filename.inp is the name of your INP file.  Note that out_file uses a "​string equation"​. ​ The "​Backup_INP"​ macro creates a backup of your input file.  This is useful as if you mess up with #list you can write a blank .inp file (essentially deleting your .inp). 
- 
-<code topas>​Backup_INP 
-out_file ="​inp_filename.inp";</​code>​ 
- 
-If you step through a set of pa values and fit the data with each value Topas won't save the "best answer"​ by default. ​ This can be changed with a simple macro: 
- 
-<code topas>​macro Save_Best 
-   { 
-                #if (Run_Number == 0) 
-                                prm Best_Rwp_ = 9999; 
-                #else 
-                                prm Best_Rwp_ = #include Best_Rwp_.txt;​ 
-                #endif 
-                out Best_Rwp_.txt Out(If(Get(r_wp) < Best_Rwp_, Get(r_wp), Best_Rwp_)) 
-                out_file = If(Get(r_wp) < Best_Rwp_, Concat(String(INP_File),​ "​.OUT"​),​ ""​);​ 
-   } </​code>​ 
- 
-You can easily automate refinements using the #list command and [[string_equations|string equations]]. ​ Just give the filenames in the #list command and use something like "​xdd ​ filename(Run_Number)"​. ​ You can add experimental information like time/​temperature/​etc in the #list command. 
- 
-For results files you can e.g. delete old files and write header lines with commands like the ones below. ​ If you backup only for run 0 then you won't get annoying screen "​flashes":​ 
- 
-<code topas>#​if (Run_Number == 0) 
- ​Backup_INP 
- ​system_before_save_OUT ​ { del results.txt } 
- out "​results.txt"​ append ​ 
- ​Out_String(" ​    ​01_range ​  ​02_temp ​   03_time ​      ​04_r_wp ​    ​05_height ​   06_err ​    ​07_bval ​    ​08_err ​  ​09_perc_cubic ​ \n"​) ​ 
-#endif </​code>​ 
- 
-Here's an example of how to vary a specific parameter (the sample height) in the input file from Martin Fisch: 
- 
-<code topas> 
-/* 
-Copy paste this file to an .inp file and run with Topas 6 
-It shows how the #list command can be used to perform pattern 
-simulations. In this case, specimen displacement is varied. ​ 
-Note that the list parameter (h_err) is used via a macro 
-in order to use it in the file name of the saved scan.  
-*/ 
- 
-yobs_eqn = 0; 
-min 20 
-max 150 
-del 0.01 
- 
-num_runs 11 
- 
-#list h_err { 
--0.25 
--0.20 
--0.15 
--0.10 
--0.05 
-0.00 
-0.05 
-0.10 
-0.15 
-0.20 
-0.25 
-} 
- 
-macro displacement { h_err(Run_Number) } 
- 
-Specimen_Displacement(,​ displacement ) 
- 
-lam ymin_on_ymax 0.0001 
-Lam_recs 
-{ 0.0159 ​ 1.534753 ​ 3.6854 
-  0.5691 ​ 1.540596 ​ 0.4370 
-  0.0762 ​ 1.541058 ​ 0.6000 
-  0.2517 ​ 1.544410 ​ 0.5200 
-  0.0871 ​ 1.544721 ​ 0.6200 } 
-LP_Factor(0) 
-Rp 240 
-Rs 240 
-Slit_Width(0.07) 
-Divergence (0.25) 
-axial_conv 
-filament_length 12 
-sample_length 9.5 
-receiving_slit_length 15 
-primary_soller_angle 2.55 
-secondary_soller_angle 2.55 
- 
-str 
-phase_name "​LaB6"​ 
-a 4.1569162 
-b =Get(a);​  
-c =Get(a);​  
-space_group "​Pm-3m"​ 
-site La1 x 0    y 0    z 0    occ La 1 beq 0.5 
-site B1  x 0.5  y 0.5  z 0.19 occ B  1 beq 0.5 
-scale 0.0001 
- 
-seed 10 
-xdd_out LaB6_Displacement_##​displacement##​.xy load out_record out_fmt out_eqn 
-{ 
-    " %11.6f ​ " = X; 
-    " %11.6f\n ​ " = Rand_Normal(Ycalc,​ Sqrt(Ycalc));​ 
-} 
-</​code>​ 
- 
-There'​s an example of how to name .out files by Run_Number at: [[saving_out_files_as_a_function_of_run_number|Saving .out Files as a Function of Run Number]] 
  

Personal Tools