Human2opspec.m
Converts user-friendly descriptions of spin states and operators into the formal description (opspec) used by Spinach kernel. The function supports two types of calls:
1. If both inputs are strings, e.g.
[opspecs,coeffs]=human2opspec(spin_system,'Lz','13C')
the function returns a list of single-spin opspecs for all spins with the specified name. In the example above, the list of Lz operator specificati- ons for all 13C nuclei in the system would be returned.
Valid labels for operators in this type of call are 'E', 'Lz', 'L+', 'L-' and 'Tl,m'. In the latter case, l and m are integers. Valid labels for the spins are standard isotope names as well as 'electrons', 'nuclei', 'all'.
2. If the two inputs are a cell array of strings and a cell array of num- bers respectively, a product operator specification is produced, e.g.
[opspecs,coeffs]=human2opspec(spin_system,{'Lz','L+'},{1,2})
would return the LzL+ operator specification with Lz on spin 1 and L+ on spin 2. Valid labels for operators in the cell array are 'E', 'Lz', 'L+', 'L-' and 'Tl,m'. In the latter case, l and m are integers.