[ Gvib Home]

Frequently asked questions

Installing Gvib

Running Gvib

Troubleshooting


Installing Gvib


Gvib does not compile.
The program seems to require old version of gcc and g77. These are usually contained in packages named as gcc33-fortran or similar. Please add these two lines in configure.in:
AC_PROG_F77([g77-3.3])
AC_PROG_CC([gcc-3.3])

Running Gvib


How do I create G03 input files displaced along normal modes?
  1. Create project directory containing the optimized molecular geometry, e.g. project/project.x.
  2. Create config file gvib -h > project/jobrc. Do not forget to edit the gcmd_harmonic and gcmd_displaced options to meet your requirements.
  3. Check that the default pbs-job.template suits you, including the type of the PBS job (short,normal,long). Otherwise make a copy in the project directory and edit as necessary.
  4. Run gvib -a ff2,harmonic-freqs,create-nm-inputs project/. This command will run Gaussian on the displaced geometry, create harmonic force-field and finally create the displaced G03 inputs and PBS scripts.
  5. After all the G03 jobs are done, put the outputs in the project/gauss-disps directory and run gvib -a nm,all to create cubic and quartic constants and to run all implemented anharmonic methods.

How do I extract constants from a G03 file and convert them to Gvib format?
One possibility is to use the get-gauss-field utility to obtain the constants as a list of numbers and rearrange them to the order described in conf_Actions.html and Actions.pm.

However, more convenient way is to set up a new Gvib project and let the gvib script do the job, as in the following example:

    mkdir project
    cd project
    cp ../somewhere/my-gaussian.inp project.x
    ln -s ../somewhere/my-gaussian.out.gz gauss.out.gz
    gvib -h > jobrc
    gvib -a harmonic-constants .
And you are done.

How can I find out which modes contribute to a given peak in the Harm+VCI spectra?
Take advantage of the print_vci_state utility. Before running the csf_harm_vci action, uncomment the vci_basis_set and vci_solutions options in the config file. With these options set, the VCI basis set and VCI solutions will be saved for further investigation. Identify the index of the eigenvalue of interest in the output of print_vci_state -d dir -e and then run print_vci_state -d analyze-gnd/ idx -s | gsort -r -a to obtain list of contributions from VCI basis functions to the given state in descending order. To visualize normal modes present in thus found VCI states, use the gmm utility.

How to perform a calculation with isotopic substitutions?
Set up a gvib project directory containing optimized molecular geometry project/project.x and run gvib -a ff2 project/. Gvib will run Gaussian frequency job on the optimized geometry, as specified in the config file project/jobrc, and the file with atomic masses will be created project/masses. Edit the file and proceed as usual, e.g. gvib -a cc,harm+vci project/.

How to transfer molecular properties between two molecules?
For large molecules, molecular property tensors are very expensive to evaluate. In a procedure described by Bouĝ [ref], the tensors may be evaluated for a smaller molecular fragment and transfered to the large target molecule. The program transfer-all-props from gvib package mimicks Bouĝ's cctn.

For instance, assume that ROA tensors were calculated at low electronic level and low-ROA.out is the Gaussian output, and high electronic level was used only for evaluating of Raman tensors high-Raman.out.

  1. First, find out the atom indexing in the two files. In the simplest case, when the molecules are the same and differ only in atom ordering, bond-lengths etc., the utility reorder may be used:
    reorder --cctn -s low-ROA.inp 1,2,3 -d high-Raman.inp 5,6,7 > conf
  2. Extract polarizability tensor from the higher precision output
    get-gauss-field --gvib -f polard high-Raman.out > tgt-polard
  3. Now transfer the tensors:
    transfer-all-props -c conf -g low-ROA.out -m high-Raman.inp -p tgt-polard -o outdir
  4. Run gvib:
    cd outdir
    cp ../high-Raman.inp outdir.x
    ln -s ../high-Raman.out gauss.out
    gvib -h > jobrc
    gvib -r -a harmonic-constants,harmonic-freqs,harmonic-intensities .

Troubleshooting

Why Gvib skips an actions which I want it to run?
Gvib can decide to skip an action, if all required files are already present. To find out what files are required, look in the actions list and check for the "Skip if done" fields.

Alternatively, when gvib is run with the -d switch, it will tell you why a particular action is skipped. For example, the following lines may appear in the output:

 
         run_gaussian_ff34: the file test2/disp_cff2 done.
         run_gaussian_ff34: the file test2/disp_dipd done.
All files of run_gaussian_ff34 already done.
Note: Skipping the action run_gaussian_ff34

Identify the offending files, move them to some other location or rename and run gvib again.


Some of the gvib programs ends abruptly
When running gvib with any action, a message similar to this one may appear:
Running program:        run_project_cff2
run_project_cff2 ... Thu Aug 17 10:07:47 2006
list in: end of file
apparent state: unit 11 named /scratch/anonym/etc/etc/etc...
last format: list io
lately reading sequential formatted external IO
This happens to programs written in Fortran, when a string exceeds the length of an internal buffer holding a file name. Currently the limit is 500 characters and it can be raised by editing parameters.h and recompiling.

The VCI and VSCF methods do not converge.
When running the VCI method, the program may end with the message
ERROR: VCI divergence detected!
and the VSCF method may end with the message
Sorry, the VSCF did not converge in 50 iterations, diff still too large: 1.796930e+16.
Usually the cause of the problem is some low-lying vibrational mode. Run gmm ./project.nmodes to visualize the normal modes as calculated by default by the nm_anim action. Rotational movements of CH3 but also other vibrational modes with frequency less than 200 1/cm are often the cause of the problem. Edit the jobrc file and set the option ignore_modes appropriately. Then run gvib gvib -r -a cc to recalculate the constants and proceed as usually.