Detection of complicated states

Topics related to Spinach package
Post Reply
faq_user
Posts: 49
Joined: Tue Jul 13, 2021 8:33 am

Detection of complicated states

Post by faq_user »

I am trying to simulate in Spinach a simple multi-pulse sequence, steady-state free precession (SSFP), in solid state nmr in the presence of a quadrupolar interaction and T1 & T2 relaxation.

My first question is how can I detect different SQC: I want to differentiate between the central transition and the satellite transitions on top of the 'L+' operator, is there a way to do that? along the same lines, is there a way to 'detect' multiple quantum coherences of a quadrupole?

The second question is a more minor one: I am struggling to normalize correctly according to the thermal polarization. my starting condition is:

parameters.rho0=equilibrium(spin_system,hamiltonian(assume(spin_system,'labframe'),'left'))

and I normalize in the end by taking dP from

[~,P,dP]=levelpop('1H',sys.magnet,inter.temperature)

As a sanity check, I started with a spin 1/2 in liquids and tried to reproduce a literature result of SSFP Bloch simulations (which I also simulated myself via Bloch simulations). When I run this in Spinach for a single '1H' spin in liquids I get a factor 2 discrepancy (see below). This only gets worse when I add a spin 3/2 ('87Rb'), for which I currently normalize by the sum of dP.
kuprov
Posts: 123
Joined: Mon Mar 29, 2021 4:26 pm

Re: Detection of complicated states

Post by kuprov »

The first question is easy – find the operator combination that represents your line and use that as the detection state. For example, in liquid state AX NMR spin system A+ is the full line, 2A+Xz is the anti-phase version, and the sum of A+ and A+Xz is one of the two lines. The same applies to any other coherence: if you know the operator of that coherence, you can supply that operator to the state() function to get the corresponding detection state. Instructions are here:

http://spindynamics.org/wiki/index.php?title=State.m

The second question is super-painful; normalisation is problematic in spin dynamics because it is system size dependent. Imagine a single 87Rb spin, and say an Lx operator. And then imagine a system where we add a proton on the other end of the universe. The proton does nothing, but the norm of the Lx on 87Rb is now different! You need to find out how the folks in that paper normalised their intensities and replicate that in the calculation. It will take a lot of guesswork, but these things are usually combinations of (2S+1) and S(S+1).

It also rather depends on which Spinach function you are using. Some (evolution.m and krylov.m) automatically normalise the detection state, others do not. There are many reasons, a good place to start is thermal_equilibrium.m in the fundamentals directory of the example set. Note also that the default for the matrix norm(A) in Matlab is 2-norm, which is not the right one – you need the Frobenius norm for matrices, obtainable with norm(A,’fro’). Anyway, it will be a detective story… soz, you’ve hit one of the legendary Messes of Spin Physics here. :)
faq_user
Posts: 49
Joined: Tue Jul 13, 2021 8:33 am

Re: Detection of complicated states

Post by faq_user »

Thanks for your quick & elaborate response. Regarding the first question, thanks, I'll figure out which operator combination to use for the central transition\ satellite transitions. Regarding the normalization, yes, I understand that it's dependent on the system size. The folks in the paper used M0=1. So theoretically, if you normalize by the intensity of the first point after a perfect 90 pulse, I think that should give the right answer. Even when I do that for a single spin 1/2, there is still a factor 2. But I can let that go for the moment.
Post Reply