1.7. Troubleshooting Problems in ORCA

When starting out with ORCA, trying out features for the first time, or when delving deeper into computational studies, one may run into issues that need troubleshooting. In this section, we summarize typical sources of errors and the error messages encountered to help with troubleshooting common problems.

Note

This section is to be a growing library of examples of common issues. If you are not able to find a solution to your problem here, please post in the ORCA Forum with a general description of your issue and—if possible—the input and/or output files that showcase the issue. If a type of problem comes up often enough, it will be included in this section for future releases!

1.7.1. ORCA Does Not Run…

If ORCA does not seem to be running at all, make sure that the path variables are set correctly (refer to the Installation section) and that there are no other programs on your system that interfere with the use of ORCA. One example is if there is another program named ORCA. To check if this is the case, check that which orca or where orca (or an equivalent thereof) outputs the correct ORCA executable. If it does not, try using the full path to the ORCA executable when trying to run a job. When in doubt, turn to the section on Running ORCA.

If ORCA runs for you in serial, but not in parallel, first make sure that you are not running the main ORCA executable with mpirun. The main ORCA driver needs to be run in serial and will call the different modules in parallel if requested in the input file. If you try to run using mpirun, you will typically get the output

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!                        FATAL ERROR ENCOUNTERED               !!!
!!!                        -----------------------               !!!
!!!                          I/O OPERATION FAILED                !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

and you may also have an error from prterun/mpirun. If any output is generated, this may be duplicated multiple times.

To run ORCA in parallel, you must also provide the complete path to the ORCA executable. Simply using orca will result in the error:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!     ERROR (ORCA_MAIN): For parallel runs                     !!!
!!!     ORCA has to be called with full pathname                 !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

See Hints on the Use of Parallel ORCA for more tips.

1.7.2. Where is my ORCA Output?

If you ran ORCA, see that some files were generated, but cannot find the output file itself, you are likely running ORCA without redirecting the output to a file. See Running ORCA for instructions.

If, however, you are missing other files that should be generated by ORCA and you are using a submission script, make sure that the script is copying all relevant files from where the job is actually being run.

1.7.3. Sudden Termination of ORCA

The general advice when ORCA terminates unexpectedly is to always look at the last few lines of output—ORCA typically tells you what is going on! For example,

            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                 INPUT ERROR
            UNRECOGNIZED OR DUPLICATED KEYWORD(S) IN SIMPLE INPUT LINE
                       PAL12 
            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[file orca_main/main_input_keywordline.cpp, line 13941]: 

tells us that the keyword PAL12 is not recognized. This is because there are only simple keywords for the more common number of processors. At this point, referencing the manual (searching for “parallel” or “processors”, for example) tells us that only “PAL2 to PAL8 and PAL16, PAL32, PAL64” are recognized simple inputs. That same part of the manual shows how to specify any number of processors using the nprocs keyword in the %pal input block.

However, there are instances where no clear error message is printed. This may look something like this:

ORCA finished by error termination in <ORCA MODULE>
Calling Command: mpirun -np 8 /path/to/orca/module myjob.moduleinp.tmp myjob
[file orca_tools/qcmsg.cpp, line 394]:
.... aborting the run".

At this point, looking at the warnings issued by ORCA at startup can be very helpful. This is located in the output file section titled WARNINGS—right after the list of ORCA contributors and before the copy of the input file:

===========================================================================
                                   WARNINGS
                  Please study these warnings very carefully!
===========================================================================
WARNING: Geometry Optimization
  ===> : Switching off AutoStart
         For restart on a previous wavefunction, please use MOREAD

This is especially helpful if ORCA found something odd, but decided not to terminate and instead assumed that this was intended by the user.

Other warnings may be issued after the startup warnings. Search the output for other instances of WARNING to see what ORCA flagged as possible issues during the calculation. This could be—but is not limited to—non-converging (CAS)SCF, CPSCF, or CC iterations, linear dependencies in the basis set, and memory problems. Typical trademarks of poorly converging geometry and/or SCF runs include, for example:

                                   *** Resetting DIIS ***
 WARNING: the maximum gradient error descreased on average only by a factor   0.9
          during the last 20 iterations
                      *** Initiating the TRAH-SCF procedure ***

