Rotational Echo Adiabatic Passage DOuble Resonance, SIMPSON 4.1.1 fitting program
This SIMPSON fitting program extracts the value of the heteronuclear dipole coupling D from reapdorPAl,1.fid.
spinsys { channels 31P 27Al nuclei 31P 27Al dipole 1 2 -439 0 0 0 quadrupole 2 2 2.8e6 0 0 0 0 } par { variable index 1 np 32 spin_rate 10000 proton_frequency 500e6 start_operator I1x detect_operator I1p method direct crystal_file rep320 gamma_angles 25 sw spin_rate/2 variable tsw 1e6/sw verbose 0 variable rfx 50000 variable rfy 50000 variable t180x 0.5e6/rfx variable tadia 0.3e6/spin_rate variable tr1 0.5e6/spin_rate-t180x variable tr2 0.5e6/spin_rate-0.5*t180x-0.5*tadia } proc pulseq {} { global par reset delay $par(tr1) pulse $par(t180x) $par(rfx) x 0 x delay $par(tr1) pulse $par(t180x) $par(rfx) y 0 x store 1 reset acq delay $par(tr1) pulse $par(t180x) $par(rfx) x 0 x delay $par(tr2) pulse $par(tadia) 0 x $par(rfy) x delay $par(tr2) pulse $par(t180x) $par(rfx) x 0 x delay $par(tr1) pulse $par(t180x) $par(rfx) y 0 x store 2 acq -x for {set i 2} {$i < $par(np)} {incr i} { reset prop 1 prop 2 prop 1 store 2 acq -x } } proc progress {} { global par if ![info exists par(progress)] { set par(progress) -1 } incr par(progress) set str {"* " \ " * " \ " * " \ " *" \ " * " \ " * "} return [lindex $str [expr $par(progress)%6]] } lappend ::auto_path ./opt package require opt proc rms {{save 0}} { global par # simulate REAPDOR curve set f [fsimpson [list \ [list dipole_1_2_aniso $opt::dipole12]]] # scale REAPDOR curve fautoscale $f $par(exp) -re set rms [frms $f $par(exp) -re] if {$save == 1} { puts [format " \[%s\] %10.3f" \ FINAL $rms] # write simulated REAPDOR curve to disc fsave $f $par(name),$par(index).fid } else { puts [format " \[%s\] %10.3f %10.3f\015" \ [progress] $opt::dipole12 $rms] } flush stdout funload $f return $rms } proc main {} { global par mn set par(exp) [fload reapdorPAl,1.fid] opt::function rms puts " Progress dipole12 rms" opt::newpar dipole12 -200 -20 -1 -1500 opt::minimize 1.0e-6 rms 1 }