> In my case this did not help; more precisely, any repeating of the > optimization with another starting point can produce the frequencies without > negative ones with some probability. So, if I only want to get rid of the > imaginary frequencies, I can achieve that via repeating the optimization, but > I suppose that such an approach looks like a kind of quackery. I am not sure what you mean by „quackery“? Any optimiser brings the gradient to zero to find a stationary point. This stationary point can be a minimum, maximum or a n'th order saddle point. What kind of point was found is determined by analyzing the eigenvalue structure of the Hessian. It is not a bug or misbehaviour of the optimiser to land on a saddle point, especially, when you have loosely bound molecular complexes as is the case for explicit solvation. It is absolutely proper procedure to then search for a nearby minimum that eliminates the negative frequencies. However, it is not the point to repeat the optimisation from "some“ other starting point and hope that it eliminates the negative frequencies. Instead, what needs to be done is to displace the system along the normal mode with the (or one of the) negative frequency(ies) and then reoptimize. In order to make this as easy as possibles we have provided a compound script with ORCA 5.0 and later that does this automatically and systematically. It is as easy to use as: * int -1 1 C 0 0 0 0.00 0.0 0.0 F 1 0 0 1.60 0.0 0.0 H 1 2 0 1.09 90.0 0.0 H 1 3 2 1.09 120.0 90.0 H 1 4 3 1.09 120.0 180.0 F 1 2 4 1.60 180.0 180.0 * %compound "iterativeOptimization.cmp" That is your entire input! The script should be slightly edited to provide your desired level of theory and a cutoff frequency that you accept as reasonable. I will provide it below. It should be straightforward to adapt. >> 'TightSCF TightOpt Grid7 Gridx9' seems to work for all of our systems >> upto 200 atoms, producing >> accurate results in good agreement with experimental observations. These keywords are deprecated with ORCA 5.0 and later (as explained before) > Currently I tried the combination of keywords !TightOpt DefGrid3 > VeryTightSCF %geom ENFORCESTRICTCONVERGENCE True. That is fine and gives you a numerically very sound result. Good luck! IterativeOptimization.cmp: # Name: IterativeOptimization # # *************************************** DESCRIPTION *********************************************** # iterative Optimization protocol to find structure with no negative # frequencies (e.g. real minima) # # Step 1. Run an optimization and frequencies outside the loop # Step 2. Check the frequencies. If there are negative ones # use the hessian of the appropriate normal mode to adjust # the geometry # # *************************************** DETAILS ************************************************ # MaxNTries : maximum number of tries to find a minimum # CutOff : CutOff frequency that is still acceptable (negative, in cm**-1) # ****************************************** METHOD ************************************************ # # # # Define variables Variable MaxNTries = 25; Variable CutOff = -10; Variable displacement = 0.6; Variable NNegative = 0; Variable freqs[]; Variable modes[]; Variable NFreq; Variable limit; Variable done; Variable FinalEnergy; # =========================================================== # Start a for loop over number of tries # =========================================================== For itry From 1 To maxNTries Do # ---------------------------------- # Run a geometry optimization # ---------------------------------- New_Step ! tightopt freq verytightscf nopop def2-TZVP xyzfile Step_End# Name: IterativeOptimization # # *************************************** DESCRIPTION *********************************************** # iterative Optimization protocol to find structure with no negative # frequencies (e.g. real minima) # # Step 1. Run an optimization and frequencies outside the loop # Step 2. Check the frequencies. If there are negative ones # use the hessian of the appropriate normal mode to adjust # the geometry # # *************************************** DETAILS ************************************************ # MaxNTries : maximum number of tries to find a minimum # CutOff : CutOff frequency that is still acceptable (negative, in cm**-1) # ****************************************** METHOD ************************************************ # # # # Define variables Variable MaxNTries = 25; Variable CutOff = -10; Variable displacement = 0.6; Variable NNegative = 0; Variable freqs[]; Variable modes[]; Variable NFreq; Variable limit; Variable done; Variable FinalEnergy; # =========================================================== # Start a for loop over number of tries # =========================================================== For itry From 1 To maxNTries Do # ---------------------------------- # Run a geometry optimization # ---------------------------------- New_Step ! pbe tightopt freq verytightscf nopop DefGrid3 def2-TZVP def2/J xyzfile Step_End Read freqs = THERMO_FREQS[itry]; Read modes = HESSIAN_MODES[itry]; Read NFreq = THERMO_NUM_OF_FREQS[itry]; limit = NFreq - 1; # ---------------------------------- # check for sufficeintly negative # frequencies # ---------------------------------- NNegative = 0; For ifreq From 0 to limit Do if ( freqs[ifreq] < CutOff ) then New_Geom = Displace itry modes ifreq displacement NNegative = NNegative + 1; endif endfor If ( NNegative = 0) then goto OptDone; endif endfor OptDone : if (NNegative>0) then done = 0; print("ERROR The program did not find a minimum. There are %9.3lf negative frequencies after %9.3lf steps", NNegative,itry); #abort(); else done = 1; print("SUCCESS minimum found after %9.3lf steps", itry); endif > One job with these keywords > produced correct frequencies, however I am not sure it will be always so. And > this job demanded much more CPU time, so even if it helps, I can't use these > keywords with all my jobs. So, again the main question is not how to get rid > of the imaginary frequencies, but to explain in the paper, why they are > produced and why I can't compute the entropy with my jobs. > If I am not mistaken, the vibrational entropy is computed as a sum of > contributions by each vibrational mode. So, one more question is, is the > following approach correct - omit the small modes when computing the entropy? > > Grigoriy, > https://chemcraftprog.com > > > > -= This is automatically added to each message by the mailing script =- > To recover the email address of the author of the message, please change> > > > Subscribe/Unsubscribe: > > > Job: http://www.ccl.net/jobs > Conferences: http://server.ccl.net/chemistry/announcements/conferences/ > > > > > ---------------------------------------------------------------------------- Prof. Dr. Frank Neese Department of Molecular Theory and Spectroscopy Max-Planck Institut für Kohlenforschung Kaiser-Wilhelm-Platz 1 D-45470 Mülheim an der Ruhr Germany E-Mail: Frank.Neese|a|kofo.mpg.de ----------------------------------------------------------------------------
Attachment:
smime.p7s
Description: S/MIME cryptographic signature