# 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.