Mixed Systems
Struqture can be used to represent mixed operators, hamiltonians and open systems, such as: \[ \hat{H} = \sum_j \alpha_j \prod_k \sigma_{j, k} \prod_{l, m} b_{l, j}^{\dagger} b_{m, j} \prod_{r, s} c_{r, j}^{\dagger} c_{s, j} \] with commutation relations and cyclicity respected.
The simplest way that the user can interact with these matrices is by using symbolic representation: "S0Z:Bc0a1:Fc0a0"
represents a \( \sigma^z\ b^{\dagger}_0 b_1\ c^{\dagger}_0\ c_0 \) term. In this string representation, each subsystem is defined by its type, and ends with a colon, in order to show where the next subsystem starts. The type is one of three options: "S" if it is a spin subsystem, "B" if it is a bosonic subsystem, and "F" if it is a fermionic subsystem.
This is a very scalable approach, as indices not mentioned in this string representation are assumed to be acted on by the identity operator: "S7Z:Bc7a25:Fc25a7"
represents a \( \sigma^{z}_7\ b^{\dagger}_7 b_{25}\ c^{\dagger}_{25}\ c_7 \) term, where all other terms (0 to 6 and 8 to 24) are acted on by \(I\).
However, for more fine-grain control over the operators, we invite the user to look into the MixedProduct
, HermitianMixedProducts
and MixedDecoherenceProducts
classes, in the Building blocks section. If not, please proceed to the coherent or decoherent dynamics section.