A program to deal with the adiabatic
- python >= 3.10
- numpy
- scipy
- tkinter
- matplotlib
On *nix systems run:
test/test.sh testfor integration testing. Zero output is OK. Note that the first and last tests ("PecApprox_1.log" vs "test/PecApprox.ref" and "FitExp_1.log" vs "test/FitExp.ref") could fail since they are slightly system-dependent. If "PEC fit done" is in "PecApprox_1.log" and "FitExp_1.log" they works just fine.
For unit testing run:
python test/unittests.pypython -m x1fd3 [mode] [input files]Available modes:
- GUI - TK wrapper for all other modes
- PecApprox - Potential energy curve (PEC) approximation with analytic function
- LevelsPW - Vibrational-rotational level calculation for given point-wise PEC
- LevelsAn - Vibrational-rotational level calculation for given analytic PEC
- SpectrumPW - Vibrational-rotational spectrum calculation for given point-wise PEC and point-wise dipole moment (DM)
- SpectrumAn - Vibrational-rotational spectrum calculation for given analytic PEC and point-wise DM
- FitExp - fit analytic PEC to reproduce given experimental vibrational-rotational levels
No input files required to run GUI. For CLI-based modes 2, 3, or 4 files should to be provided. Run any of these modes with no arguments to see help.
Point-wise PEC is approximated with Extended Morse Oscillator (EMO) function:
where
and
Note 1: MLR and DELR are available as well.
Note 2: By default
Vibrational-rotational levels are found by solving the radial Schrodinger equation:
The finite-difference scheme is used within the scheme 3-point approximation of 2nd derivative:
Within this method the original differential equation is transformed to tridiagonal symmetric matrix eigenvalue problem.
PEC (
Similar to LevelsPW, but with analytic (EMO, etc) representation of PEC.
LevelsPW with additional matrix elements calculation for given point-wise DM (
Total transition matrix elements for absorption and emission spectra can be estimated as:
where
Similar to SpectrumPW, but with analytic (EMO, etc) representation of PEC.
PEC is optimized to fit given set of vibrational-rotational experimental levels. Least-squares procedure is based on Hellmann–Feynman theorem:
where