Skip to content
Merged
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
a7a5a06
update optimize geometry
soranjh Jan 27, 2025
7d1834f
update vibrational class
soranjh Jan 29, 2025
fe28c23
Merge branch 'master' into upgrade_vib_docs
soranjh Jan 29, 2025
511e1f4
update localize modes
soranjh Jan 29, 2025
268321c
update taylor coeffs
soranjh Feb 3, 2025
0c99269
update taylor coeffs
soranjh Feb 3, 2025
4db1b6d
update taylor coeffs
soranjh Feb 3, 2025
97c1ced
update taylor bosonic
soranjh Feb 3, 2025
294e987
update taylor bosonic
soranjh Feb 3, 2025
ff4e11a
update taylor hamiltonian
soranjh Feb 4, 2025
ad19e42
update vibrational class
soranjh Feb 7, 2025
130332e
Merge branch 'master' into upgrade_vib_docs
soranjh Feb 7, 2025
b76126c
update vibrational class
soranjh Feb 10, 2025
c0b031c
update vibrational class
soranjh Feb 10, 2025
66e1033
update none values
soranjh Feb 10, 2025
32955ce
update none values
soranjh Feb 10, 2025
9b119b1
add example to taylor coeffs
soranjh Feb 10, 2025
b74b49c
add equations to taylor coeffs
soranjh Feb 11, 2025
48f389e
update taylor hamiltonian docs
soranjh Feb 12, 2025
6efafbc
update taylor hamiltonian docs
soranjh Feb 12, 2025
f934a8d
update taylor bosonic doc
soranjh Feb 12, 2025
4ad4cfa
update vib pes docs
soranjh Feb 12, 2025
5603081
update vib pes docs
soranjh Feb 12, 2025
86bc1b2
update dipole shape
soranjh Feb 12, 2025
706713b
add localization equation
soranjh Feb 12, 2025
1816e20
update equations
soranjh Feb 14, 2025
e05c231
update dipole docs
soranjh Feb 14, 2025
e0be651
update equations
soranjh Feb 14, 2025
41b85ab
update link
soranjh Feb 14, 2025
19dbcc5
add vibpes example
soranjh Feb 14, 2025
2b92144
Merge branch 'master' into upgrade_vib_docs
soranjh Feb 20, 2025
866935e
Merge branch 'master' into upgrade_vib_docs
soranjh Feb 25, 2025
aa17342
Merge branch 'upgrade_vib_docs' of https://github.com/PennyLaneAI/pen…
soranjh Mar 26, 2025
2ddbe39
Merge branch 'master' into upgrade_vib_docs
soranjh Apr 6, 2025
4c1af37
Merge branch 'master' into upgrade_vib_docs
soranjh Apr 12, 2025
6c2c4d4
correct vscf doc
soranjh Apr 15, 2025
e72cb30
Merge branch 'master' into upgrade_vib_docs
soranjh Apr 21, 2025
fb8e64d
Merge branch 'master' into upgrade_vib_docs
soranjh Apr 27, 2025
2911e0b
Merge branch 'master' into upgrade_vib_docs
soranjh May 25, 2025
b5bd8e3
Merge branch 'master' into upgrade_vib_docs
soranjh May 31, 2025
7867a82
Merge branch 'master' into upgrade_vib_docs
soranjh Jun 7, 2025
ef5c836
fix typos
soranjh Jun 11, 2025
c6b39d3
Merge branch 'master' into upgrade_vib_docs
soranjh Jun 11, 2025
1924d1b
update localize_normal_modes
soranjh Jun 11, 2025
6a3f108
update taylor_coeffs
soranjh Jun 11, 2025
285b7cf
update taylor_coeffs
soranjh Jun 11, 2025
ea6d207
update taylor_dipole_coeffs
soranjh Jun 11, 2025
a23b75c
update taylor_bosonic
soranjh Jun 11, 2025
084bf2e
update taylor_bosonic
soranjh Jun 11, 2025
e50f25d
update taylor_hamiltonian
soranjh Jun 11, 2025
2167fe6
update VibrationalPES
soranjh Jun 11, 2025
68efa9e
update optimize_geometry
soranjh Jun 11, 2025
9c4338c
update taylor_coeffs
soranjh Jun 12, 2025
81632ea
update taylor_coeffs
soranjh Jun 13, 2025
34c9c41
Merge branch 'master' into upgrade_vib_docs
soranjh Jun 13, 2025
29b24a9
Merge branch 'master' into upgrade_vib_docs
soranjh Jun 15, 2025
575eeda
Apply suggestions from code review
soranjh Jun 18, 2025
ddd6d42
update localize_normal_modes
soranjh Jun 18, 2025
ca707cf
fix pylint in labs
soranjh Jun 18, 2025
3adb595
Merge branch 'master' into upgrade_vib_docs
soranjh Jun 18, 2025
3d0ab58
update taylor_coeffs
soranjh Jun 18, 2025
4fcd511
update taylor_coeffs
soranjh Jun 18, 2025
4cceb25
update taylor_dipole_coeffs
soranjh Jun 18, 2025
83b5350
update taylor_bosonic
soranjh Jun 18, 2025
9c67252
update localize_normal_modes
soranjh Jun 18, 2025
2e7b450
update localize_normal_modes
soranjh Jun 18, 2025
b207d4d
update type
soranjh Jun 18, 2025
c86d158
update changelog
soranjh Jun 18, 2025
1bca89c
update changelog
soranjh Jun 18, 2025
29fc7a3
Merge branch 'master' into upgrade_vib_docs
soranjh Jun 19, 2025
4e59478
correct typo
soranjh Jun 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 23 additions & 13 deletions pennylane/qchem/vibrational/localize_modes.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,26 +174,36 @@ def _localize_modes(freqs, vecs):