or

  0    -4604.304089906417    2.255713e+02                    0.400 (TRAH MAcro)   No
WARNING : negative HOMO - LUMO gap : -60.865582
  0   dE    -8.949363e+01    1.445336e+01    -5.5474e+02     0.400 (TRAH MIcro)

Next, check to see if the issue is maybe from outside of ORCA. For example, if you exceed time, disk, or memory limits of the queuing system you use to submit ORCA jobs, the system (or sometimes even an administrator) will terminate your job. In this case, there may be no error message or an error message from your queuing system or system shell. The form of error message you see will depend on your operating system and how the queuing system is set up. The queuing system may also gather the errors in a separate file.

1.7.4. Incorrect Input File Syntax

The following subsections explore common errors with input file syntax. It may be good in general to refer to the sections General Structure of the Input File and Input of Coordinates.

1.7.4.1. Unknown Simple Input Keyword

As shown above, the typical error message associated with an unrecognized simple input keyword is

            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                 INPUT ERROR
            UNRECOGNIZED OR DUPLICATED KEYWORD(S) IN SIMPLE INPUT LINE
                       <KEYWORD>
            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

1.7.4.2. Unknown Input Block Keyword

Another issue with the input file syntax may be an unrecognized keyword in an input block. The error message for this is typically

         Unknown identifier in <BLOCK_NAME> block line <LINE_NUMBER>  :
         Last token : <KEYWORD>

If you are sure that the keyword exists, check to make sure that you have closed all input blocks with an end statement. Additionally, there may be some subblocks in the input blocks that require an end statement.

1.7.4.3. Required Input is Missing

It is best practice that all ORCA input files specify at least three things: (1) a geometry, (2) a method to run, and (3) a basis set. (1) can be set in the %coords block or using the simple input syntax. It may also be read from an external file. (2) and (3) can be set using simple input keywords or their respective input blocks. Refer to the sections General Structure of the Input File, Input of Coordinates, Basis Sets, and the part of the manual for the desired method.

If a method or basis set is not specified, there is often no error message and a default is set. In these cases, it is important to check the output carefully! However, a missing geometry and some auxiliary basis sets do not have defaults and will result in an error. Following are examples of the errors encountered from these issues.

Missing geometry:

You must have a [COORDS] ... [END] block in your input

Missing auxiliary basis (caught in the main check):

ERROR: RI-MP2 needs an AuxC basis but none was defined!

Missing auxiliary basis (caught by SHARK):

Error (TMOIntegrals): Aux/C requested but not available in SHARK
ORCA finished by error termination in <MODULE>

If you are unsure of which auxiliary basis sets to use, a convenient functionality is !AutoAux. Note here that these automatically generated auxiliary basis sets may lead to linear dependence issues.

Additionally, if an atom Xx is not defined in the provided basis set, it will give the error:

               *****************************************************************
               ** There are no main   basis functions on atom number   0 (Xx) **
               *****************************************************************
    The basis set was either not assigned or not available for this element - Aborting the run

This can be fixed by (1) requesting a different basis set in which that element is defined or (2) using the requested basis set for all other elements and assigning a different basis set just for that element. This can be achieved by using NewGTO (see Assigning Basis Functions to an Element).

Simply requesting RI when the chosen method uses exchange integrals will also lead to ORCA aborting, as it does not know how to handle these integrals. The error message gives the user the options which may be specified:

Error: RI is on but the HF exchange must be handled somehow
Use one of the keywords
     RIJDX  : treat the HF exchange exactly (equals RIJONX)
     RIJCOSX: treat the HF exchange by chain-of-spheres
     RIJK   : treat Coulomb and exchange both by RI

Depending on the method run and what other keywords are specified, other inputs may be required. In most of these cases, ORCA outputs an error that should be self-explanatory. This error may, for example, look like:

         Error: Missing keyword in <BLOCK_NAME> block                   
         Missing keyword : <KEYWORD>

1.7.4.4. Missing end Statement

