When called for an object of class wave (wavefunctions ψ(R,t)), this MATLAB function numerically solves (one or several coupled) time-independent Schrödinger equation(s) for bound state problems using Fourier-Grid-Hamiltonian or other discrete variable representation (DVR methods). For an overview of the numerical methods, see also this page of the WavePacket main Wiki. Note that atomic units, i. e. where ħ=me=e=1, are used throughout.
H(R,−i ∇R) ψn(R) = En ψn(R)
with
symbol | explanation | coupled state |
---|---|---|
ψn(R) | Wavefunction (n-th eigenfunction of H) | vector |
En | Eigenenergy (n-th eigenvalue of H) | scalar |
H = T + V − iW | Hamilton operator | matrix |
T = T(R,−i ∇R) | Kinetic energy | scalar |
V = V(R) | Potential energy | matrix |
W = W(R) | Negative imaginary potential, used for absorbing boundary conditions | scalar |
Note that an alternative way to solve the TISE is to use our MATLAB function qm_propa for propagation in imaginary time (also known as: relaxation method).
The MATLAB function qm_bound.m can be found here
Note that qm_bound.m works only with objects of the main classes given in the following table:
class name | description |
---|---|
wave | wavefunctions, represented on grids |
Depending on the choice of the constituents of the underlying Hamiltonian, some operators, such as potential energy, dipole moment, or the initial wavefunctions are either chosen from available model functions or they can be read from (formatted!) data files. In the latter case, the respective tabulated vaules are then interpolated, see our detailed description.
The stationary wavefunctions ψn (along with additional parameters) can (optionally!) be saved in unformatted Matlab data files, see also our detailed description.
The saved wavefunctions can be loaded into qm_propa where they may serve as initial state for a wavepacket propagation.
The saved wavefunctions can be loaded into qm_matrix where they are used for calculation of matrix elements of important operators.
The saved wavefunctions can be loaded into qm_movie, where they are used to generate animated graphics. This is important if no visualization is done "on the fly" in qm_bound.
For an overview of methods to solve the TISE, see also the corresponding page of the WavePacket central Wiki. Here we emphasize again that the direct diagonalization is intimately related to the various DVR/FBR representations listed in the following
MATLAB class for Fast Fourier Transform scheme can be found here
MATLAB class for Gauss-Hermite scheme can be found here
MATLAB class for Gauss-Legendre scheme can be found here
Note that these are the only places where classes/objects are used in the present MATLAB version of WavePacket.
Note that function qm_init.m should be run previously in order to initialize all variables in use. Of particular interest are the following structures:
Wiki: Download.Installation.Main
Wiki: FAQ.Main
Wiki: Reference.Classes.wave
Wiki: Reference.Files.Main
Wiki: Reference.Programs.Main
Wiki: Reference.Programs.qm_abncd
Wiki: Reference.Programs.qm_init
Wiki: Reference.Programs.qm_matrix
Wiki: Reference.Programs.qm_movie
Wiki: Reference.Programs.qm_propa
Wiki: Reference.Variables.expect
Wiki: Reference.Variables.hamilt.eigen
Wiki: Reference.Variables.hamilt.kin
Wiki: Reference.Variables.hamilt
Wiki: Reference.Variables.info
Wiki: Reference.Variables.plots
Wiki: Reference.Variables.space.dof
Wiki: Reference.Variables.space
Wiki: Reference.Variables.time
Wiki: Users.Basics.Main
Wiki: Users.Graphics.Movies
Wiki: Users.Graphics.Plots
Wiki: Users.Interpolation.Main
Wiki: Users.Saving.Main