Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
list_command [2016/10/26 17:35]
johnsoevans
list_command [2017/10/02 17:11] (current)
johnsoevans
Line 35: Line 35:
  
 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. 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>​
 +
 +There'​s a step by step tutorial on using #list to refine a series of data sets sequentially [[http://​community.dur.ac.uk/​john.evans/​topas_workshop/​tutorial_multitopas.htm|here]].
 +
 +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