If an end statement is missing to close out an input block, a couple errors may occur. Often, one encounters the Unrecognized symbol error, where the next symbol is interpreted as being a part of the previous input block. This error would be of the form:

         Unrecognized symbol in <BLOCK_NAME> block line <LINE_NUMBER>  :
         Last token : %

One may also get a more obvious error message:

         'END' was expected at the end of the <BLOCK_NAME> block line <LINE_NUMBER>  :
         Last token : <PREVIOUS_KEYWORD>

1.7.4.5. Missing Symbols

Just as errors occur with not enough end statements, it is also the case with too many end statements. For example, some inputs like %base, %moinp, and %MaxCore are global variables and not input blocks. They therefore do not expect end statements. In this case, the error may look something like this:

ERROR: expect a '$', '!', '%', '*' or '[' in the input
       Line <LINE_NUMBER> of <INPUT_FILE> (END)

Here, ORCA was not expecting another keyword and was instead looking for a symbol that would begin a new input block, geometry block, etc.

If instead you provide a keyword outside of an input block, forget the ! at the beginning of a simple input line or the * for the geometry block, or write a comment without a #, you will get the same error message as above, just with the first keyword it runs into after the missing symbol in place of END.

Trying to read in external files typically requires the file to be provided in quotation marks. If these are missing for the %moinp keyword, for example, the error message is:

Error: Quotes expected after scanning %%moinp

An exception to this is that external coordinate files should not be specified using quotation marks in the simple geometry input section (for example via *xyzfile).

1.7.4.6. Unrecognized Symbols

Another issue is if there are extra symbols than what ORCA is expecting. A common example of this is the simple coordinates input, which begins with an asterisk and ends with an asterisk on a new line if you provide the coordinates in the input file. However, reading coordinates from an external file—using the *xyzfile syntax, for example—while also providing a second asterisk (on a new line) gives the error:

ERROR: found a coordinate definition line (* ctyp charge mult)
   but could not read ctyp, charge and multiplicity

Using %% to open an input block instead of % or having a stray % in the input file results in the error:

Error: expected an identifier after '%%' in the input

However, using !! instead of ! for the simple input keywords gives an unrecognized keyword error as it interprets the second exclamation mark as its own keyword. Other symbols that ORCA is not expecting will give the error:

ERROR: expect a '$', '!', '%', '*' or '[' in the input

1.7.4.7. Cannot Open Files

If you need ORCA to read from another file, you will encounter an error if the file specified does not exist. For example, using *xyzfile 0 1 geom.xyz will give the error

ORCA_ReadXYZFile::Error
There was a problem reading file: geom.xyz
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!                        FATAL ERROR ENCOUNTERED               !!!
!!!                        -----------------------               !!!
!!!                           CANNOT OPEN FILE                   !!!
!!!               Filename: geom.xyz                                   !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

if geom.xyz does not exist. This same error may be seen if the file exists, but quotation marks are given around the file name. In that case, the error message will include the quotation marks in the output of the file name.

Additionally, you may encounter this error if the coordinates are specified in the input file via the simple geometry input block, but the keyword used suggests that ORCA should read from an external file. For example, using the *xyz coordinate syntax with the keyword *xyzfile gives the error:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!                        FATAL ERROR ENCOUNTERED               !!!
!!!                        -----------------------               !!!
!!!                           CANNOT OPEN FILE                   !!!
!!!               Filename:                                    !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Characteristic here is the absence of a filename, as *xyzfile was used, but no external file was provided.

Other file types may have different error messages. For example, if a GBW file is read in with %moinp MOs.gbw, but MOs.gbw does not exist, it will give the error:

Cannot open GBW file: MOs.gbw

1.7.4.8. End-of-file (EOF) Issues on Windows Machines

If you are running ORCA on a Windows machine, you may run into issues with your input file if it does not end with a blank line. A common case is that the last line tries to read coordinates from an external file, resulting in an error message claiming that the file is missing. If adding a blank line at the end of the input file does not help, also try adding a blank line at the end of (user-created) external files that ORCA is to read from.

1.7.4.9. Non-ASCII Characters

You may also get an error if you try to use a non-ASCII character in the input file. In older versions of ORCA, non-ASCII characters were not checked for, which could lead to seemingly valid keywords being flagged as unrecognized. Since ORCA 6.0.1, a helpful error message is printed to aid in finding these characters:

