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 to False.

  • 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 to None.

  • tol (float) – tolerance for discarding the imaginary part of the coefficients

Returns

a linear combination of qubit operators

Return type

Union[PauliSentence, Operator]