Supplementary Material:
(^14)N Overtone NMR Spectra under Magic Angle Spinning:
Experiments and Numerically Exact Simulations
Luke O’Dell and Andreas Brinkmann

MAS Overtone NMR

({{Author:, Andreas Brinkmann}, {Address:, ({{Measurement Science and Standards
National Research Council}, {1200 Montreal Road,M–40}, {Ottawa,Ontario K1A 0R6}, {Canada}})}, {Email:, Andreas.Brinkmann@nrc–cnrc.gc.ca}})

Note
This notebook for Mathematica 8 requires the SpinDynamica package in at least version 2.6.

Reference
This notebook employs the SpinDynamica code programmed by Malcolm H. Levitt, available at www.spindynamica.soton.ac.uk.

Launch Kernels (here 3 on a 4 core processor)

LaunchKernels[3];

Load Packages

$Path=Append[$Path,"~/mathematica/SDv2.6b4/SpinDynamica"];
Needs["SpinDynamica`"];
Needs["Rotations`OrientationalSampling`"];
Needs["PlotLegends`"];

Hamiltonian Spin-1

setup spin system

SetSpinSystem[{{1,1}}];

Zeeman

Hz[j:Except[_List],ω0_]:=(-ω0 opI[j,"z"]);

rf

Hrf[j:Except[_List],opts__Rule]:=PeriodicFunction[t,Evaluate[(2π/ωref)//.{opts}],
Evaluate[(-ω1 Cos[ωref t+ϕ](Sin[θ]opI[j,"x"]+Cos[θ]opI[j,"z"]))//.{opts}]
];

HrfWURST[j:Except[_List],opts__Rule]:=ShapeFunction[t,{tt,0},
Evaluate@Module[{w1,wref,theta,offset,bandwidth,tau,exponent,phi,wrf},
{w1,wref,theta,offset,bandwidth,tau,exponent}={ω1,ωref,θ,ΩW,ΔW,τW,nW}//.{opts};
phi=2π((offset-bandwidth/2)tt+bandwidth (tt^2)/(2tau));
wrf=w1(1-((Abs[Sin[π(tt/tau-1/2)]])^exponent));
-wrf Cos[wref t+phi](Sin[theta]opI[j,"x"]+Cos[theta]opI[j,"z"])
]
];

quadrupolar coupling

HQMAS[j:Except[_List],ωQ_,η_][ωr_,θ_][ΩPR:{αPR_,βPR_,γPR_}]:=PeriodicFunction[t,2π/ωr,
First@Flatten@Inner[
Times,
{{-η ωQ/6,0,ωQ/Sqrt[6],0,-η ωQ/6}}.WignerD[2][{{αPR,βPR,γPR},{-ωr t,-θ,0}}],
Table[{(((-1))^q)opT[j,{2,q}]},{q,-2,2,1}],
Plus
]
];

complete Hamiltonian

HMASint[opts___Rule]:=PeriodicFunction[t,
Evaluate[(2π/ωr)/.{opts}],
Evaluate@Module[{wr,theta,w0,wQ,etaQ,WPR},
{wr,theta,w0,wQ,etaQ,WPR}={ωr,θ,ω0,ωQ,ηQ,ΩPR}//.{opts};
Hz[1,w0]+HQMAS[1,wQ,etaQ][wr,theta][WPR][t]
]
];

detection Operator

Qdetect[j:Except[_List],opts___Rule]:=(Cos[θ]opI[j,"z"]+Sin[θ]opI[j,"x"])//.{opts};

Additional Functions

HarmonicFilter[Signal[times_,data_,sigopts___Rule],freq_,harmonic_]:=
Signal[times,{data[[1]],Select[data[[2]],(Chop[Mod[Round[10.#[[2]]/(2π)]/10.-freq,harmonic]]≠0.0)&]},sigopts];

PhaseZeroOrder[sigft_,phase_]:=({#[[1]],#[[2]]Exp[I phase]})&/@sigft;

ToReferenceFrame[sigft_,ref_]:={#[[1]]-ref,#[[2]]}&/@sigft;

fold[f_,sw_]=-sw/2+Mod[f-sw/2,sw];

Histidine Site N2 at 500 MHz

Rectangular Pulse: 70 kHz MAS, (Subscript[τ, p])=1.0μs, (Subscript[ω, rf])/2π=70 kHz on 2H (liquid D2O)

DefaultParameters=Sequence[
ω00->2π ×36.×(10^6),
ω0->(1-211 (10^(-6)))ω00,
ωQ->-2π ×3/(2SpinQuantumNumber[1](2SpinQuantumNumber[1]-1))×3.3×(10^6),
ηQ->0.12,
θ->N@ArcTan[Sqrt[2]],
ωr->2π  70000.,
ωref->2 ω00+2ωr,
ω1->2π×(MagnetogyricRatio[14]/MagnetogyricRatio[2])×2×70.×(10^3)/N[Sin[ArcTan[Sqrt[2]]]],
ϕ->N[π/2]
];

NoPoints=146;
T=10000 10^-6; δt=((2π/ωr)//.{DefaultParameters})/ NoPoints;
foldref=fold[(- ω00/π)//.{DefaultParameters},NoPoints((ωr/(2π))//.{DefaultParameters})];

{time,sigpt}=
AbsoluteTiming[
Signal1D[{0,T,δt},
EvolutionBackground->HMASint[ΩPR->orientation,DefaultParameters],
EnsembleAverage->{orientation,OrientationsAndWeights["ZCW144"]},
CarouselAverage->False,
Preparation->{{Hrf[1,DefaultParameters],1.0×(10^(-6))}},
InitialDensityOperator->opT[1,{1,0}],
Observable->Qdetect[1,DefaultParameters],
SignalCalculationMethod -> "COMPUTE",
MaxSteps->Infinity,
LineBroadening ->None,
MaxBatchSize->102,
Parallel->True
]
];

time

sigpf=
ToReferenceFrame[
PhaseZeroOrder[
FT[
HarmonicFilter[sigpt,0,(ωr/(2 π))//.{DefaultParameters}],
ZeroFill->True,LineBroadening->2π 1000.
],
39 Degree
],
foldref
];

ListPlot[Re@sigpf,Frame->True,Joined->True,PlotRange->{{-230,180}(10^3),{-15,70}(10^(-5))},Axes->False,LabelStyle->{FontSize->9}]

WURST Pulse: 70 kHz MAS, (Subscript[τ, p])=100.0μs, (Subscript[ω, rf])/2π=70 kHz on 2H (liquid D2O)

DefaultParameters=Sequence[
ω00->2π ×36.×(10^6),
ω0->(1-211 (10^(-6)))ω00,
ωQ->-2π ×3/(2SpinQuantumNumber[1](2SpinQuantumNumber[1]-1))×3.3×(10^6),
ηQ->0.12,
θ->N@ArcTan[Sqrt[2]],
ωr->2π  70000.,
ωref->2 ω00+2ωr,
ω1->2π×(MagnetogyricRatio[14]/MagnetogyricRatio[2])×2×70.×(10^3)/N[Sin[ArcTan[Sqrt[2]]]],
ϕ->N[π/2],
ΩW->0.,
ΔW->150000.,
τW->100.0 (10^(-6)),
nW->80
];

NoPoints=146;
T=10000 10^-6; δt=((2π/ωr)//.{DefaultParameters})/ NoPoints;
foldref=fold[(- ω00/π)//.{DefaultParameters},NoPoints((ωr/(2π))//.{DefaultParameters})];

{time,sigwt}=
AbsoluteTiming[
Signal1D[{0,T,δt},
EvolutionBackground->HMASint[ΩPR->orientation,DefaultParameters],
EnsembleAverage->{orientation,OrientationsAndWeights["ZCW144"]},
CarouselAverage->False,
Preparation->{{HrfWURST[1,DefaultParameters],(τW//.{DefaultParameters})}},
InitialDensityOperator->opT[1,{1,0}],
Observable->Qdetect[1,DefaultParameters],
SignalCalculationMethod -> "COMPUTE",
MaxSteps->Infinity,
LineBroadening ->None,
MaxBatchSize->102,
Parallel->True
]
];

time

sigwf=
ToReferenceFrame[
PhaseZeroOrder[
FT[
HarmonicFilter[sigwt,0,(ωr/(2 π))//.{DefaultParameters}],
ZeroFill->True,LineBroadening->2π 1000.
],
85 Degree
],
foldref
];

ListPlot[Re@sigwf,Frame->True,Joined->True,PlotRange->{{-230,180}(10^3),{-60,700}(10^(-5))},Axes->False,LabelStyle->{FontSize->9}]

Comparison

ListPlot[{Re@sigwf,Re@sigpf},Frame->True,Joined->True,PlotRange->{{-230,180}(10^3),{-60,700}(10^(-5))},Axes->False,PlotStyle->{Blue,Red},PlotLegend->{"WURST 100μs","rectangular 1μs"},LegendShadow->None,LegendPosition->{0.2,0.2},LegendSize->{0.65,0.3},LabelStyle->{FontSize->9}]

ListPlot[{Re@sigwf,Re@sigpf},Frame->True,Joined->True,PlotRange->{{-200,-140}(10^3),{-60,700}(10^(-5))},Axes->False,PlotStyle->{Blue,Red},PlotLegend->{"WURST 100μs","rectangular 1μs"},LegendShadow->None,LegendPosition->{0.2,0.2},LegendSize->{0.65,0.3},LabelStyle->{FontSize->9}]