diptensor

Calculate dipolar tensors.

Syntax
T = diptensor(g1,g2,rvec)
T = diptensor(g,nuc,rvec)
T = diptensor(nuc,g,rvec)
T = diptensor(nuc1,nuc2,rvec)
Description

diptensor calculates the dipolar coupling tensor T (in MHz) between two spins, using the inter-spin distance vector rvec (in nm). It works for dipolar couplings between two electrons, for dipolar couplings between two magnetic nuclei, and for dipolar hyperfine couplings between an electron and a magnetic nucleus. See the corresponding interactions in the spin Hamiltonian.

g1, g2 and g specify the g tensor for an electron. For an isotropic g value, provide a single number. For an anisotropic g tensor, provide either the full 3x3 matrix or the principal values and the Euler angles

g = 2.005;  % isotropic g
g = diag([2.0085 2.0065 2.0023]);      % full g matrix (here diagonal)
g = {[2 2.05 2.13],[30 68 0]*pi/180};  % principal values and Euler angles

The Euler angles define the transformation between the molecular frame (in which rvec is assumed to be defined) and the g tensor eigenframe. This is identical to the gFrame field in the spin system structure.

nuc1, nuc2 and nuc specify the nuclear isotope, for example '1H', '2H', '13C', '15N', etc.

rvec is the 3-element vector originating from the first spin and pointing to the second spin, in units of nm.

The tensor T is a 3x3 matrix, in units of MHz. It is for the Hamiltonian H = S1*T*S2, where S1 and S2 are the spin vector operators for the first and second spin, respectively.

Examples

The dipolar coupling tensor between two electrons spaced 1 nm apart along the molecular z direction is

rvec = [0; 0; 1];  % nm
T = diptensor(gfree,gfree,rvec)
T =
    52.0410         0         0
          0   52.0410         0
          0         0 -104.0820

The hyperfine coupling tensor between an electron and a proton located 0.3 nm away along the molecular x axis is

rvec = [0.3; 0; 0];  % nm
A = diptensor(gfree,'1H',rvec)
A =
    5.8566         0         0
         0   -2.9283         0
         0         0   -2.92830

The dipolar coupling tensor between two electrons 1.5 nm apart in the direction given by polar angles theta = pi/4 and phi = pi/3 is

phi = pi/3;    % rad
theta = pi/4;  % rad
r = 1.5;       % nm
rvec = ang2vec(phi,theta)*r;
T = diptensor(gfree,gfree,rvec)
T =
    9.6372  -10.0153  -11.5647
  -10.0153   -1.9274  -20.0306
  -11.5647  -20.0306   -7.7098

The eigenvalues of this matrix give the principal values of the tensor

eig(T)
ans =
    -30.8391
     15.4196
     15.4196

The associated principal directions are the columns of the eigenvector matrix

[Tpd,Tpv] = eig(T);
Tpd              % eigenvector matrix
Tpd =
    0.3536    0.8660    0.3536
    0.6124   -0.5000    0.6124
    0.7071         0   -0.7071

To calculate the dipolar coupling tensor between two spin centers with anisotropic g, there are two input options. Either provide the full g tensors

g1 = [2.0723   -0.0439    0.0378
     -0.0439    2.0428    0.0238
      0.0378    0.0238    2.1549];
g2 = [1.9052         0    0.0244
           0    1.9500         0
      0.0244         0    2.0148];
rvec = [0;0.3;1];
T = diptensor(g1,g2,rvec)
T =
   45.0248   -1.4288   -0.1124
   -1.4350   33.7441  -39.7333
   -0.2349  -39.1764  -87.2182

Or provide the principal values of the tensor and the Euler angles describing the transformation from the molecular frame to the tensor frame

g1pv = [2 2.1 2.17];
g1Frame = [10 20 40]*pi/180;

g2pv = [1.9 1.95 2.02];
g2Frame = [0 12 0]*pi/180;

rvec = [0;0.3;1];
T = diptensor({g1pv,g1Frame},{g2pv,g2Frame},rvec)
T =
   45.0238   -1.4284   -0.1130
   -1.4346   33.7445  -39.7319
   -0.2350  -39.1778  -87.2200

Note that in either case, as a result of the anisotropic g tensors involved, the output tensor is not symmetric. To decompose it into its isotropic, symmetric and antisymmetric parts, use

T0 = trace(T)*eye(3)   % isotropic component
Ts = (T+T.')/2 - T0    % traceless symmetric component
Ta = (T-T.')/2         % antisymmetric component
T0 =
   -8.4518         0         0
         0   -8.4518         0
         0         0   -8.4518
Ts =
   53.4755   -1.4315   -0.1740
   -1.4315   42.1963  -39.4549
   -0.1740  -39.4549  -78.7683
Ta =
         0    0.0031    0.0610
   -0.0031         0   -0.2771
   -0.0610    0.2771         0
See also

The function implements the expression

[eqn]

where [eqn] and [eqn] are [eqn] for an electron and [eqn] for a nuclear spin. [eqn] is the g tensor. [eqn] is the unit vector pointing from spin 1 to spin 2 (or vice versa) and [eqn] is the inter-spin distance.

See also

ang2vec, angstrom, bmagn, ham_ee, gfree, ham_hf, isotopes, mu0, nmagn, nucgval