https://github.com/bast/numerov
Compute vibrational levels, wavefunctions, and expectation values using the Numerov-Cooley algorithm.
https://github.com/bast/numerov
integration numerov-cooley-algorithm python vibrational-levels wavefunctions
Last synced: about 1 year ago
JSON representation
Compute vibrational levels, wavefunctions, and expectation values using the Numerov-Cooley algorithm.
- Host: GitHub
- URL: https://github.com/bast/numerov
- Owner: bast
- License: mpl-2.0
- Created: 2017-04-01T19:03:18.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-06-21T21:07:11.000Z (almost 4 years ago)
- Last Synced: 2025-03-26T07:51:16.957Z (about 1 year ago)
- Topics: integration, numerov-cooley-algorithm, python, vibrational-levels, wavefunctions
- Language: Python
- Homepage:
- Size: 358 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
Numerov
=======
.. image:: https://travis-ci.org/bast/numerov.svg?branch=master
:target: https://travis-ci.org/bast/numerov/builds
.. image:: https://coveralls.io/repos/github/bast/numerov/badge.svg?branch=master
:target: https://coveralls.io/github/bast/numerov?branch=master
.. image:: https://img.shields.io/badge/license-%20MPL--v2.0-blue.svg
:target: https://github.com/bast/numerov/blob/master/LICENSE
.. image:: https://zenodo.org/badge/86935858.svg
:target: https://zenodo.org/badge/latestdoi/86935858
Compute vibrational levels, wavefunctions, and expectation values using the
Numerov-Cooley algorithm.
Copyright and license
---------------------
Copyright 2017 Radovan Bast.
Use of this source code is governed by a the Mozilla Public License v2.0 that
can be found in the
`LICENSE file `_.
Citation
--------
If you use this tool in a program or publication, please acknowledge its
author(s) by adding the following reference:
- Numerov 0.5.0, October 2017, Radovan Bast, UiT The Arctic University of Norway, Norway, https://doi.org/10.5281/zenodo.1000406.
Installation
------------
.. code-block:: bash
pip install numerov
Examples
--------
Please have a look `here `_.
Background
----------
This script will calculate the vibrational levels (and wavefunctions)
corresponding to a normal mode numerically using the Numerov-Cooley algorithm.
The script will increase the energy and count the nodes of the wave function.
If the number of nodes changes and stepsize is below ``energy_precision_hartree``, it will
accept the solution, integrate the property along q and move on to the next
solution until ``num_solutions`` is reached. It will also calculate the transition
frequencies 0 -> n, this is useful to check against the harmonic frequencies.
Advice
------
- ``energy_precision_hartree`` is often more important than number of grid points.
- Be careful with the displacement range.
- If the script enters an endless loop probably the reduced mass or the displacement range is wrong.
- Practice first with the harmonic oscillator.
- It is a good idea to play with parameters to check convergence and numerical
stability.
- Potential and property are approximated by polynomials that contain
coefficients FROM ZEROTH to nth order (that's what polyfit gives) and you
might not want that (for instance you might insist that the gradient of the
potential is zero at equilibrium) in this case you can provide your own
expansion coefficients or program an alternative interpolation scheme.