Spin Dynamics Forum
Spinach support => Simulations => Topic started by: faq_user on May 17, 2012, 02:28:06 PM
I noticed you have absorbing boundaries in one of your CP examples. Is it also possible to implement periodic boundary conditions?
The "boundaries" in question are boundaries of the operator algebra -- the highest correlations in the basis are damped to emulate the loss of magnetization in the depth of the product space. Please be careful, that is not a documented option and we do not at the moment fully understand its effect.
I guess you are referring to the periodic boundary in real space. That is quite easy, just set up the spin interactions between opposite ends of your system as appropriate and run Spinach as usual.
Thanks, this would work for J-couplings, but my understanding is that dipolar couplings are specified via distances only, so opposite ends would not be coupled.
You can supply your own 3x3 coupling matrices directly to inter.coupling.matrix structure -- those have no restrictions. The XYZ input is for convenience only -- not everyone runs on toroidal manifolds. :)
Thanks, when I do it via this matrix, it appears that it turns on strong isotropic coupling
output log says:
h_superop: strong isotropic coupling term for spins 1,2...
(LxSx+LySy+LzSz) x 362.6667 Hz
Attached is the script that I used.
A peculiarity of the spherical tensor expansion – the YY and the ZZ terms will cancel after the anisotropy is added, see further printout from the same function.
Thanks, so you are saying I can ignore this?
Path tracing, however, finds different subspaces depending on whether I do it via distances or via the coupling matrix.
(in attached file, I have a linear 4-spin chain). Setting calc_via_distances to 1 does it via distances, and via the matrix otherwise.
The appearance of the spectra is also slightly different.
Mmmmm, let me do a bit of extra checking then…
That “isotropic part” is actually correct – if you do the spherical tensor expansion of your 3x3 matrix, that is what you get for the T00 term. But after you get the T2m terms into the mix as well, stuff cancels selectively and you get the correct interactions in the Hamiltonian.
This is a consequence of the fact that Spinach basis set is spherical tensors, not Cartesian spin operators.
OK, got it – what you are supplying is not actually the full dipolar coupling, just the secular part of it. It has a trace, and that’s not right because proper DD interaction is traceless. If you supply the full and proper traceless dipolar matrix to Spinach, everything will match.
When you supply coordinates, Spinach actually includes the flip-flop terms into consideration, hence the different result.
In general, Spinach expects that the user will supply “the truth” – i.e. the original unaltered non-approximate interactions. The approximations are applied by setting assumptions during a call to the secularity() function.
Thank you, that clears it up!