nwhess2freq Code
Calculates frequencies/modes from an nwchem generated hessian
Brought to you by:
verahill
File | Date | Author | Commit |
---|---|---|---|
README | 2013-06-18 |
![]() |
[ba6811] Added instructions |
nwhess2freq.m | 2013-06-17 |
![]() |
[4c92ee] First commit |
nwhess2freq.m is an Octave script. As such it should be possible to make it run in matlab without too much hassle. However, it is MEANT and DEVELOPED for Octave. __WHY?__ The script can do three useful things: * It allows you to re-use the Hessian to calculate normal modes for different isotopic substitutions without having to re-run the computation * You can restrict your frequency calculation to a part of a system i.e. you can calculate frequencies for the first e.g. 10 atoms, and ignore the remainder (useful if you have frozen part of it with actlist) * Show you how simple this really is. __Octave__ Octave is available in most linux repositories (debian, ubuntu, mint, red hat etc.) It can also be installed on Windows: http://verahill.blogspot.com.au/2013/03/353-cygwin-with-octave-and-gnuplot-on.html It can also be installed on Mac OSX: http://verahill.blogspot.com.au/2013/01/327-installing-octave-gnuplot-on-osx.html __Nwchem__ The Hessian matrices used as input for this program are generated by nwchem (http://www.nwchem-sw.org) which is a flexible, powerful and free program for computational chemistry. Nwchem can be downloaded as binaries or source code. Many debian-derived distros have it in their repos, but building is easy. See e.g. http://verahill.blogspot.com.au/2013/06/449-nwchem-63-updated-sources-compiling.html Hessians are generated using the task freq directive. A sample input file is given below: ------------------ Title "test" Start test echo charge 0 geometry autosym units angstrom O 0.00000 0.00000 0.00000 H 0.922641 0.652406 0.00000 H -0.922641 0.652406 0.00000 end basis "ao basis" cartesian print H library "6-31G" O library "6-31G" END dft mult 1 direct XC b3lyp grid fine mulliken end driver default end task dft optimize task dft freq -------------------------- This will generate a .hess file, in this case 'test.hess'. Rename this 'input.hess'. (Don't confuse it with .drv.hess which is used for geometry optimisaton.) __nwhess2freq__ First run a frequency calculation and rename the hessian output input.hess as shown in the previous section. Next, create an 'input.mass' file. The first line tells you how many atoms there are. The remaining lines hold the masses of the atoms in amu. The masses should be in the same order as the atoms are listed in the nwchem input. For the water example, here's an input.mass: ----------------- 3 1.5994910D+01 1.0078250D+00 1.0078250D+00 ----------------- Finally, start Octave in the same directory as your input.mass, input.hess and nwhess2freq.m, and type nwchess2freq And you should receive the following (freqs in cm-1): -11.0036 -1.6327 3.1676 3.9298 7.5811 12.2862 1619.0207 3616.0904 3781.1341 It also gets saved into a 'normal.out' file. You can change the information which is printed by editing the .m file. The sparse output it gives by default is so that it can be piped into other programmes.