qml.labs.trotter_error.vibronic_fragments¶
- vibronic_fragments(states, modes, freqs, taylor_coeffs)[source]¶
Returns a list of fragments summing to a vibronic Hamiltonian.
- Parameters
states (int) – the number of electronic states
modes (int) – the number of vibrational modes
freqs (ndarray) – the harmonic frequences
taylor_coeffs (Sequence[ndarray]) – a sequence containing the tensors of coefficients in the Taylor expansion
- Returns
a list of
RealspaceMatrix
objects representing the fragments of the vibronic Hamiltonian- Return type
List[RealspaceMatrix]
Example
>>> from pennylane.labs.trotter_error import vibronic_fragments >>> import numpy as np >>> n_modes = 4 >>> n_states = 2 >>> r_state = np.random.RandomState(42) >>> freqs = r_state.random(4) >>> taylor_coeffs = [r_state.random(size=(n_states, n_states, )), r_state.random(size=(n_states, n_states, n_modes))] >>> fragments = vibronic_fragments(n_states, n_modes, freqs, taylor_coeffs) >>> for fragment in fragments: >>> fragment RealspaceMatrix({(0, 0): RealspaceSum((RealspaceOperator(4, (), 0.15601864044243652), RealspaceOperator(4, ('Q',), phi[1][0, 0][idx0]), RealspaceOperator(4, ('Q', 'Q'), omega[idx0,idx1]))), (1, 1): RealspaceSum((RealspaceOperator(4, (), 0.8661761457749352), RealspaceOperator(4, ('Q',), phi[1][1, 1][idx0]), RealspaceOperator(4, ('Q', 'Q'), omega[idx0,idx1])))}) RealspaceMatrix({(0, 1): RealspaceSum((RealspaceOperator(4, (), 0.15599452033620265), RealspaceOperator(4, ('Q',), phi[1][0, 1][idx0]))), (1, 0): RealspaceSum((RealspaceOperator(4, (), 0.05808361216819946), RealspaceOperator(4, ('Q',), phi[1][1, 0][idx0])))}) RealspaceMatrix({(0, 0): RealspaceSum((RealspaceOperator(4, ('P', 'P'), omega[idx0,idx1]),)), (1, 1): RealspaceSum((RealspaceOperator(4, ('P', 'P'), omega[idx0,idx1]),))})