|
1 | 1 | # Project #2: Harmonic Vibrational Analysis |
2 | 2 |
|
3 | | -The purpose of this project is to extend your fundamental C-language programming techniques through a normal coordinate/harmonic vibrational frequency calculation. The theoretical background and a concise set of instructions for this project may be found [here](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/project2-instructions.pdf) |
| 3 | +The purpose of this project is to extend your fundamental C-language programming techniques through a normal coordinate/harmonic vibrational frequency calculation. The theoretical background and a concise set of instructions for this project may be found [here](./project2-instructions.pdf) |
4 | 4 |
|
5 | 5 | We thank Dr. Yukio Yamaguchi of the University of Georgia for the original version of this project. |
6 | 6 |
|
7 | 7 | ## Step 1: Read the Coordinate Data |
8 | 8 |
|
9 | | -The coordinate data are given in a format identical to that for [Project#1](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2301). The test case |
| 9 | +The coordinate data are given in a format identical to that for [Project #1](../Project%2301). The test case |
10 | 10 | for the remainder of this project is the water molecule, optimized at the SCF/DZP level of theory. You can find the coordinates (in bohr) in the input directory. |
11 | 11 |
|
12 | 12 | ## Step 2: Read the Cartesian Hessian Data |
13 | 13 |
|
14 | 14 | The primary input data for the harmonic vibrational calculation is the Hessian matrix, |
15 | 15 | which consists of second derivatives of the energy with respect to atomic positions. |
16 | 16 |
|
17 | | -``` |
18 | | -EQUATION |
19 | | -F_{ij} = \frac{\partial^{2}V}{\partial q_i \partial q_j} |
20 | | -``` |
21 | | -The Hessian matrix (in units of Eh/a02) can be downloaded here for the H2O test case. |
| 17 | +<img src="./figures/hessian.png" height="50"> |
| 18 | + |
| 19 | +The Hessian matrix (in units of E<sub>h</sub>/a<sub>0</sub><sup>2</sup>) can be downloaded [here](./input/h2o_hessian.txt) for the H<sub>2</sub>O test case. |
22 | 20 | The first integer in the file is the number of atoms (which you should compare to the corresponding value from the geometry file as a test of consistency), |
23 | 21 | while the remaining values have the following format: |
24 | 22 |
|
25 | | -``` |
26 | | -EQUATION |
27 | | -\begin{array}{ccc} |
28 | | -F_{x_1,x_1} & F_{x_1,y_1} & F_{x_1,z_1} \\ |
29 | | -F_{x_1,x_2} & F_{x_1,y_2} & F_{x_1,z_2} \\ |
30 | | -& \\ |
31 | | -\ldots & \ldots & \dots \\ |
32 | | -& \\ |
33 | | -F_{x_2,x_1} & F_{x_2,y_1} & F_{x_2,z_1} \\ |
34 | | -& \\ |
35 | | -\ldots & \ldots & \ldots \\ |
36 | | -\end{array} |
37 | | -``` |
38 | | - |
39 | | - * Hint 1: Reading the Hessian |
| 23 | +<img src="./figures/hessian-file-format.png" width="200"> |
| 24 | + |
| 25 | + * [Hint 1](./hints/hint1.md): Reading the Hessian |
40 | 26 |
|
41 | 27 | ## Step 3: Mass-Weight the Hessian Matrix |
42 | 28 |
|
43 | 29 | Divide each element of the Hessian matrix by the product of square-roots of the masses of the atoms associated with the given coordinates: |
44 | 30 |
|
45 | | -``` |
46 | | -EQUATION |
47 | | -F^{M}_{ij} = \frac{F_{ij}}{\sqrt{m_i m_j}} |
| 31 | +<img src="./figures/mass-weighted-hessian.png" height="50"> |
48 | 32 |
|
49 | | -``` |
50 | 33 | where m<sub>i</sub> represents the mass of the atom corresponding to atom *i*. Use atomic mass units (amu) for the masses, just as |
51 | | -for [Project #1](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2301). |
| 34 | +for [Project #1](../Project%2301). |
52 | 35 |
|
53 | | - * Hint 2: Solution |
| 36 | + * [Hint 2](./hints/hint2.md): Solution |
54 | 37 |
|
55 | 38 | ## Step 4: Diagonalize the Mass-Weighted Hessian Matrix |
56 | 39 |
|
57 | 40 | Compute the eigenvalues of the mass-weighted Hessian: |
58 | 41 |
|
59 | | -``` |
60 | | - EQUATION |
61 | | -
|
62 | | - F^{M}\mathbf{L} = \mathbf{L}\Lambda |
63 | | -``` |
| 42 | +<img src="./figures/diag-mass-weighted-hessian.png" height="20"> |
64 | 43 |
|
65 | 44 | You should consider using the same canned diagonalization function |
66 | | -you used in [Project #1](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2301). |
| 45 | +you used in [Project #1](../Project%2301). |
67 | 46 |
|
68 | | - * Hint 3: Solution |
| 47 | + * [Hint 3](./hints/hint3.md): Solution |
69 | 48 |
|
70 | 49 | ## Step 5: Compute the Harmonic Vibrational Frequencies |
71 | 50 |
|
72 | 51 | The vibrational frequencies are proportional to the squareroot of the eigenvalues of the mass-weighted Hessian: |
73 | 52 |
|
74 | | -``` |
75 | | -EQUATION |
76 | | -\omega_{i}= {\rm_constant} \times \sqrt{\lambda_i} |
77 | | -``` |
| 53 | +<img src="./figures/vib-freq.png" height="25"> |
78 | 54 |
|
79 | 55 | The most common units to use for vibrational frequencies is cm<sup>-1</sup>. |
80 | 56 |
|
81 | | - * Hint 4: Solution |
| 57 | + * [Hint 4](./hints/hint4.md): Solution |
82 | 58 |
|
83 | 59 | ## Reference |
84 | | -E.B. Willson, J.C. Decius, and P.C. Cross, *Molecular Vibrations*, McGraw-Hill, 1955. |
| 60 | +E.B. Willson, J.C. Decius, and P.C. Cross, __Molecular Vibrations__, McGraw-Hill, 1955. |
85 | 61 |
|
86 | 62 | ## Test Cases |
87 | 63 |
|
88 | | - * Water: [Coordinates](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/input/h2o_geom.txt) |
89 | | - | [Hessian](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/input/h2o_hessian.txt) |
90 | | - | [Output](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/output/h2o_vib_out.txt) |
91 | | - * Benzene: [Coordinates](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/input/benzene_geom.txt) |
92 | | - | [Hessian](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/input/benzene_hessian.txt) |
93 | | - | [Output](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/output/benzene_vib_out.txt) |
94 | | - * 3-chloro-1-butene: [Coordinates](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/input/3c1b_geom.txt) |
95 | | - | [Hessian](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/input/3c1b_hessian.txt) |
96 | | - | [Output](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2302/input/3c1b_vib_out.txt) |
| 64 | + * Water: [Coordinates](./input/h2o_geom.txt) |
| 65 | + | [Hessian](./input/h2o_hessian.txt) |
| 66 | + | [Output](./output/h2o_vib_out.txt) (see the note at the bottom of [Hint 4](./hints/hint4.md)) |
| 67 | + * Benzene: [Coordinates](./input/benzene_geom.txt) |
| 68 | + | [Hessian](./input/benzene_hessian.txt) |
| 69 | + | [Output](./output/benzene_vib_out.txt) |
| 70 | + * 3-chloro-1-butene: [Coordinates](./input/3c1b_geom.txt) |
| 71 | + | [Hessian](./input/3c1b_hessian.txt) |
| 72 | + | [Output](./output/3c1b_vib_out.txt) |
0 commit comments