CCL: CCL CCL: Negative frequencies with C1 symmetry (Orca)



 >  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