ERROR: non-ASCII character(s) found in words on line <LINE_NUMBER>: 
<KEYWORD W/ NON-ASCII> Please remove all non-ASCII characters from your input file

Especially difficult to spot are non-ASCII characters like non-breaking spaces, en- and em-dashes, and the various types of quotation marks as these look very similar to their ASCII counterparts.

1.7.5. Out of Memory (OOM)

A typical error message that occurs if %MaxCore is not given or if insufficient memory is available for the calculation to proceed is Please increase MaxCore. This will typically be the case if ORCA tried to estimate the memory needed and found that MaxCore is not sufficient.

Note

MaxCore is given in MB and is the amount of maximum memory to allocate PER PROCESSING CORE! ORCA may also overshoot MaxCore during the calculation and is not necessarily set for all methods. As such, it is generally advised to set MaxCore such that MaxCore * nprocs <= 0.75(Available Memory).

For some methods, ORCA tries to estimate the memory needed early on during the calculation. If this estimation is larger than MaxCore, but smaller than 2*MaxCore, ORCA will issue a warning and proceed. However, if the estimation is larger than 2*MaxCore, ORCA will abort. You will then have to increase MaxCore in the input file and run the job again.

In some cases, this rough estimation of the memory required is not enough and ORCA realizes during the calculation that it does not have enough memory to proceed. Such an error may look like this:

[file orca_tools/qcmem.cpp, line 949, Process 7]:  OUT OF MEMORY ERROR! 

--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID <PID> on node <NODE> exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------
4 total processes killed (some possibly by mpirun during cleanup)

ORCA finished by error termination in SCF
Calling Command: mpirun -np 8  /path/to/orca_scf_mpi myjob.gbw b myjob 
[file orca_tools/qcmsg.cpp, line 458]: 
  .... aborting the run

Note that the OUT OF MEMORY ERROR message may not be in the output, depending on the method run.

1.7.6. Disk Full

Some ORCA calculations require a lot of data to be written to disk. This can either be temporary files used during the calculation and deleted afterwards or files that are stored even after the calculation is finished. If the disk becomes full at some point during the calculation, ORCA will abort. This may happen silently (without a clear error message) or with an error message that typically mentions not being able to write a matrix or set a pointer. For example:

Error TMatrixContainers::AddMatrix - Failed to add <INDICES> to <TMP_FILE>

or

Error TMatrixContainers::AddMatrix - Failed to set FilePointer

1.7.7. Basis Set Linear Dependence

If some functions in the basis set used are (nearly) linearly dependent, this may lead to numerical issues in the calculation. This is more often the case for basis sets with diffuse functions and auxiliary basis sets generated by !AutoAux. ORCA and SHARK try to catch these issues early. For example, you may see

WARNING! Potentially linear dependencies in the auxiliary basis
===>>    At the moment, SHARK is not equipped to deal with this
  ... sorry, have to bail out

in the output. However, this is sometimes not caught and could lead to numerical instabilities or even ORCA aborting down the line. For example, one may encounter the issue:

Diagonalization failed with error code: -5 !

One part of the output to check in this case is the diagonalization of the overlap matrix. Very small eigenvalues could point to linear dependence issues. This output may look something like:

Diagonalization of the overlap matrix:
Smallest eigenvalue                        ... 3.064e-08
Time for diagonalization                   ... 3.223 sec
Threshold for overlap eigenvalues          ... 1.000e-07
Number of eigenvalues below threshold      ... 3
Smallest eigenvalue above threshold        ... 1.002e-07

There are options to help mitigate linear dependence issues, which are explained in more detail in the section on Linear Dependence.

1.7.8. Symmetry of Molecule Not as Expected

If you run ORCA with symmetry (via !UseSym), be sure to check that the Auto-detected point group matches what would be expected. The input geometry may not be perfectly symmetric due to numerical noise. In that case, loosening the threshold for point group identification (for example, with %sym SymThresh 0.01 end) should lead to the expected point group and ORCA will use a symmetry-perfected geometry for the calculation. For more information, see the section ORCA and Symmetry.

