source: branches/sandbox/anomal.tcl @ 1205

Last change on this file since 1205 was 1205, checked in by lake, 9 years ago
File size: 4.9 KB
Line 
1# this should get moved elsewhere
2proc anomalous_load {args} {
3     catch {unset temp}
4     # trap if more than one histogram is selected unless global mode
5     if {$::expgui(globalmode) == 0 && [llength $::expgui(curhist)] > 1} {
6         set ::expgui(curhist) [lindex $::expgui(curhist) 0]
7     }
8
9     set histnum $::expgui(curhist)
10     set histlbl [lindex $::expmap(powderlist) $histnum]
11
12     #determine list of histograms with the same wavelength
13     set ::anom_list ""
14     set ::anom_wave [histinfo $histlbl lam1]
15     foreach test $::expmap(powderlist) {
16             puts "[histinfo $test lam1] versus $::anom_wave"
17             if {[histinfo $test lam1] == $::anom_wave} {
18                lappend ::anom_list $test
19             }
20     if {[llength $::anom_list] == 0} return
21     }
22     #puts "this wavelength is found in histogram $::anom_list"
23
24     set ::anom_atomcount 0
25     set ::anom_abort [histinfo $histlbl anomff]
26
27     if {[histinfo $histlbl anomff] == ""} {
28        catch {destroy .anomwarning}
29        set anomwarn .anomwarning
30        toplevel $anomwarn
31        wm title $anomwarn "Warning"
32        wm geometry $anomwarn 400x200+10+10
33        grid [frame $anomwarn.buz -bd 2 -relief groove] -column 0 -row 0 -sticky news
34        grid [label $anomwarn.buz.text -text "No information in EXP file.  Run GENLES to generate\n\u0394f' and \u0394f\" data"]\
35             -row 0 -column 0
36        grid [button $anomwarn.buz.but -width 8 -text "continue" -command {destroy .anomwarning}] -column 0 -row 1
37     }
38     foreach temp [histinfo $histlbl anomff] {
39             incr ::anom_atomcount
40             set ::anom_lbl($::anom_atomcount) [lindex $temp 0]
41             set ::anom_fp($::anom_atomcount) [lindex $temp 1]
42             set ::anom_f2p($::anom_atomcount) [lindex $temp 2]
43             puts "$::anom_lbl($::anom_atomcount) $::anom_fp($::anom_atomcount) $::anom_f2p($::anom_atomcount)"
44     }
45}
46
47proc anomalous_editor {args} {
48     if {$::anom_atomcount == 0} {return}
49     catch {destroy .anomalous}
50     set anomal .anomalous
51     toplevel $anomal
52     wm title $anomal "Anomalous Dispersion Terms"
53     wm geometry $anomal 520x370+10+10
54     putontop $anomal
55
56     grid [frame $anomal.list -bd 2 -relief groove] -row 0 -column 0 -sticky news
57     grid [label $anomal.list.lbl1 -text "The anomalous dispersion terms will be set for the following histograms\n with wavelength $::anom_wave angstroms:"] -row 0 -column 0
58     grid [label $anomal.list.lbl1a -text "$::anom_list"] -row 1 -column 0
59
60     grid [frame $anomal.con -bd 2 -relief groove] -row 5  -column 0 -sticky news
61     grid [button $anomal.con.save  -width 8 -text "Save"  -command {anomalous_save}] -column 0 -row 4 -padx 3
62     grid [button $anomal.con.abort -width 8 -text "abort" -command {anomalous_abort}] -column 1 -row 4 -padx 3
63
64     grid [frame $anomal.warning -bd 2 -relief groove] -row 7 -column 0 -sticky news
65     grid [label $anomal.warning.1 -anchor center -text "*Warning.  GSAS will only store \u0394f' and \u0394f\" values \n for the first nine atom types*"] \
66          -columnspan 2 -column 0 -row 0 -pady 3
67     grid [label $anomal.warning.2 -anchor center -text "Notice: \u0394f' and \u0394f\" fields are added after GENLES is run."] \
68          -columnspan 2 -column 0 -row 1 -pady 3
69
70     grid [frame $anomal.info -bd 2 -relief groove -width 600] -row 1 -column 0 -sticky ns
71
72      set top $anomal.info
73      set main $anomal.info
74
75     grid [label $top.toplabel1  -text "Type" -width 8] -column 0 -row 0
76     grid [label $top.toplabel2  -anchor center -text " \u0394f'" -width 8]  -column 2 -row 0
77     grid [label $top.toplabel3  -anchor center -text " \u0394f\"" -width 8] -column 4 -row 0
78     for {set i 1} {$i <= $::anom_atomcount} {incr i} {
79         grid [label $main.atom_lbl($i) -text "$::anom_lbl($i)" -width 8] -column 0 -row $i
80         grid [entry $main.atom_fp($i)  -textvariable ::anom_fp($i)  -width 8] -column 2 -row $i
81         grid [entry $main.atom_f2p($i) -textvariable ::anom_f2p($i) -width 8] -column 4 -row $i
82     }
83}
84
85proc anomalous_save {args} {
86     set histnum $::expgui(curhist)
87     puts $histnum
88     set histlbl [lindex $::expmap(powderlist) $histnum]
89     puts $histlbl
90     set x ""
91     set atomcount 0
92     foreach atom [histinfo $histlbl anomff] {
93             incr atomcount
94             lappend x "$::anom_lbl($atomcount) $::anom_fp($atomcount) $::anom_f2p($atomcount)"
95     }
96     puts $x
97     foreach test $::anom_list {
98          histinfo $test anomff set $x
99     }
100     incr ::expgui(changed)
101     afterputontop
102     destroy .anomalous
103}
104
105proc anomalous_abort {args} {
106     set histnum $::expgui(curhist)
107     set histlbl [lindex $::expmap(powderlist) $histnum]
108     histinfo $histlbl anomff set $::anom_abort
109     afterputontop
110     destroy .anomalous
111}
112
113proc Edit_Anomalous {args} {
114     anomalous_load
115     anomalous_editor
116}
Note: See TracBrowser for help on using the repository browser.