This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
benzen_structure_optimization [2009/11/24 13:41] jelen |
benzen_structure_optimization [2018/03/08 15:44] jesus |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Here we describe how to perform structure optimization of a simple molecule using new version of Fireball. | + | Here we describe how to perform structure optimization of a simple molecule using the new version of the Fireball code. |
- | These are minimal steps required to optimize atomic structure using quenching optimization method: | + | There are minimal steps required to optimize atomic structure using quenching optimization method: |
Line 9: | Line 9: | ||
An initial configuration is written in a file with an arbitrary name (e.g. //initial.bas//, see text bellow) | An initial configuration is written in a file with an arbitrary name (e.g. //initial.bas//, see text bellow) | ||
- | 12 | + | 12 |
- | 6 -4.183081 -4.008593 -0.000092 | + | 6 -4.192725 -3.947918 -0.000885 |
- | 6 -3.047805 -3.090020 0.004490 | + | 6 -3.105518 -3.068150 0.003445 |
- | 6 -3.275844 -1.647830 0.001899 | + | 6 -3.324254 -1.686900 0.002294 |
- | 6 -4.639523 -1.125588 0.002371 | + | 6 -4.629983 -1.185844 0.001786 |
- | 6 -5.775305 -2.043508 0.000193 | + | 6 -5.717209 -2.065606 -0.001295 |
- | 6 -5.546619 -3.485699 -0.007522 | + | 6 -5.498437 -3.446870 -0.005502 |
- | 1 -6.432266 -4.204789 -0.015592 | + | 1 -6.367512 -4.151865 -0.010025 |
- | 1 -4.005535 -5.135519 -0.000976 | + | 1 -4.018424 -5.053386 -0.000752 |
- | 1 -1.983459 -3.500264 0.005183 | + | 1 -2.061162 -3.470265 0.006507 |
- | 1 -2.389446 -0.929457 -0.002861 | + | 1 -2.455303 -0.981710 0.003944 |
- | 1 -4.816925 0.001517 -0.000293 | + | 1 -4.804199 -0.080387 0.004380 |
- | 1 -6.839935 -1.633156 -0.001403 | + | 1 -6.761568 -1.663453 -0.002176 |
- | + | ||
===== input file ===== | ===== input file ===== | ||
- | The //fireball.in// input file provides control over what sort of calculation will be done. If the file is not presented, fireball run default task with predefined parameters. Complete list of all choices can be found here. | + | The **''fireball.in''** input file provides control over what sort of calculation will be done. If the file is not presented, fireball run default task with predefined parameters. Complete list of all choices can be found here. |
- | In our particular case, //fireball.in// file looks like: | + | In our particular case, **''fireball.in''** file looks like: |
Line 37: | Line 35: | ||
iquench = -1 | iquench = -1 | ||
icluster = 1 | icluster = 1 | ||
+ | iqout = 3 | ||
dt = 0.5 | dt = 0.5 | ||
&END | &END | ||
Line 50: | Line 49: | ||
keyword '''icluster''' defines type of boundary conditions (here no periodicity); \\ | keyword '''icluster''' defines type of boundary conditions (here no periodicity); \\ | ||
keyword '''dt''' is time step in femtoseconds; \\ | keyword '''dt''' is time step in femtoseconds; \\ | ||
- | keyword '''iwrtxyz''' allows to save history of atomic trajectories during optimization proces into xyz-format output file ''' answer.xyz''' | + | keyword '''iwrtxyz''' allows to save history of atomic trajectories during optimization proces into xyz-format output file **''answer.xyz''** |
Line 59: | Line 58: | ||
To initiate Fireball run, we need to create Fdata directory in working directory, which contains all electronic integrals | To initiate Fireball run, we need to create Fdata directory in working directory, which contains all electronic integrals | ||
to build up Hamiltonian for each geometry. These integrals has to be calculated in advance by create module. | to build up Hamiltonian for each geometry. These integrals has to be calculated in advance by create module. | ||
- | Once we have these data, usually we create //Fdata// dir via symbolic link | + | Once we have these data, usually we create **//Fdata//** dir via symbolic link |
ln -s $CURRENT_DIR_Fdata Fdata | ln -s $CURRENT_DIR_Fdata Fdata | ||
+ | or we add the path in fireball.in file: | ||
+ | |||
+ | |||
+ | &OPTION | ||
+ | basisfile = initial.bas | ||
+ | nstepf = 5000 | ||
+ | iquench = -1 | ||
+ | icluster = 1 | ||
+ | iqout = 3 | ||
+ | dt = 0.5 | ||
+ | fdataLocation = '$CURRENT_DIR_Fdata' | ||
+ | &END | ||
+ | &OUTPUT | ||
+ | iwrtxyz = 1 | ||
+ | &END | ||
===== run optimization process ===== | ===== run optimization process ===== | ||
- | Initiate Fireball run we need to execute binary file //fireball.x//. Usually we do that via shell script e.g. named //run.bat//: | + | Initiate Fireball run we need to execute binary file **//fireball.x//**. Usually we do that via shell script e.g. named //run.bat//: |
Line 87: | Line 101: | ||
You'll obtain on your screen comprehensive information how close optimization criteria are to used convergence tolerance:\\ | You'll obtain on your screen comprehensive information how close optimization criteria are to used convergence tolerance:\\ | ||
+ | |||
- | ++++ iter = 31 Etot= -83.90490326 Fi_max= 0.049773 | + | .... |
- | +++ Etot RES = 0.00044855 TOL = 0.00010000 NOT CONVERGED | + | |
- | +++ Fmax RES = 0.04977333 TOL = 0.05000000 CONVERGED | + | ++++ iter = 46 Etot= -83.90303173 Fi_max= 0.074447 |
- | ++++ iter = 32 Etot= -83.90475702 Fi_max= 0.037080 | + | +++ Etot RES = 0.00189182 TOL = 0.00010000 NOT CONVERGED |
- | +++ Etot RES = 0.00175489 TOL = 0.00010000 NOT CONVERGED | + | +++ Fmax RES = 0.07444720 TOL = 0.05000000 NOT CONVERGED |
- | +++ Fmax RES = 0.03707963 TOL = 0.05000000 CONVERGED | + | ++++ iter = 47 Etot= -83.90304323 Fi_max= 0.071943 |
- | ++++ iter = 33 Etot= -83.90472022 Fi_max= 0.025251 | + | +++ Etot RES = 0.00013796 TOL = 0.00010000 NOT CONVERGED |
- | +++ Etot RES = 0.00044161 TOL = 0.00010000 NOT CONVERGED | + | +++ Fmax RES = 0.07194256 TOL = 0.05000000 NOT CONVERGED |
- | +++ Fmax RES = 0.02525064 TOL = 0.05000000 CONVERGED | + | ++++ iter = 48 Etot= -83.90307246 Fi_max= 0.065520 |
- | ++++ iter = 34 Etot= -83.90468896 Fi_max= 0.025764 | + | +++ Etot RES = 0.00035078 TOL = 0.00010000 NOT CONVERGED |
- | +++ Etot RES = 0.00037510 TOL = 0.00010000 NOT CONVERGED | + | +++ Fmax RES = 0.06552009 TOL = 0.05000000 NOT CONVERGED |
- | +++ Fmax RES = 0.02576449 TOL = 0.05000000 CONVERGED | + | ++++ iter = 49 Etot= -83.90322186 Fi_max= 0.053999 |
- | ++++ iter = 35 Etot= -83.90457769 Fi_max= 0.031889 | + | +++ Etot RES = 0.00179281 TOL = 0.00010000 NOT CONVERGED |
- | +++ Etot RES = 0.00133533 TOL = 0.00010000 NOT CONVERGED | + | +++ Fmax RES = 0.05399895 TOL = 0.05000000 NOT CONVERGED |
- | +++ Fmax RES = 0.03188856 TOL = 0.05000000 CONVERGED | + | ++++ iter = 50 Etot= -83.90327990 Fi_max= 0.040755 |
- | ++++ iter = 36 Etot= -83.90458419 Fi_max= 0.030593 | + | +++ Etot RES = 0.00069654 TOL = 0.00010000 NOT CONVERGED |
- | +++ Etot RES = 0.00007808 TOL = 0.00010000 CONVERGED | + | +++ Fmax RES = 0.04075507 TOL = 0.05000000 CONVERGED |
- | +++ Fmax RES = 0.03059333 TOL = 0.05000000 CONVERGED | + | ++++ iter = 51 Etot= -83.90347863 Fi_max= 0.024827 |
+ | +++ Etot RES = 0.00238468 TOL = 0.00010000 NOT CONVERGED | ||
+ | +++ Fmax RES = 0.02482667 TOL = 0.05000000 CONVERGED | ||
+ | ++++ iter = 52 Etot= -83.90359903 Fi_max= 0.011633 | ||
+ | +++ Etot RES = 0.00144488 TOL = 0.00010000 NOT CONVERGED | ||
+ | +++ Fmax RES = 0.01163264 TOL = 0.05000000 CONVERGED | ||
+ | ++++ iter = 53 Etot= -83.90365698 Fi_max= 0.022778 | ||
+ | +++ Etot RES = 0.00069536 TOL = 0.00010000 NOT CONVERGED | ||
+ | +++ Fmax RES = 0.02277786 TOL = 0.05000000 CONVERGED | ||
+ | ++++ iter = 54 Etot= -83.90365157 Fi_max= 0.021744 | ||
+ | +++ Etot RES = 0.00006491 TOL = 0.00010000 CONVERGED | ||
+ | +++ Fmax RES = 0.02174432 TOL = 0.05000000 CONVERGED | ||
+++++ Quenching process converged +++++ | +++++ Quenching process converged +++++ | ||
- | ===== final optimized structure ===== | ||
- | Current optimized structure is placed in //answer.bas// file and it can be directly used as input file for a next run. | + | History of the total energy during the optimization process can be easily plotted using [[http://www.gnuplot.info/|Gnuplot]] program as follows: |
+ | |||
+ | grep ETOT so_sp.out | cut -b22- > etot.dat | ||
+ | gnuplot | ||
+ | gnuplot> set xlabel "time step" | ||
+ | gnuplot> set xlabel "Etot [eV]" | ||
+ | gnuplot> set format y "%8.4f" | ||
+ | gnuplot> plot "etot.dat" with linespoints | ||
+ | |||
+ | optionally, we save the output into png figure format doing | ||
+ | |||
+ | gnuplot> set term png | ||
+ | gnuplot> set output "etot.png" | ||
+ | |||
+ | |||
+ | {{:benzen:etot_benzen.png?700|}} | ||
+ | |||
+ | |||
+ | ===== final optimized structure & charge analysis ===== | ||
+ | |||
+ | Current optimized structure is placed in **''answer.bas''** file and it can be directly used as input file for a next run. | ||
+ | |||
+ | 12 | ||
+ | 6 -4.183507 -4.005641 -0.001142 | ||
+ | 6 -3.050800 -3.089167 0.003179 | ||
+ | 6 -3.278833 -1.650218 0.003065 | ||
+ | 6 -4.639215 -1.128095 0.001770 | ||
+ | 6 -5.771898 -2.044592 -0.001875 | ||
+ | 6 -5.543886 -3.483549 -0.004966 | ||
+ | 1 -6.427498 -4.200469 -0.008348 | ||
+ | 1 -4.006604 -5.129725 -0.002273 | ||
+ | 1 -1.988933 -3.498117 0.005219 | ||
+ | 1 -2.395194 -0.933283 0.005850 | ||
+ | 1 -4.815981 -0.004012 0.002952 | ||
+ | 1 -6.833808 -1.635777 -0.003761 | ||
+ | |||
+ | Each atomic configuration achieved during the optimization procedure is recorded into the **''answer.xyz''** file. The history can be visualized by e.g. [[http://jmol.sourceforge.net/|Jmol]] program. | ||
+ | |||
+ | {{:benzen:benzen_opt.png?700|benzene}} | ||
- | 12 | + | In addition, there is a file **''CHARGES''** which contains projected Lowdin charges onto individual shells. |
- | 6 -4.183421 -4.006572 -0.000382 | + | |
- | 6 -3.049741 -3.089443 0.004202 | + | |
- | 6 -3.277656 -1.649257 0.001957 | + | |
- | 6 -4.639330 -1.127297 0.002109 | + | |
- | 6 -5.773138 -2.044253 -0.000364 | + | |
- | 6 -5.544980 -3.484420 -0.006813 | + | |
- | 1 -6.429495 -4.202168 -0.013594 | + | |
- | 1 -4.005512 -5.131722 -0.001362 | + | |
- | 1 -1.986751 -3.498702 0.006074 | + | |
- | 1 -2.392519 -0.932155 -0.000013 | + | |
- | 1 -4.815967 -0.001880 0.002503 | + | |
- | 1 -6.836271 -1.634989 -0.002052 | + | |
- | In addition, there is a file ''CHARGES'' which contains projected Lowdin charges onto individual shells. | + | 12 initial0.bas 3 |
+ | 0.99704005 3.10168254 | ||
+ | 0.99692942 3.10180981 | ||
+ | 0.99697651 3.10173483 | ||
+ | 0.99702943 3.10168959 | ||
+ | 0.99693536 3.10181070 | ||
+ | 0.99696818 3.10179334 | ||
+ | 0.89726521 0.00398424 | ||
+ | 0.89733723 0.00398285 | ||
+ | 0.89723911 0.00398370 | ||
+ | 0.89728961 0.00398349 | ||
+ | 0.89731948 0.00398339 | ||
+ | 0.89724802 0.00398392 | ||
- | 12 c6h6.bas 1 | ||
- | 0.99538890 3.10407153 | ||
- | 0.99534701 3.10417360 | ||
- | 0.99539011 3.10410887 | ||
- | 0.99538154 3.10398977 | ||
- | 0.99535394 3.10408536 | ||
- | 0.99536810 3.10408846 | ||
- | 0.88948727 0.01101221 | ||
- | 0.88959544 0.01102157 | ||
- | 0.88948600 0.01101498 | ||
- | 0.88949241 0.01100765 | ||
- | 0.88961717 0.01102288 | ||
- | 0.88948823 0.01100698 | ||