SIMPSON 4.1.1 fitting program for REAPDOR data

Home and Applets > Pulse Sequence > REAPDOR SIMPSON 4.1.1 Fitting Program

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 
}

Solid-state NMR bibliography for:

Aluminum-27
Antimony-121/123
Arsenic-75
Barium-135/137
Beryllium-9
Bismuth-209
Boron-11
Bromine-79/81
Calcium-43
Cesium-133
Chlorine-35/37
Chromium-53
Cobalt-59
Copper-63/65
Deuterium-2
Gallium-69/71
Germanium-73
Gold-197
Hafnium-177/179
Indium-113/115
Iodine-127
Iridium-191/193
Krypton-83
Lanthanum-139
Lithium-7
Magnesium-25
Manganese-55
Mercury-201
Molybdenum-95/97
Neon-21
Nickel-61
Niobium-93
Nitrogen-14
Osmium-189
Oxygen-17
Palladium-105
Potassium-39/41
Rhenium-185/187
Rubidium-85/87
Ruthenium-99/101
Scandium-45
Sodium-23
Strontium-87
Sulfur-33
Tantalum-181
Titanium-47/49
Vanadium-51
Xenon-131
Zinc-67
Zirconium-91
[Contact me] - Last updated February 21, 2020
Copyright © 2002-2024 pascal-man.com. All rights reserved.