Simultenous OPT+FREQ+FCHK

I was trying to optimize as well as frequency calculation followed by creating a fchk file. The optimization ran ok, the frequency calculation with thermochemistry calculation was also okay.
But I got the error and no fchk file was generated.

AttributeError: ‘builtin_function_or_method’ object has no attribute 'rms’

The typical keywords that might have caused this are,

e , wfn = optimize(‘MP2’ , return_wfn=True)
frequencies (‘MP2’, return_wfn=True)
frequencies(‘MP2’, ref_gradient=wfn.gradient)

fchk_writer = psi4.core.FCHKWriter(wfn)
fchk_writer.write(‘output.fchk’)

I would rather like to have beer than coffee with the community. :wink:

In future, please follow the guidelines for submitting a bug report. In particular, the Psi4 version number, the exact input file, and a complete error message. When I try to reproduce the error, I get the exact line number for the problem. Including that information makes it easier for us to help you.

In this case, I can tell you the problem even without that information. wfn.gradient is the name of the method that returns the gradient. The gradient itself is wfn.gradient(). You need to include the parentheses in the frequency call.

That said, why are you calling frequencies twice, and why are you setting return_wfn=True in the frequencies call? The two frequency calls should give a nearly identical result, and you aren’t saving the wavefunction you get from the first frequency call.

Thank you,
Firstly, I will follow the guidelines, and truly sorry for not doing that earlier.
The version I am using is,

Psi4: An Open-Source Ab Initio Electronic Structure Package
Psi4 1.3.2 release

                     Git: Rev {HEAD} ecbda83 

Secondly, I do not know how to optimize the geometry, and do the frequency calculation together. Along with this, how can I generate the .fchk file of this calculation.
I am from ‘G’ environment where the .chk generated can be converted to .fchk which I used for Multiwfn or NCIPlot.
So, I asked in an earlier post " Optimize and Frequency with formatted check point " where it was mentioned. I just tried my best to coalesce all of those. This is where I made the mistake. I am still dumb for those last keywords.
Can you correct them?
I am uploading the full input,

molecule {
0 2
   F        0.00000        0.00000       -2.20530
   F        0.91060       -1.37550        0.13220
   C        0.00000        0.00000        3.49460
   H       -0.58980       -0.89090        3.69750
   H        1.06780       -0.06540        3.69000
  Ge        0.00000        0.00000       -0.45540
}

basis {
assign H cc-pvtz
assign aug-cc-pvtz
}

df_basis_mp2 {
assign H cc-pvtz-ri
assign aug-cc-pvtz-ri
}

set {
scf_type df
reference uhf
freeze_core true
guess sad
}

set {
geom_maxiter 150
G_convergence GAU_TIGHT
opt_coordinates both
print_trajectory_xyz_file true
final_geom_write true
}

e , wfn = optimize('MP2' , return_wfn=True)
frequencies ('MP2', return_wfn=True)
frequencies('MP2', ref_gradient=wfn.gradient)

fchk_writer = psi4.core.FCHKWriter(wfn)
fchk_writer.write('output.fchk')

Thank you for the additions. Now as to your actual problem:

Your input file works just fine for optimizing the geometry and computing the frequencies in the same input file. Your problem is just that you’re passing in an argument incorrectly. The problem is the line frequencies('MP2', ref_gradient=wfn.gradient). You need to change it to frequencies('MP2', ref_gradient=wfn.gradient()) because wfn.gradient is the name of the function. You need to actually call the function to get the gradient.

That said, I don’t understand your input file. What do you accomplish by calling frequencies twice, and what do you accomplish by asking the first frequency call to return the wavefunction but never using it?

If I’m not answering your question, can you clarify what I need to address?

Thank you Jonathan for your prompt help.
To be frank with you, I don’t think I can understand the details of every commands I have used but I hope to learn.
The objective is to optimize the structure to it’s minimum structure, calculate the frequency to check for any imaginary frequency. And further use the fchk file for post processing with Multiwfn and NCIplot.
The theoretical level I want to use is, RIMP2/aug-cc-pvtz for all atoms except H, where cc-pvtz will be used.

In that case, you can simplify the frequencies calls to just frequencies ('MP2'). return_wfn causes the call to return a wavefunction, which you don’t use. ref_gradient allows you to specify what the current gradient is, so the frequencies call doesn’t recalculate it.

Let me know if there’s anything else.

1 Like

Thank You a lot. I was just wandering in those terms. It is Working. Long live forum.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.