qml.bose.christiansen_mapping¶
- christiansen_mapping(bose_operator, ps=False, wire_map=None, tol=None)[source]¶
Convert a bosonic operator to a qubit operator using the Christiansen mapping.
This mapping assumes that the maximum number of allowed bosonic states is 2 and works only for Christiansen bosons defined in J. Chem. Phys. 120, 2140 (2004). The bosonic creation and annihilation operators are mapped to the Pauli operators as
\[b^{\dagger}_0 = \left (\frac{X_0 - iY_0}{2} \right ), \:\: \text{...,} \:\: b^{\dagger}_n = \frac{X_n - iY_n}{2},\]and
\[b_0 = \left (\frac{X_0 + iY_0}{2} \right ), \:\: \text{...,} \:\: b_n = \frac{X_n + iY_n}{2},\]where \(X\), \(Y\), and \(Z\) are the Pauli operators.
- Parameters
bose_operator (BoseWord, BoseSentence) – the bosonic operator
ps (bool) – Whether to return the result as a
PauliSentence
instead of an operator. Defaults toFalse
.wire_map (dict) – A dictionary defining how to map the states of the Bose operator to qubit wires. If
None
, integers used to label the bosonic states will be used as wire labels. Defaults toNone
.tol (float) – tolerance for discarding the imaginary part of the coefficients
- Returns
a linear combination of qubit operators
- Return type
Union[PauliSentence, Operator]