Closed cerium1925 closed 1 year ago
Thanks for these comments!
I agree that the nomenclature for Euler angles frame transformations (gFrame
, MolFrame
, SampleFrame
etc.) is not the most explicit.
At this point, however, EasySpin is too widely used to completely change the naming scheme. The break would be too large, without any tangible benefits. The current scheme is internally consistent (esp. now with the newly introduced SampleFrame
), and it is well documented.
Regarding how to orient a crystal in the spectrometer, it is better to use Exp.SampleFrame
rather than Exp.MolFrame
. Exp.Molframe
is for orienting the spin center inside the crystal, and Exp.SampleFrame
is for orienting the crystal within the spectrometer. The common angles phi
and theta
are two of the Euler angles for transformation from the molecular frame to the laboratory frame, and in the case that either Exp.SampleFrame
or Exp.MolFrame
is [0 0 0]
, they are simply the flipped and inverted angles from the other. I think there is no ambiguity here.
In fact, the current Exp.SampleFrame is completely invalid for defining B//a, B//b, and B//c. The following is a simulation example:
clear, clc, clf;
% Experimental parameter---------- Exp.mwFreq = 9.5; Exp.Range = [160 600]; Exp.nPoints = 1e3;
% Exp.CrystalSymmetry = 141; % Exp.MolFrame = [0 pi./2 pi./2]; % Exp.SampleFrame = [0 0 0];
Opt.Verbosity = 2; Opt.GridSize = [60 3];
% Spin parameter............. Sys.S = 1/2; Sys.g = [1.5 2 3]; Sys.Nucs = 'Al'; Sys.A = [100 150 250]*2.802495; Sys.lw = [1 1];
% Display and data output............
[b,spc,trans] = pepper(Sys,Exp,Opt); spc = normalize(spc);
plot(b,spc,'linewidth',1.5); xlabel('magnetic field (mT)'); axis tight;
1) Only valid in the Exp.MolFrame function: B//a ---------[0 pi./2 0]; B//b --------[0 pi /2 pi/2]; B//c ----------[0 0 0]; 2) Does the new Exp.SampleFrame function miss the function of the original Exp.CrystalOrientation?
3) If the Exp.MolFrame definition plays a role, this conflicts with the currently newly defined Euler angle. Currently cry2lab's Euler angle conversion is Exp.MolFrame, not Exp.MolFrame. Did the two functions get replaced incorrectly when revising and replacing the function names?
Is this what you are looking for?
clear, clc, clf
Exp.mwFreq = 9.5;
Exp.Range = [160 600];
Exp.nPoints = 1e3;
Sys.S = 1/2;
Sys.g = [1.5 2 3];
Sys.Nucs = 'Al';
Sys.A = [100 150 250]*2.802495;
Sys.lw = [1 1];
% Powder
[B,spc] = pepper(Sys,Exp);
% Crystal
Exp.CrystalSymmetry = 'P1'; % one site per unit cell
Exp.MolFrame = [0 0 0]; % spin center aligned with crystal frame
Exp.SampleFrame = [0 -pi/2 0]; % field along crystal X axis
[B,spcX] = pepper(Sys,Exp);
Exp.SampleFrame = [0 -pi/2 -pi/2]; % field along crystal Y axis
[B,spcY] = pepper(Sys,Exp);
Exp.SampleFrame = [0 0 0]; % field along crystal Z axis
[B,spcZ] = pepper(Sys,Exp);
subplot(2,1,1)
plot(B,spc)
subplot(2,1,2)
plot(B,spcX,B,spcY,B,spcZ);
legend('B||x','B||y','B||z');
Exp.CrystalSymmetry = 'P1'; % one site per unit cell Exp.MolFrame = [0 0 0]; % spin center aligned with crystal frame Exp.SampleFrame = [0 -pi/2 0]; % field along crystal X axis [B,spcX] = pepper(Sys,Exp); Exp.SampleFrame = [0 -pi/2 -pi/2]; % field along crystal Y axis [B,spcY] = pepper(Sys,Exp); Exp.SampleFrame = [0 0 0]; % field along crystal Z axis [B,spcZ] = pepper(Sys,Exp);
Yes, but the current Euler angles are weird compared to the previous version.
I personally think the following naming is more straightforward:
C---L: cry2Lab (very convenient to the actual test)
M--L: mol2cry (actually, this cannot be directly measured experimentally. Generally, a paramagnetic center's maximum rotation axis is obtained through single crystal analysis, relative to the maximum rotation axis of the unit cell, which is of course the most direct By default, they overlap best)
Molecular symmetry: (molecular space group): crystal symmetry: cry_sym T----M; tensor ---- mol, such as gFrame, AFrame, B2Frme, B4Frame..... Similar naming can also be adopted: such as g2mol, A2mol, B22mol, D2mol....
The current Function naming rules are very confusing and confusing:
1) For example, B0//a, I need to write: Exp.MolFrame = [0 pi./2 0];
2) B0//b. needs to be written as: Exp.MolFrame = [0 pi./2 pi./2]; This is the most confusing! In the past, Exp.CrystalOrientation = [pi./2 pi./2 0] was used, which is consistent with the defined function angle of levelplot.
3) B0//c, needs to be written as: Exp.MolFrame = [0 0 0]