FGH Program Interface
The program interface is divided up into a series of frames and buttons:
The data frame provides the user with a choice of predetermined potential energy functions or reads the potential from a data file or the windows clipboard. The choices are:
1.a. Morse Potential
V(r) = De (1-exp(-b (r-re)))2
De is the well depth, re is the location of the well minimum, and b controls the width. For a morse potential the energy levels E(v) are described by:
E(v) = w e (v+1/2) - w exe (v+1/2)2
v is the vibrational quantum number, w e is the harmonic vibrational frequency and is related to b and De by:
we = b ( De h /(2p2 cm ))1/2
h is Planck's constant, c is the speed of light and m is the mass of the particle in the well. For we and De in cm-1, b in Å-1, and m; in amu this can be written as:
we = b ( De 67.4305 / m))1/2
wexe is the anharmonic vibrational constant and is related to b and De by:
wexe = hb2/ (8p2cm)
For the same units as above this can be written as:
wexe = 16.8576 b2/p
See "Molecular Spectra and Molecular Structure 1. Spectra of Diatomic Molecules" G. Herzberg, 1950, D. Van Nostrand Co., New York, for further details.
The constants De, re, and b are set in the Parameters Frame at the lower left of the main window.
An approximation to the vibrational levels of HF can be described using Morse parameters:
re = 0.916808 Å
A range of 0.5 to 2.5 Å and 60 points provides a good display. The first few energy levels should be:
1.b. Double Well Potential
This is actually used to describe any potential of the form:
V(r) = C2 r2 + C4 r4 + C6 r6 + C8 r8 + C10 r10 + C12 r12
The coefficients Cn are set in the Parameter frame.
This can be used to describe potentials with a double minimum such as the inversion motion in ammonia (NH3). An approximation of the ammonia inversion potential is given by:
C2 = -22000 cm-1 Å-2
A range of -1.0 to +1.0 Å and 60 points provides a good display.
The first few energy levels should be:
1.c. cos(nx) Potential
This can be used to describe potentials of the form:
V(x) = V0 + V1 cos(x) + V2 cos(2x) + V3 cos(3x) + V4 cos(4x) + V6 cos(6x) + V12 cos(12x)
For the cos(nx) potential the range is set automatically to be 0 to 2p (p-1)/p where p is the number of points in the grid (set in the Points box in the Range frame). For this potential x is assumed to be an angle in radians. This requires a moment of inertia (in amu Å2) to be used instead of a mass.
The cos(nx) potential is useful for describing internal rotations. An approximation of the Ethane (CH3CH3) internal rotation potential is given by:
V3 = 1024 cm-1
mass (moment of inertia) = 1.577 amu Å2
The range is set automatically. 60 points provide a good display. The first few energy levels should be:
One of the nice features of the FGH method is that it has periodic boundary conditions. This makes it ideal for internal rotations with finite barriers, as the wavefunctions naturally go over to free rotation wavefunctions above the barrier.
This allows the program to get data from an external text file. The x and y values can be delimited with spaces, commas or tabs. An example text file looks like:
The first line which is the number of points. Subsequent lines are x y pairs in units of Å for x and cm-1 for y. For rotational potentials the units are radians for x and cm-1 for y (in which case the mass should be entered as a moment of inertia in units of amu Å2).
The program does not understand scientific notation. The program reports the range and the number of points in the file in the Parameters frame. The program performs a cubic spline through the points to generate the points used by the FGH algorithm. The number of points and range can be adjusted in the Range frame. Setting the range outside of the range of points in the data file can lead to random potentials as the spline fit may not extrapolate well.
This allows the program to get data from the Windows clipboard. The data on the clipboard should be x y pairs, similar to the format for the Read File selection except the first line should not be the number of points.
1.f. Square Well Potential
This potential does not work well with the FGH method as the grid points used to define the basis set do not usually line up with the walls of the square well potential. This is in effect an error in the width of the well, which leads to a corresponding error in the energy levels.
This frame allows the user to set the range of x used for the calculation. The units are Å for most potentials and radians for torsional potentials (in which case the mass should be entered as a moment of inertia in units of amu Å2). For potentials read in from the clipboard or from a file the range set in the range frame should not exceed the range of the data points (listed in the parameters frame). The number of points used in the grid is also set in the Range Frame. This is the number of basis functions used and the dimension of the matrix which is diagonalized to obtain the eigenvalues. The number of points must be an even number.
The Range frame also includes a checkbox to force the range to be from 0 to 2p(n-1)/n, where n is the number of grid points.
This is useful for torsional potentials read in from a file or the clipboard.
This frame allows the user to set the mass. The units are amu, or if an angle rather than a distance is used for the x coordinate then the units are amu Å2.
The parameter frame allows the user to enter the parameters for the various predertermined potentials. The parameter frame also displays the number of points for potentials read from a file or the clipboard, as well as the minimum x and maximum x.
This button starts the calculation. 60 points on a 400 MHz pc takes about 3 seconds. The progress of the calculation is reported in the Status Frame. When the calculation is complete the plot window is opened and displays the potential, the eigenvalues, and the eigenvectors. The eigenvalues are also listed in the eigenvalues frame.
The Thermo button is used after the eigenvalues have been computed. The Thermo button opens the thermodynamics window and uses the eigenvalues to calculate the contribution to entropy, heat capacity and integrated heat capacity(0K to chosen temperature). The thermo window allows the user to choose a temperature, the number of eigenvalues to use, and set a symmetry number. As well as entropy, heat capacity and integrated heat capacity, the window also displays the partition function and the contribution to the partition function of the highest energy eigenvalue used.
The status frame displays the progress of the calculation. Generating the Hamiltonian is generally the fastest. Due to the use of delta functions as a basis set, there are only sums, no integrals to be evaluated. Once the hamiltonian is generated and the matrix set up, the matrix is diagonalized in two steps - first tridiagonalized, and then the program solves for the eigenvalues and eigenvectors using the tridiagonal matrix. This last step is the most time consuming.
This frame lists the expectations values <x> and <x2>1/2 for the first third of the eigenvectors.
This frame calculates a polynomial fit to the eigenvalues. It uses the form
E(v) = Te + w(v+1/2) - x(v+1/2)2 + y(v+1/2)3 + z(v+1/2)4 The number of eigenvalues to use in the fit can be set as well as whether or not to use the x, y, or z terms. The results of the fit are displayed and the calculated fit is shown in the eigenvalues frame.
The eigenvalues frame displays v, the quantum number, the eigenvalues, and their differences. If the Fitting frame has been used the results of the fit are also displayed. The Copy to Clipboard button will copy to the clipboard the portion of the eigenvalues that have been selected with the mouse. The EigenVectors to Clipboard button will copy all the eigenvectors to the clipboard in a tab delimited format suitable for pasting into a spreadsheet.
The plot Window graphically displays the potential, the eigenvalues (as horizontal lines), and the eigenvectors as colored curves. The eigenvectors are not displayed by default. To view them check the display eigenvectors box and then click the RePlot button. The first fifteen eigenvectors are displayed by default. This can be changed using the Evec Max box to set how many eigenvectors to display. The amplitude of the eigenvectors can be adjusted by entering a different number into the Evec Amplitude box.