def localize_normal_modes(freqs, vecs, bins=[2600]):
"""
Localizes vibrational normal modes.
r"""Computes spatially localized vibrational normal modes.

The normal modes are localized by separating frequencies into specified ranges following the
procedure described in `J. Chem. Phys. 141, 104105 (2014)
The vibrational normal modes are localized using a localizing unitary following the procedure
described in `J. Chem. Phys. 141, 104105 (2014)
<https://pubs.aip.org/aip/jcp/article-abstract/141/10/104105/74317/
Efficient-anharmonic-vibrational-spectroscopy-for?redirectedFrom=fulltext>`_.
Efficient-anharmonic-vibrational-spectroscopy-for?redirectedFrom=fulltext>`_. The localizing
unitary is defined in terms of the normal and local coordinates, :math:`q` and
:math:`\tilde{q}`, respectively as:

.. math::

\tilde{q} = \sum_{j=1}^M U_{ij} q_j,

where :math:`M` is the number of modes. The normal modes
can be separately localized, to prevent mixing between specific groups of normal modes, by
defining frequency ranges in ``bins``. For instance, ``bins = [2600]`` allows to separately
localize modes that have frequencies above and below :math:`2600` reciprocal centimetre.

Args:
freqs (list[float]): normal mode frequencies in ``cm^-1``
vecs (TensorLike[float]): displacement vectors for normal modes
bins (list[float]): List of upper bound frequencies in ``cm^-1`` for creating separation bins .
Default is ``[2600]`` which means having one bin for all frequencies between ``0`` and ``2600 cm^-1``.
freqs (List[float]): normal mode frequencies in reciprocal centimetre
vecs (TensorLike[float]): displacement vectors of the normal modes
bins (List[float]): grid of frequencies for grouping normal modes.
Default is ``[2600]``.

Returns:
tuple: A tuple containing the following:
- list[float] : localized frequencies
- List[float] : localized frequencies in reciprocal centimetre
- TensorLike[float] : localized displacement vectors
- TensorLike[float] : localization matrix describing the relationship between
original and localized modes.
- TensorLike[float] : localization matrix describing the relationship between the
original and the localized modes

**Example**

Expand All @@ -209,7 +219,7 @@ def localize_normal_modes(freqs, vecs, bins=[2600]):
... [-5.49709883e-17, 7.49851221e-08, -2.77912798e-02]]])
>>> freqs_loc, vecs_loc, uloc = qml.qchem.localize_normal_modes(freqs, vectors)
>>> freqs_loc
array([1332.62008773, 2296.73455892, 2296.7346082 ])
array([1332.62013257, 2296.73453455, 2296.73460655])

"""
if not bins:
Expand Down
Loading
Loading