I constructed the same operator for a two 1H system using the 'zeeman-liouv' and the 'sphten-liouv' basis. When I convert the matrix representation of 'sphten-liouv', to the Zeeman basis, I get different elements in the two methods. Basically there is a factor of 2 multiplied in the 'sphten-liouv' case. Where am I making a mistake here ? This is done using Spinach-2.10-1.
Code: Select all
% Liouville space, zeeman
bas.formalism = 'zeeman-liouv';
bas.approximation = 'none';
% Spinach housekeeping
spin_system=create(sys,inter);
spin_system=basis(spin_system,bas);
% LLS operator start and detect state
llsop= 2*(state(spin_system,{'Lx','Lx'},{1,2}, 'exact')...
+state(spin_system,{'Ly','Ly'},{1,2}, 'exact')...
+state(spin_system,{'Lz','Lz'},{1,2},'exact'));
llsop= llsop/norm(llsop);
llsop= reshape(llsop,4,4);
disp(full(llsop))0 -0.2887 0.5774 0
0 0.5774 -0.2887 0
0 0 0 0.2887
Whereas
Code: Select all
% Basis set
bas.formalism='sphten-liouv';
bas.approximation='none';
% Spinach housekeeping
spin_system=create(sys,inter);
spin_system=basis(spin_system,bas);
% LLS operator start and detect state
llsop= 2*(state(spin_system,{'Lx','Lx'},{1,2}, 'exact')...
+state(spin_system,{'Ly','Ly'},{1,2}, 'exact')...
+state(spin_system,{'Lz','Lz'},{1,2},'exact'));
llsop= llsop/norm(llsop);
% check how LLS operator looks like in Zeeman basis
P=sphten2zeeman(spin_system);
LLS=P*llsop;
LLS=reshape(LLS,4,4);
disp(full(LLS))0.5774 0 0 0
0 -0.5774 1.1547 0
0 1.1547 -0.5774 0
0 0 0 0.5774