1.7.9. Using Old ORCA Inputs

If you try using an old ORCA input file with a newer version of ORCA, you may find that it does not run. Often when this is the case, there will be an error message issued during the startup of the calculation. This message should help you troubleshoot the issue.

Here, the issue typically arises due to keywords and defaults which may have changed from one version to another. In some cases, a keyword may have even been deprecated. When updating to a new version of ORCA, it is often helpful to refer to the Detailed change log, as many of these changes are noted.

If you are trying to read in a GBW file from another version of ORCA, you may find that you run into an error such as:

WARNING!!!!!!!
Your GBWFile is either corrupt or from a different ORCA version!
Please be VERY careful with your calculation results!!!

Data_size, sizeof( TOrcaInfo ): 974880, 980832

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!                        FATAL ERROR ENCOUNTERED               !!!
!!!                        -----------------------               !!!
!!!                          I/O OPERATION FAILED                !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

This is especially common when using !MORead or when using ORCA utility programs, such as orca_plot. In the case of reading in starting orbitals for a subsequent calculation, the additional keyword !Rescue may help. Note that with this, fewer checks are performed, so it is important to make sure that the GBW file represents a system that is compatible with the current input file.

For the case of plotting orbitals and certain densities with orca_plot, you can either use the same ORCA version as the one that produced the GBW file or you can run a calculation with the newer ORCA version by using !Rescue MORead NoIter in the input file (and reading in the GBW file via the %moinp keyword). This calculation should not take long and the new GBW file produced should be readable by orca_plot. Note that in this case, all other settings should be specified as they were for the calculation that produced the older GBW file.

If you are unsure about an input, please first consult the relevant parts of this ORCA Manual. It is provided by the ORCA developers and should contain all information about the functionality implemented in this version of ORCA. It is also important to reference the ORCA Manual for the version of ORCA that you are using. If you are viewing this manual online and are not using the most recent release version of ORCA, please update your ORCA version or find the ORCA Manual for the version you are using. If you are still unable to get an input file to work, the ORCA Forum is a great place to turn to for getting answers to your questions!

1.7.10. Reproducing Results of Other Program Packages or Older ORCA Versions

Reproducibility of results is fundamental in science, so it is good practice to compare results when switching from one program to another or from one ORCA version to another. If you are trying to do this and observe deviations that are larger than expected, here are some hints and tips.

Newer versions of ORCA might include changes to the default settings, which may affect the numerics. For example, ORCA 6 has improvements to the numerical integration grids. In most cases, these changes should lead to better results and are most likely the reason for differences between the latest ORCA release and previous versions. It is usually possible to manually set these values to their old defaults for comparison purposes. For such an inspection, compare the information in the output to see which values have changed. Reference the relevant sections of this manual to determine how to change these values.

In trying to reproduce results from another program in ORCA (or vice versa), it is important to check that the methods being used are in fact equivalent and that both programs compute the value(s) in question in the same manner. This may mean using some settings that you would not otherwise use so that you can make sure that the two should be comparable. For example, ORCA uses pure d- and f-functions (i.e. 5 d-functions and 7 f-functions instead of the Cartesian 6 d-functions and 10 f-functions) for all basis sets, so this should be taken into account when comparing to programs that do not.

If you still run into issues with reproducibility, open a post in the ORCA Forum and give enough details on what is being compared so that other users and developers can be of assistance. It is often helpful to include the input(s) and/or output(s).

1.7.11. Orbitals Not Found

If you encounter this error:

No orbitals were found in the gbw file

it is most likely that you are trying to use !MORead to read in a GBW file with the same basename as the current input file. This is done automatically with ORCA’s AutoStart feature (on by default), so you should be able to simply remove the !MORead and %moinp parts of the input file. If you want to save the previous orbitals (for later access) and read them in, copy the GBW file to something with a different basename and then read that file in as usual.

1.7.12. Trouble Restarting Input File

Another AutoStart issue is when you make a significant change to your input file and try to rerun it without deleting the old ORCA outputs. This often happens if there is a significant mismatch in the geometry—like when atoms have been reordered or removed. In this case, the error encountered is:

