Rotational Echo DOble Resonance, SIMPSON 4.1.1 program
*** Outline ***
(1) redorIx

The first simulated signal amplitude in the resulting file provided by this SIMPSON program is S0. The second signal amplitude is that of two-rotor-period REDOR experiment.
spinsys {
channels 13C 15N
nuclei 13C 15N
dipole 1 2 895 10 20 30
shift 1 10p 100p 0.5 50 20 10
}
par {
variable index 1
np 32
spin_rate 10000
proton_frequency 400e6
start_operator I1x
detect_operator I1p
method direct
crystal_file rep320
gamma_angles 18
sw spin_rate/2
variable tsw 1e6/sw
verbose 1101
variable rfF1 50000
variable rfF2 50000
variable t180F1 0.5e6/rfF1
variable t180F2 0.5e6/rfF2
variable tr1 0.5e6/spin_rate-0.5*t180F1-0.5*t180F2
variable tr2 0.5e6/spin_rate-t180F2
}
proc pulseq {} {
global par
reset
delay $par(tr2)
pulse $par(t180F2) 0 x $par(rfF2) x
delay $par(tr2)
pulse $par(t180F2) 0 x $par(rfF2) y
store 1
reset
acq
delay $par(tr2)
pulse $par(t180F2) 0 x $par(rfF2) x
delay $par(tr1)
pulse $par(t180F1) $par(rfF1) x 0 x
delay $par(tr1)
pulse $par(t180F2) 0 x $par(rfF2) x
delay $par(tr2)
pulse $par(t180F2) 0 x $par(rfF2) y
store 2
acq
for {set i 2} {$i < $par(np)} {incr i} {
reset
prop 1
prop 2
prop 1
store 2
acq
}
}
proc main {} {
global par
set f [fsimpson]
fsave $f $par(name),$par(index).fid
}

References
M. Bak, J. T. Rasmussen, and N. C. Nielsen, SIMPSON: a general simulation program for solid-state NMR.
(2) redorIz

The first simulated signal amplitude in the resulting file provided by this SIMPSON program is that of two-rotor-period REDOR experiment.
spinsys {
channels 13C 15N
nuclei 13C 15N
dipole 1 2 895 10 20 30
shift 1 10p 100p 0.5 50 20 10
}
par {
variable index 1
np 32
spin_rate 10000
proton_frequency 400e6
start_operator I1z
detect_operator I1p
method direct
crystal_file rep320
gamma_angles 18
sw spin_rate/2
variable tsw 1e6/sw
verbose 1101
variable rfF1 50000
variable rfF2 50000
variable t180F1 0.5e6/rfF1
variable t90F1 0.25e6/rfF1
variable t180F2 0.5e6/rfF2
variable tr 1e6/spin_rate
variable de 0
variable d25 tr/4
variable d26 tr/4-t180F2/2
variable d27 tr/4-t180F1/2
variable d28 tr/4-de
}
proc pulseq {} {
global par
for {set i 0} {$i < $par(np)} {incr i} {
reset
pulse $par(t90F1) $par(rfF1) y 0 0
delay $par(d25)
for {set j 0} {$j < 2*$i+1} {incr j} {
delay $par(d26)
pulse $par(t180F2) 0 0 $par(rfF2) [expr 90*($j % 2)]
delay $par(d26)
}
delay $par(d27)
pulse $par(t180F1) $par(rfF1) x 0 0
delay $par(d27)
for {set j 0} {$j < 2*$i+1} {incr j} {
delay $par(d26)
pulse $par(t180F2) 0 0 $par(rfF2) [expr 90*($j % 2)]
delay $par(d26)
}
delay $par(d26)
pulse $par(t180F2) 0 0 $par(rfF2) y
acq
}
}
proc main {} {
global par
set f [fsimpson]
fsave $f $par(name),$par(index).fid
}

(3) redorAlP

spinsys {
channels 27Al 31P
nuclei 27Al 31P
dipole 1 2 -439 10 20 30
quadrupole 1 2 3e6 1 0 0 0
}
par {
variable index 1
np 32
spin_rate 10000
proton_frequency 500e6
start_operator I1z
detect_operator I1c
method direct
crystal_file rep66
gamma_angles 5
sw spin_rate/2
variable tsw 1e6/sw
verbose 1101
variable rfF1 50000
variable rfF2 50000
variable t180F1 4.7
variable t90F1 2.2
variable t180F2 0.5e6/rfF2
variable tr 1e6/spin_rate
variable de 0
variable d25 tr/4
variable d26 tr/4-t180F2/2
variable d27 tr/4-t180F1/2
variable d28 tr/4-de
}
proc pulseq {} {
global par
for {set i 0} {$i < $par(np)} {incr i} {
reset
pulse $par(t90F1) $par(rfF1) y 0 0
delay $par(d25)
for {set j 0} {$j < 2*$i+1} {incr j} {
delay $par(d26)
pulse $par(t180F2) 0 0 $par(rfF2) [expr 90*($j % 2)]
delay $par(d26)
}
delay $par(d27)
pulse $par(t180F1) $par(rfF1) x 0 0
delay $par(d27)
for {set j 0} {$j < 2*$i+1} {incr j} {
delay $par(d26)
pulse $par(t180F2) 0 0 $par(rfF2) [expr 90*($j % 2)]
delay $par(d26)
}
delay $par(d28)
acq
}
}
proc main {} {
global par
set f [fsimpson]
fsave $f $par(name),$par(index).fid
}

