Ignore:
Timestamp:
Jan 18, 2011 4:19:26 PM (10 years ago)
Author:
toby
Message:

recent changes: fix coordinates, rb start

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/sandbox/readexp.tcl

    r1106 r1109  
    187187        }
    188188    }
     189    # load the constrained parameters
     190    atom_constraint_load
    189191    set expgui(mapstat) 1
    190192}
     
    21622164}
    21632165
     2166#  read fixed constraints
     2167
     2168proc atom_constraint_read {phase} {
     2169
     2170         set fix_list ""
     2171         foreach k {1 2 3 4 5 6 7 8 9} {
     2172                  set key [format "LEQV HOLD%1d%2d" $phase $k]
     2173                  set line [readexp $key]
     2174                  foreach j {2 10 18 26 34 42 50 58} {
     2175                           set fix_param [string range $line $j [expr $j+7]]
     2176                           if {[string trim $fix_param] == ""} {return $fix_list}
     2177                           lappend fix_list $fix_param
     2178                  }
     2179         }
     2180}
     2181
     2182# load all atom constraints into global array fix_param
     2183proc atom_constraint_load { } {
     2184     catch {unset ::fix_param}
     2185     foreach i $::expmap(phaselist) {
     2186             set temp [atom_constraint_read $i]
     2187             foreach j $temp {
     2188                     set atomnum [string trim [string range $j 2 3]]
     2189                     set param [string trim [string range $j 4 6]]
     2190                     set ::fix_param($i,$atomnum,$param) 1
     2191
     2192                     }
     2193     }
     2194}
     2195
     2196proc atom_constraint_write {phase fix_list} {
     2197
     2198     foreach key [array names ::exparray "LEQV HOLD$phase*"] {
     2199             delexp $key
     2200     }
     2201     set k 0
     2202     set j 1
     2203     set line ""
     2204     foreach fix $fix_list {
     2205             incr k
     2206             append line $fix
     2207             if {$k == 8} {
     2208                set key [format "LEQV HOLD%1d%2d" $phase $j]
     2209                makeexprec $key
     2210                setexp $key $line 3 [expr ($k * 8) + 2]
     2211                set k 0
     2212                incr j
     2213                set line ""
     2214             }
     2215     }
     2216     if {$line != ""} {
     2217        set key [format "LEQV HOLD%1d%2d" $phase $j]
     2218        makeexprec $key
     2219        setexp $key $line 3 [expr ($k * 8) + 2]
     2220     }
     2221
     2222}
     2223
     2224
     2225
    21642226#  get a logical constraint
    21652227#
Note: See TracChangeset for help on using the changeset viewer.