Error: Input geometry does not match current geometry

Typically, the basis set can be changed without issue, though, as ORCA will perform a projection of the old orbitals onto the new basis set if needed.

If there is an issue with restarting a file, you can always try to run the job from scratch by adding !NoAutoStart to the input file or by deleting all other files with the same basename as the input file before rerunning.

1.7.13. SCF Convergence Problems

A typical problem that occurs for systems with complex electronic structures like transition metal complexes or systems with many orbitals in a narrow energy range (such as metal clusters) is a poorly-converging SCF. While ORCA offers keywords like !SlowConv, this might not be the best option. Specifically, !SlowConv may converge to a local minimum solution that is closer to that of the initial guess. We have compiled a list of tips and tricks in the section Converging SCF Calculations.

1.7.13.1. Example: Converging DFT for Open-Shell Transition Metals

Since DFT is frequently applied to open-shell transition metals, we show here a (more or less trivial) example of a Cu(II) complex treated with DFT:

*xyz -2 2
  Cu  0     0     0
  Cl  2.25  0     0
  Cl -2.25  0     0
  Cl  0     2.25  0
  Cl  0    -2.25  0
*

%compound
NewStep
  !BP86 SV SlowConv  
StepEnd

ReadMOs(1);
NewStep
  ! B3LYP NoRI TZVP TightSCF 
  %scf GuessMode CMatrix end
StepEnd
EndRun

Although it would not have been necessary for this particular example, this shows a possible approach to converging such calculations. We first perform a less accurate (but quicker) job using the RI approximation, a GGA functional, and a small basis set without polarization functions. Note that a larger damping factor has been used in order to guide the calculation (!SlowConv).

The second job takes the orbitals of the first as input and performs a more accurate hybrid DFT calculation. A subtle point in this calculation on a dianion in the gas phase is the input specification GuessMode CMatrix, which requests the use of the corresponding orbital projection. This matches the orbitals of the smaller basis set calculation to those of the larger basis set. This is always required when the orbital energies of the small basis set calculation are positive, as will be the case for anions.

1.7.14. Troublesome Geometry Optimizations

While some issues during optimization jobs give errors that have been covered above, there are problems that may arise which do not produce error messages or terminate ORCA. In some cases, you may get a normal termination, but the results you obtain are not valid. One must often use chemical intuition to determine if the geometry optimization yields reasonable structures and frequencies.

1.7.14.1. Imaginary Frequencies after Optimization

If a geometry optimization terminates normally, the algorithm has decided that it is sufficiently close to a stationary point on the potential energy surface. To test whether this stationary point is a minimum, maximum, or transition state or to check how close the structure is to the stationary point, a frequency calculation must be run. This might yield imaginary frequencies (which arise due to negative force constants as the frequencies are proportional to the square root of them), which indicates that we are not at a minimum.

-----------------------
VIBRATIONAL FREQUENCIES
-----------------------

Scaling factor for frequencies =  1.000000000  (already applied!)

   0:         0.00 cm**-1
   1:         0.00 cm**-1
   2:         0.00 cm**-1
   3:         0.00 cm**-1
   4:         0.00 cm**-1
   5:         0.00 cm**-1
   6:        -5.66 cm**-1 ***imaginary mode***
   7:        14.88 cm**-1
   8:        21.54 cm**-1

There are several approaches to deal with this issue. Typically, using tighter optimization criteria, tighter DFT grids, and/or tighter SCF convergence criteria helps, especially for small imaginary frequencies. Another approach can be to identify the normal modes associated with imaginary frequencies, distort the molecule along these vectors, and re-optimize the structure. Note that the compound script Iterative optimization does this exact process in an automated fashion.

1.7.14.2. Getting Unwanted Local Minima

If the optimized geometry you are getting is not the one you were expecting, you may be running into a nearby local minimum on the potential energy surface. This is often encountered when optimizing a molecule that has many rotamers.

First, check that the input geometry you have provided is reasonably close to the conformation you are aiming for. It may help to preoptimize the structure with an inexpensive method. If aiming for the global minimum, one may make use of GOAT to preoptimize the structure to a reasonable guess for the global minimum.

