qml.qchem.VibrationalPES¶
- class VibrationalPES(freqs, grid, gauss_weights, uloc, pes_data, dipole_data, localized=True, dipole_level=1)[source]¶
Bases:
object
Data class to save potential energy surface information computed along vibrational normal modes.
- Parameters
freqs (list[float]) – normal-mode frequencies in atomic units
grid (list[float]) – the sample points on the Gauss-Hermite quadrature grid
gauss_weights (list[float]) – the weights on the Gauss-Hermite quadrature grid
uloc (TensorLike[float]) – localization matrix indicating the relationship between original and localized modes
pes_data (list[TensorLike[float]]) – tuple containing one-mode, two-mode and three-mode PES
dipole_data (list[TensorLike[float]]) – tuple containing one-mode, two-mode and three-mode dipole
localized (bool) – Flag that localization of modes was used to generate PES and dipole. Default is
True
.dipole_level (int) – The level up to which dipole matrix elements are to be calculated. Input values can be 1, 2, or 3 for upto one-mode dipole, two-mode dipole and three-mode dipole, respectively. Default value is 1.
Example
>>> freqs = np.array([0.01885397]) >>> grid, weights = np.polynomial.hermite.hermgauss(9) >>> pes_onebody = [[0.05235573, 0.03093067, 0.01501878, 0.00420778, 0.0, ... 0.00584504, 0.02881817, 0.08483433, 0.22025702]] >>> pes_twobody = None >>> dipole_onebody = [[[-1.92201700e-16, 1.45397041e-16, -1.40451549e-01], ... [-1.51005108e-16, 9.53185441e-17, -1.03377032e-01], ... [-1.22793018e-16, 7.22781963e-17, -6.92825934e-02], ... [-1.96537436e-16, -5.86686504e-19, -3.52245369e-02], ... [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], ... [ 5.24758835e-17, -1.40650833e-16, 3.69955543e-02], ... [-4.52407941e-17, 1.38406311e-16, 7.60888733e-02], ... [-4.63820104e-16, 5.42928787e-17, 1.17726042e-01], ... [ 1.19224372e-16, 9.12491386e-17, 1.64013197e-01]]] >>> vib_obj = qml.qchem.VibrationalPES(freqs=freqs, grid=grid, gauss_weights=weights, ... uloc=None, pes_data=[pes_onebody, pes_twobody], ... dipole_data=[dipole_onebody], localized=False) >>> vib_obj.freqs array([0.01885397])