Frequently asked questions
Installing Gvib
Running Gvib
- How do I create G03 input files displaced along normal modes?
- How do I extract constants from a G03 file and convert them to Gvib format?
- How can I find out which modes contribute to a given peak in the Harm+VCI spectra?
- How to perform a calculation with isotopic substitutions?
- How to transfer molecular properties between two molecules?
Troubleshooting
- Why Gvib skips an action which I want it to run?
- Some of the gvib programs ends abruptly.
- The VCI and VSCF methods do not converge.
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?
- Create project directory containing the optimized molecular geometry, e.g. project/project.x.
- Create config file gvib -h > project/jobrc. Do not forget to edit the gcmd_harmonic and gcmd_displaced options to meet your requirements.
- 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.
- 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.
- 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.
- 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 - Extract polarizability tensor from the higher precision output
get-gauss-field --gvib -f polard high-Raman.out > tgt-polard - Now transfer the tensors:
transfer-all-props -c conf -g low-ROA.out -m high-Raman.inp -p tgt-polard -o outdir - 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 IOThis 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.