Saturday, May 30, 2015

Code Progress Update 1

Accomplishments:
This week I made significant progress towards completing the initial parts of the program. Most of this work has been focused on generating the necessary files in the correct format for Gaussian 09 to use later on. To date the program has the following features:
  • Generate 'i' images between reactant and product
  • Use a formatted Gaussian 09 input file containing any number of atoms (limitation being it must be formatted in a specific way)
  • Generate relevant coordinates between reactant and product
  • Storage of all coordinates in one super-array which will be used later on for spring force calculations
 Examples:
Here is a Gaussian 09 input file, you will note that the same coordinates are repeated throughout. This is because I wanted to make a simple test file, of course in an actual calculation the atoms will not be located on the same spatial coordinate.

The Reactant Coordinates:
 #T RHF/6-31G(d) Opt Freq

Title

0 1
O    0.00000    0.00000    0.00000
H    0.00000    0.00000    0.00000
H    0.00000    0.00000    0.00000
H    1.00000    1.00000    1.00000
O    2.36581    2.36581    2.36581

The Product Coordinates:
 #T RHF/6-31G(d) Opt Freq

Title

0 1
O    5.00000    5.00000    5.00000
H    5.00000    5.00000    5.00000
H    5.00000    5.00000    5.00000
H    10.0000    10.0000    10.0000
O    12.5679    12.5679    12.5679

With these two files entered, the reactant being 'REACTANT.txt' and the product being 'PRODUCT.txt' in the same directory, the user can now enter how many intermediate images they would like the program to generate.

For this example I have selected 10 intermediate images to be generated. Now, obviously I won't show each and every text file since that would be tedious and a waste of time. Rather, the program at the moment spits out the image and the relevant coordinates (minus the element) to the terminal and writes the whole output to the file under the image's relevant directory. So, the output of the above files after selecting 10 images is like this for the terminal:

Image 1:
0.454545 0.454545 0.454545
0.454545 0.454545 0.454545
0.454545 0.454545 0.454545
1.818182 1.818182 1.818182
3.293272 3.293272 3.293272
Image 2:
0.909091 0.909091 0.909091
0.909091 0.909091 0.909091
0.909091 0.909091 0.909091
2.636364 2.636364 2.636364
4.220736 4.220736 4.220736
Image 3:
1.363636 1.363636 1.363636
1.363636 1.363636 1.363636
1.363636 1.363636 1.363636
3.454545 3.454545 3.454545
5.148198 5.148198 5.148198
... (more the same) ...
Image 10:
4.545455 4.545455 4.545455
4.545455 4.545455 4.545455
4.545455 4.545455 4.545455
9.181818 9.181818 9.181818
11.640437 11.640437 11.640437

And for image 3 looks like this in the text file:

#T RHF/6-31G(d) Opt Freq

Title

0 1
O    1.363636    1.363636    1.363636
H    1.363636    1.363636    1.363636
H    1.363636    1.363636    1.363636
H    3.454545    3.454545    3.454545
O    5.148198    5.148198    5.148198

In short order then, the program works! Well, that is to say that it can successfully generate 'i' directories with a Gaussian 09 submission file written to each directory.

Next Steps:
The goals for this coming week are to complete the following:
  • Throughly comment the code and make it more legiable
  • Begin working on the NEB function
  • Write a page explaining how NEB works in theory, both in general and how it will be specifically implemented in this program
In any case, that pretty much covers all that was accomplished since Wednesday of this last week. It is my plan to write another update on either Tuesday or Wednesday next week. Till then!

No comments:

Post a Comment