I am using Qchem 6.0 and I want to print out the hessian and delocalized internal coordinates for my system and this is the input I am currently using,
It uses the OPTIMIZE driver for optimization and I wanted to ask if I can do the same with the new LIBOPT3 driver? I tested my job with the PRINT_LEVEL=10 option but it did not print the hessian.
Another question I have is how to print the hessian (in ASCII or binary) from a frequency calculation? The $rem I tried is as follows, and it does not print the hessian.
In older versions of Q-Chem the Hessian is printed automatically but in newer versions that is suppressed unless you set VIBMAN_PRINT = 4 (or higher). Then you should get the Hessian in mass-weighted Cartesians.
Thank you for the answer but I should have specified in the original question that I need the Hessian in internal coordinates, which is what the GEOM_OPT_PRINT = 6 seems to print.
Regarding the generation of the internal coordinates, it is printed as:
etc. Is there a way to print out the actual values of the bonds, angles, and dihedrals after optimization? It is trivial to calculate these values (in postprocessing) but I want to know if there is a way to print them in the output file?
I’m not sure what format you are expecting but I think the answer is “no”. Below the section that you’ve highlighted, you should see eigenvectors of B*B^t, where B is the Wilson B matrix (Cartesian-to-internal transformation). Those eigenvectors are the delocalized internal coordinates.
After some trial and error with different keywords, I found that GEOM_PRINT=TRUE prints the geometric information after optimization, which is what I need.
Although, this keyword prints out bonding information between unconnected atoms, i.e., bond length not present in the internal coordinates. I am guessing there is a threshold under which all atom distances are printed.
I am a bit confused on the cartesian to internal transformations. For example, this is the input I’m using
$molecule
0 1
C -0.0271465742 0.0023262137 -0.0014675850
H -0.4971883597 0.9290468313 0.3440552189
H -0.3406686937 -0.8030066651 0.6698901799
H -0.3938070007 -0.2141676025 -1.0072179800
C 1.4862839731 0.1399707909 -0.0195120254
H 1.8658170034 0.3465063759 0.9914241161
H 1.9511768015 -0.7878799502 -0.3601820798
O 1.9285196425 1.1360509819 -0.9430485555
H 1.5650120685 1.9851531629 -0.6409413537
$end
$rem
JOBTYPE=OPT
METHOD=MP2
BASIS=6-31G*
MEM_TOTAL=10240
SCF_CONVERGENCE=8
NO_REORIENT=TRUE
SYM_IGNORE=TRUE
GEOM_OPT_DRIVER = OPTIMIZE
GEOM_OPT_PRINT = 7
GEOM_PRINT=TRUE
$end
What I need is the Hessian in redundant primitive coordinates (shape should be 33 x 33), but I cannot find any such matrix in the output.
The initial B matrix is 27 x 33 but it is transformed into non-redundant B matrix and it’s shape changes to 27 x 21 and it’s the same for the inverse B matrix.
The Hessian matrix that is being printed is 21 x 21, which is in the non-redundant internals. How can I get the Hessian in the full span of primitive internal coordinates?