qml.qchem.taylor_bosonic

taylor_bosonic(coeffs, freqs, is_local=True, uloc=None)[source]

Returns a Taylor bosonic vibrational Hamiltonian.

The Taylor vibrational Hamiltonian is defined in terms of kinetic \(T\) and potential \(V\) components as:

\[H = T + V.\]

The kinetic term is defined in terms of momentum \(p\) operators as

\[T = \sum_{i\geq j} K_{ij} p_i p_j,\]

where the \(K\) matrix is defined in terms of vibrational frequencies, \(\omega\), and mode localization unitary matrix, \(U\), as:

\[K_{ij} = \sum_{k=1}^M \frac{\omega_k}{2} U_{ki} U_{kj}.\]

The potential term is defined in terms of normal coordinate operator \(q\) as:

\[V(q_1,\cdots,q_M) = V_0 + \sum_{i=1}^M V_1^{(i)}(q_i) + \sum_{i>j} V_2^{(i,j)}(q_i,q_j) + \sum_{i<j<k} V_3^{(i,j,k)}(q_i,q_j,q_k) + \cdots,\]

where \(V_n\) represents the \(n\)-mode component of the potential energy surface computed along the normal coordinate. The \(V_n\) terms are defined as:

\[\begin{split}V_0 &\equiv V(q_1=0,\cdots,q_M=0) \\ V_1^{(i)}(q_i) &\equiv V(0,\cdots,0,q_i,0,\cdots,0) - V_0 \\ V_2^{(i,j)}(q_i,q_j) &\equiv V(0,\cdots,q_i,\cdots,q_j,\cdots,0) - V_1^{(i)}(q_i) - V_1^{(j)}(q_j) - V_0 \\ \nonumber \vdots\end{split}\]

These terms are then used in a multi-dimensional polynomial fit to get \(n\)-mode Taylor coefficients. For instance, the one-mode Taylor coefficient \(\Phi\) is related to the one-mode potential energy surface data as:

\[V_1^{(j)}(q_j) \approx \Phi^{(2)}_j q_j^2 + \Phi^{(3)}_j q_j^3 + ...\]

Similarly, the two-mode and three-mode Taylor coefficients are computed if the two-mode and three-mode potential energy surface data, \(V_2^{(j, k)}(q_j, q_k)\) and \(V_3^{(j, k, l)}(q_j, q_k, q_l)\), are provided.

This real-space form of the vibrational Hamiltonian can be represented in the bosonic basis by using equations defined in Eqs. 6, 7 of arXiv:1703.09313:

\[\hat q_i = \frac{1}{\sqrt{2}}(b_i^\dagger + b_i), \quad \hat p_i = \frac{1}{\sqrt{2}}(b_i^\dagger - b_i),\]

where \(b^\dagger\) and \(b\) are bosonic creation and annihilation operators, respectively.

Parameters:
  • coeffs (list(tensorlike(float))) – the coefficients of a Taylor vibrational Hamiltonian

  • freqs (array(float)) – the harmonic vibrational frequencies in atomic units

  • is_local (bool) – Whether the vibrational modes are localized. Default is True.

  • uloc (tensorlike(float)) – normal mode localization matrix with shape (m, m) where m = len(freqs)

Returns:

Taylor bosonic Hamiltonian

Return type:

pennylane.bose.BoseSentence

Example

>>> freqs = np.array([0.025])
>>> one_mode = np.array([[-0.00088528, -0.00361425,  0.00068143]])
>>> uloc = np.array([[1.0]])
>>> ham = qml.qchem.taylor_bosonic(coeffs=[one_mode], freqs=freqs, uloc=uloc)
>>> print(ham)
-0.0012778303419517393 * b⁺(0) b⁺(0) b⁺(0)
+ -0.0038334910258552178 * b⁺(0) b⁺(0) b(0)
+ -0.0038334910258552178 * b⁺(0)
+ -0.0038334910258552178 * b⁺(0) b(0) b(0)
+ -0.0038334910258552178 * b(0)
+ -0.0012778303419517393 * b(0) b(0) b(0)
+ (0.0005795050000000001+0j) * b⁺(0) b⁺(0)
+ (0.026159009999999996+0j) * b⁺(0) b(0)
+ (0.012568432499999997+0j) * I
+ (0.0005795050000000001+0j) * b(0) b(0)
+ 0.00017035749999999995 * b⁺(0) b⁺(0) b⁺(0) b⁺(0)
+ 0.0006814299999999998 * b⁺(0) b⁺(0) b⁺(0) b(0)
+ 0.0010221449999999997 * b⁺(0) b⁺(0) b(0) b(0)
+ 0.0006814299999999998 * b⁺(0) b(0) b(0) b(0)
+ 0.00017035749999999995 * b(0) b(0) b(0) b(0)