sim2liouv.m
Moves a zeeman-hilb simulation context into Liouville space. When the formalism specified in the spin system object is 'zeeman-hilb', this function projects the evolution generators into Liouville space, converts the standard state-like and operator-like fields of the parameters structure, rebuilds the basis index table, migrates the symmetry irrep projectors into the adjoint representation, and sets the formalism to 'zeeman-liouv'; for all other formalisms, every argument is returned unchanged. This makes Liouville-space pulse sequences callable with zeeman-hilb inputs.
The generators are projected with hilb2liouv.m: H into a commutation superoperator, R and K into anticommutation superoperators. The state-like fields rho0, coil, and screen are reshaped into columns of length hdim^2, where hdim is the number of rows of the Hilbert space basis table, and the operator-like fields pulse_op, mw_oper, and ez_oper are turned into commutation superoperators; each field is touched only if it is present. The Liouville space basis table is assembled as [repmat(zbas,[hdim 1]) kron(zbas,ones(hdim,1))] from the Hilbert space table zbas. If spin_system.bas.irrep is present, every ordered pair (n,k) of Hilbert space irreps produces a Liouville space irrep with projector kron(conj(S(n)),S(k)) and dimension equal to the product of the two Hilbert space dimensions, giving n_irreps^2 subspaces, and the count is reported to the user.
Syntax
[spin_system,parameters,H,R,K]=...
sim2liouv(spin_system,parameters,H,R,K)
Parameters
spin_system - Spinach spin system object
parameters - pulse sequence parameters structure; the
state-like fields rho0, coil, and screen
(matrices or their horizontal concatena-
tions) are stretched into state vectors,
and the operator-like fields pulse_op,
mw_oper, and ez_oper are converted into
commutation superoperators, when present
H - Hamiltonian operator, converted into a
commutation superoperator; an empty
matrix is passed through
R - relaxation matrix, converted into an
anticommutation superoperator; an empty
matrix is passed through
K - kinetics matrix, converted into an
anticommutation superoperator; an empty
matrix is passed through
Outputs
spin_system - spin system object with zeeman-liouv
formalism and basis information
parameters - parameters structure with the standard
fields converted into Liouville space
H,R,K - Liouville space evolution generators
Notes
A Hilbert space density matrix block S(n)*Y*S(k)' maps to the state vector kron(conj(S(k)),S(n))*Y(:), and so each ordered pair of Hilbert space irrep projectors yields the Liouville space irrep projector kron(conj(S(k)),S(n)). Every such subspace is invariant under superoperators built from symmetry-respecting Hilbert space generators; unpopulated subspaces are dropped by reduce.m at run time in the usual way.
See also
hilb2liouv.m, reduce.m, sphten2zeeman.m, Basis set specification, Kernel utilities
Version 2.13, authors: Ilya Kuprov