If there is symmetry breaking during the optimization, but you would like to enforce the original point group, look at the options in Geometry optimizations using symmetry.

1.7.14.3. Issues with Optimization Convergence

There are a few options you have when the calculation simply does not meet the optimization convergence criteria by the set number of maximum iterations. Inspect the last single point geometry along the optimization trajectory. If it seems intuitively close to a stationary point, try to rerun the optimization from this geometry. This is equivalent to rerunning the original input file, but increasing the number of iterations in the optimization.

Another approach is to first optimize with a less expensive method and/or smaller basis set, then use that geometry for the optimization at the level of theory wanted. The optimization can also first be done with looser convergence thresholds before tightening them as needed.

If none of these tips help, one may identify parts of the structure that are giving issues by analyzing the trajectory of the optimization. The optimization may have gotten stuck at the end in a region where the potential energy surface is nearly flat or has many shallow minima—such as for structures with many rotamers or for systems with multiple molecules. In that case, some reasonable geometry constraints may be needed. It may also be wise to change the trust radius or the maximum step in internal coordinates. In some cases, cartesian optimization via !COPT may even be needed.

For more details, see the section Geometry Optimizations, especially for the Geometry Optimization Keywords.

1.7.15. “Strange” Results for Energies and Properties

If results for energies or properties seem off, first make sure that the geometry, spin multiplicity, and charge used are reasonable for the system at hand. Make sure that the input is a good approximation of the real system you are trying to model. To this end, consider if a solvent model is appropriate. This is especially important for charged systems. For mean-field methods, also consider using a dispersion correction if not already included. If heavy elements are included in the system, scalar relativistic methods may be appropriate, and possibly picture change and finite nucleus corrections.

Next, make sure that the SCF has converged well. For properties and post-HF energies and properties, the SCF should be converged tightly enough that the subsequent calculations do not suffer from the numerical noise of the underlying SCF results. A loose convergence threshold will ultimately affect the properties that follow from the results of the SCF.

For unrestricted methods, it is advisable to look at the calculated spin contamination in the output. If this is significant, results for the given system with that method may be unreliable. One should be careful in the analysis of the output file in this case. In some cases, the underlying representation of the system is flawed or incomplete, but in other cases, you may consider turning to methods that give pure spin state solutions, such as ROHF, ROKS, or multireference methods.

In general when using single reference methods, one should question if the system may exhibit multireference character. In such a regime, results from single reference methods may not be reliable. To help determine this, there are a couple diagnositics that can be computed. When running a coupled cluster calculation, the \(T_1\) diagnostic is commonly used to estimate the importance of static correlation in the description of the system. The computed value is printed when running a coupled cluster calculation and if greater than 0.02, the system may have multireference character. More reliable is the newer S-diagnostic, which can be requested by %mdci DoSDiagnostic true end. See the Coupled Cluster S-Diagnostic section for more information.

When running a multireference calculation, it is important to make sure that the final active space is reasonable and includes all important orbitals that contribute to the static correlation. This may require changes to nel and norb. Good starting orbitals are important here (see the section on Choice of Inital Guess). Starting orbitals may also be generated from other calculations—for example using MP2 natural orbitals or QROs from UKS—which often represent a more physically relevant starting guess. AVAS is helpful for building the active space from these starting guesses, provided that you can intuitively determine the AOs that contribute to the MOs you want to include in the active space. Note that although an active space may seem reasonable, there may be convergence issues in CASSCF or in the post-CASSCF calculations when some of the active orbitals are very highly occupied/unoccupied. Finally, one should also consider if a state-specific or state-averaged solution is most appropriate for the system. Keywords which may need to be changed here are nroots, mult, weights, and irrep.

Finally, it should be checked that the methods used are appropriate for the system at hand. For example, MP2—and CCSD(T) to a lesser extent—has issues with orbital degeneracies. For properties, linear response and sum-over-states results are only reliable for systems without low-lying excited states. If the system is outside of the regime where the requested method is reliable, another method should be considered.

If everything seems reasonable, but there still seems to be an issue, post the case in the ORCA Forum. It could be that there is a technical reason for the values to be how they are or there may be a bug that should be fixed.