Quantum chemistry / DFT

DFT Calculations for Beginners: ORCA and Gaussian Input Files, Functionals and Basis Sets, Optimization and Frequency Checks

This page is for graduate students running molecular DFT for the first time: geometry optimization, frequencies, single-point energies and transition states. The ORCA parts follow the 6.1 manual and tutorials, the Gaussian parts follow the G16 documentation, and the functional and basis set advice comes from the Grimme group's 2022 best-practice guide and Sobereva's blog. Optimization, frequencies, the transition state and IRC were actually run on a local machine with Psi4 1.11 and xtb 6.7.1, with timings and results reported.

Short answer

The common workflow for molecular DFT is: run a conformer search with xtb/CREST; optimize and compute frequencies at B3LYP-D3(BJ)/def2-SVP or r2SCAN-3c; check that minima have no imaginary frequency and that a transition state has exactly one, confirmed by an IRC; then compute single-point energies with ωB97M-V, ωB97X-D or M06-2X and def2-TZVP, and add the thermal correction from the lower-level frequencies to get free energies. Dispersion correction is mandatory; without it B3LYP cannot even bind the benzene dimer. ORCA is the free first choice for academic users; its %maxcore is memory per core and the total should stay around 75% of physical memory, while Gaussian's %mem is the total memory.

Software

For DFT on molecules, academic users usually choose ORCA or Gaussian; xtb/CREST handles conformer search and pre-optimization; crystals and surfaces need plane-wave or mixed-basis codes.

In Bing, only about one in ten results for the bare query “orca” points to the quantum chemistry program; the rest are about killer whales and other software named Orca. Download ORCA from orcaforum.kofo.mpg.de or the FACCTs website.

CentOS and similar systems ship a screen reader also called orca, so typing orca may start that program. Calling ORCA by its full path or an alias avoids this.

ProgramHow to get itSuitable tasksLimits to know
ORCA 6.1 (current 6.1.1, Dec 2025)Free for academic users after registering on the ORCA forum; the Linux build needs a matching OpenMPI (4.1.8 for 6.1.0)Molecular DFT, TDDFT, DLPNO-CCSD(T), double hybrids; RIJCOSX makes hybrid functionals much faster than in GaussianParallel runs need the full path; %maxcore is memory per core; atoms are numbered from 0
Gaussian 16Commercial; bought by the group or universityMolecular DFT, TS and IRC, solvent models; GaussView is the most convenient for building and viewing vibrationsNo ωB97M-V; no RI acceleration for hybrids; %mem is the total memory of the job
xtb 6.7 / CREST 3.0Open source, on conda-forgeGFN2-xTB pre-optimization, conformer search, screening of large systemsEnergies are not accurate enough for the paper; re-rank conformers with DFT
Psi4 1.11 / PySCF 2.14Open source, on conda-forgePractising the full workflow without ORCA or Gaussian; scripted batch jobsSlower than ORCA for large systems; Psi4 computes frequencies of most dispersion-corrected functionals by finite differences
VASP, Quantum ESPRESSO, CP2KVASP commercial; QE and CP2K open sourcePeriodic systems: crystals, surfaces, adsorption, catalyst modelsPlane-wave basis sets differ from the Gaussian basis sets on this page; for near-spherical clusters of hundreds of atoms CP2K is much faster than ORCA

Functional and basis set

The common practice is to optimize and compute frequencies at a cheap level and compute single-point energies at a higher level. Geometries and frequencies are insensitive to the basis set; energies are sensitive to both basis set and functional.

Always add a dispersion correction. Standard functionals such as B3LYP and PBE0 cannot describe van der Waals attraction; the 2022 best-practice guide by Grimme and co-workers calls dispersion correction “indispensable in any DFT treatment”. Adding D3(BJ) costs almost nothing.

B3LYP/6-31G* is outdated for two reasons: missing dispersion makes it “over-repulsive”, and the small basis set causes a large basis set superposition error (BSSE). Kruse, Goerigk and Grimme analysed the error compensation of this combination for thermochemistry in J. Org. Chem. 2012; the Angew. Chem. guide by Bursch et al. (2022) states that improved methods have made B3LYP/6-31G* computations “obsolete”. Sobereva places 6-31G* in the “minimum acceptable” double-zeta tier and adds that “minimum acceptable” does not mean publishable as is.

BSSE is the artificial stabilization of a dimer when each monomer borrows the other's basis functions; it grows as the basis set shrinks. Use counterpoise correction for binding energies with double-zeta basis sets; for chemical bond energies Sobereva considers counterpoise unnecessary or even harmful.

In ORCA, ωB97M-V has analytic gradients but no analytic Hessian, so frequency calculations are expensive; use it for single points only. M06-2X is sensitive to the integration grid, and optimizations with it often show small imaginary frequencies and convergence trouble.

Flexible molecules (more than two or three rotatable single bonds) need a conformer search first; otherwise the optimization only finds the local minimum nearest the starting structure. The 2022 guide by Grimme and co-workers recommends an automated search with CREST, followed by DFT re-optimization and re-ranking of the conformers within the energy window; relative energies from xtb are only for screening.

For excited states, note that ORCA's TD-DFT uses the Tamm–Dancoff approximation (TDA) by default, whereas Gaussian's TD keyword runs full TDDFT by default. Excitation energies and oscillator strengths differ between the two; to compare with Gaussian results or the literature, write TDA false in the ORCA %tddft block. The number of states is set with %tddft NRoots 10 end in ORCA and TD(NStates=10) in Gaussian.

Measured on this page: S22 dimer interaction energies (kcal/mol; reference is S22B CCSD(T)/CBS)text
Level                   water dimer noCP / CP   benzene dimer (parallel-displaced) noCP / CP
B3LYP/6-31G*            -7.32 / -5.70           +2.39 / +4.58
B3LYP/def2-SVP          -8.11 / -4.81           +2.52 / +4.03
B3LYP-D3(BJ)/def2-SVP   -8.75 / -5.45           -4.18 / -2.67
B3LYP/def2-TZVP         -5.53 / -4.91           +3.43 / +3.76
B3LYP-D3(BJ)/def2-TZVP  -6.17 / -5.55           -3.27 / -2.94
Reference               -4.99                   -2.65
noCP: no counterpoise correction; CP: counterpoise-corrected. Negative values mean binding.
TaskRecommended level (ORCA syntax)Basis for the recommendation
Organic molecule optimization + frequenciesB3LYP D3BJ def2-SVP; or r2SCAN-3cSobereva recommends B3LYP-D3(BJ) for optimization and vibrational analysis; Grimme 2022 recommends r2SCAN-3c for structures
Reaction energies, barriers, conformer energy differences (single point)wB97M-V def2-TZVP; or wB97X-D3 / M06-2X def2-TZVPSobereva 272: ωB97M-V first, then M06-2X for organic thermochemistry; Grimme 2022: range-separated hybrids for barriers
High-accuracy single point (small systems)revDSD-PBEP86-D4 / PWPB95-D4 def2-TZVPP, or DLPNO-CCSD(T)Double hybrids are one tier above ordinary functionals; with RI in ORCA the cost is acceptable
Noncovalent interactions (π stacking, hydrogen bonds)Dispersion correction is mandatory; energies at ma-def2-TZVP level with counterpoiseSobereva 336: the more dispersion-dominated the system, the more it needs diffuse functions and BSSE correction
Excited states (TDDFT)PBE0 for local excitations; CAM-B3LYP or ωB97X-D for charge transfer and large conjugated systemsSobereva 272, 265
Transition-metal complexesTPSSh, PBE0-D3(BJ), r2SCAN-3c; avoid M06-2XM06-2X was parameterized for main-group elements and performs badly for transition metals
Pre-screening of large systems, initial conformer rankingGFN2-xTB (xtb/CREST)Grimme 2022 recommends automated conformer search before DFT
D3BJ is written D3BJ or D3 in ORCA and EmpiricalDispersion=GD3BJ in Gaussian. ωB97M-V is not available in Gaussian 16.

ORCA input

Below is an optimization + frequency input for ethanol. ORCA input is case-insensitive (except file names), and text after # is a comment.

ethanol.inp (ORCA 6.1)orca
! B3LYP D3BJ def2-SVP Opt Freq      # method, dispersion, basis, task; case-insensitive
%pal nprocs 8 end                    # 8 MPI processes
%maxcore 3000                        # 3000 MB per process, about 24 GB in total
* xyz 0 1                            # coordinate format, charge, spin multiplicity
  C   -1.1855   -0.2259    0.0000
  C    0.1586    0.4880    0.0000
  O    1.2075   -0.4708    0.0000
  H   -1.2848   -0.8641    0.8823
  H   -1.2848   -0.8641   -0.8823
  H   -2.0068    0.4987    0.0000
  H    0.2384    1.1393    0.8822
  H    0.2384    1.1393   -0.8822
  H    2.0491    0.0005    0.0000
*
ethanol.gjf (Gaussian 16; the file must end with a blank line)text
%nprocshared=8
%mem=24GB
%chk=ethanol.chk
# opt freq B3LYP/def2SVP EmpiricalDispersion=GD3BJ

ethanol opt freq

0 1
C   -1.1855   -0.2259    0.0000
C    0.1586    0.4880    0.0000
O    1.2075   -0.4708    0.0000
H   -1.2848   -0.8641    0.8823
H   -1.2848   -0.8641   -0.8823
H   -2.0068    0.4987    0.0000
H    0.2384    1.1393    0.8822
H    0.2384    1.1393   -0.8822
H    2.0491    0.0005    0.0000
  1. 01

    ! keyword line

    Method, dispersion, basis set and task; several ! lines are allowed. Common tasks: Opt, Freq (analytic frequencies), NumFreq (numerical frequencies), OptTS, IRC, TightOpt, TightSCF. Since ORCA 5.0, RIJCOSX is on by default for hybrid functionals and the def2/J auxiliary basis is chosen automatically. Optimizations use TightSCF automatically.

  2. 02

    %pal nprocs N end

    Number of parallel processes; equivalently write PAL8 on the keyword line. Parallel runs must call orca by its full path and must not be wrapped in mpirun; otherwise the output is interleaved or the job fails.

  3. 03

    %maxcore M

    Memory per process in MB, default 4096. Total memory is about M × nprocs, and ORCA often uses more than M, so the manual advises keeping the total at no more than 75–80% of physical memory. Example: a 32 GB, 8-core machine has about 30 GB left after the operating system; 30000/8 = 3750, and Sobereva recommends 3000. When memory is too low, the SCF stops with Not enough memory available! Please increase MaxCore to more than: … MB.

  4. 04

    * xyz charge multiplicity

    The first line gives the coordinate format, total charge and spin multiplicity 2S+1, and the block ends with a line containing *. You can also write * xyzfile 0 1 file.xyz to read a file. A closed-shell neutral molecule is 0 1; a radical is 0 2. An even number of electrons requires an odd multiplicity, and an odd number requires an even one.

  5. 05

    Gaussian equivalents

    %nprocshared corresponds to %pal; %mem is the total memory of the job (default 800 MB), unlike ORCA's per-core maxcore; the route line starting with # corresponds to the ! line; basis set names have no hyphen (def2SVP); dispersion is EmpiricalDispersion=GD3BJ; blank lines are required after the title and after the coordinates.

Optimization and frequencies

Frequencies must be computed at exactly the same level as the optimization (functional, basis set, dispersion, solvent model, integration grid); otherwise they are meaningless and spurious imaginary frequencies appear. The simplest way is to put Opt Freq in the same job.

Measured on this page (Psi4 1.11, B3LYP-D3(BJ)/def2-SVP, 8 threads): ethanol optimization 8.2 s, frequencies 104.8 s, lowest frequency 259.8 cm⁻¹, no imaginary frequency; the three harmonic frequencies of water are 1639, 3792 and 3887 cm⁻¹ with a zero-point energy of 13.32 kcal/mol. Harmonic frequencies are generally higher than experimental fundamentals; multiply by a frequency scaling factor for the functional and basis set before comparing with experimental IR spectra (see Sobereva 221).

Criterion (atomic units)ORCA default OptORCA TightOptGaussian default
Energy change TolE5e-61e-6not used
Maximum gradient / force3e-41e-40.00045
RMS gradient / force1e-43e-50.00030
Maximum displacement4e-31e-30.0018
RMS displacement2e-36e-40.0012
In Gaussian, when the forces are below 1/100 of the threshold, the optimization counts as converged even if the displacements are not (Sobereva 164). opt=loose corresponds to a maximum step of 0.01 and an RMS force of 0.0017.
  • ORCA: the output must contain THE OPTIMIZATION HAS CONVERGED. When the optimization hits the maximum number of cycles, ORCA can still end with ORCA TERMINATED NORMALLY, so checking only the last line is misleading.
  • Gaussian: four YES in the optimization summary and Stationary point found; the file ends with Normal termination.
  • Frequencies: ORCA marks imaginary modes with ***imaginary mode***; Gaussian prints negative numbers on the Frequencies lines. The six zero frequencies of translation and rotation (five for linear molecules) are projected out and say nothing about Hessian quality.
  • Gaussian re-checks convergence at the end of freq: four YES after the optimization but NO for displacement after freq happens because the optimization uses an approximate Hessian and freq uses the exact one. Values less than twice the threshold without imaginary frequencies are generally acceptable (Sobereva 278).
  • ORCA analytic Hessians are available for SCF methods only; double hybrids and RI-JK need NumFreq, and numerical frequencies can be off by up to 50 cm⁻¹.

Optimization not converging

Most non-converging optimizations oscillate around the minimum. First play the optimization trajectory in GaussView or Chemcraft and look at the energy and force curves to see whether it oscillates or is still going down.

  1. 01

    Energy and forces still decreasing overall

    There were simply not enough steps. Use opt=maxcycles=N in Gaussian or MaxIter N in the ORCA %geom block, and restart from the last structure. If it already oscillates, more steps will not help.

  2. 02

    Rule out SCF problems first

    An SCF failure at one step also stops the optimization. In Gaussian this is an L502 error; from G16 B.01 an unconverged SCF only prints Convergence criterion not met and does not stop, so check for it yourself.

  3. 03

    Use a finer integration grid

    Most effective for Minnesota functionals such as M06-2X. G16 already defaults to int=ultrafine; ORCA 6 defaults to DefGrid2, which you can raise to DefGrid3.

  4. 04

    Use an exact Hessian

    Gaussian: opt=calcfc (first step only), opt=recalc=3~5 (G16, every 3–5 steps), opt=calcall (every step, small systems only). ORCA: %geom Calc_Hess true, Recalc_Hess 5 end.

  5. 05

    Change the optimizer or reduce the step

    In Gaussian, try opt=gdiis first for noncovalent complexes and flexible large molecules; when the structure keeps oscillating slightly, use opt(gdiis,maxstep=3~5,notrust). In ORCA, adjust Trust in %geom (default -0.3; a negative value means a fixed trust radius).

  6. 06

    Check symmetry and the solvent model

    If the starting structure has higher symmetry than the true minimum, the optimization stops at a saddle point; break the symmetry. Opt freq with SMD tends to converge poorly and give spurious imaginary frequencies; Sobereva recommends IEFPCM for optimization and frequencies, and SMD for the energies.

  7. 07

    Loosen the criteria only as a last resort

    opt=loose or LooseOpt only gives a rough structure, and frequencies afterwards often show imaginary modes.

Imaginary frequencies

A minimum (reactant, product, intermediate) must have no imaginary frequency; a transition state must have exactly one, and its vibration must correspond to the reaction coordinate under study.

Displacing along the imaginary mode is the first choice only when symmetry causes the imaginary frequency. Sobereva points out that the common online advice to push the structure along every imaginary mode is wrong; small imaginary frequencies should first be addressed through convergence criteria, integration grid and Hessian quality.

A small imaginary frequency that cannot be removed has little effect on the electronic energy and zero-point energy: a 30 cm⁻¹ mode contributes only 0.18 kJ/mol to the ZPE. Its effect on entropy and free energy is larger: ignoring a mode of about 20 cm⁻¹ as imaginary can shift the free energy by about 5 kJ/mol (Sobereva 699). Grimme and co-workers (2022) suggest treating small imaginary frequencies below 50–100 cm⁻¹ as real and computing the entropy with mRRHO; Sobereva considers this approach insufficiently tested and does not recommend it lightly. Either way, state the treatment in the paper.

Measured on this page: ethane built in the eclipsed form and optimized with its symmetry kept “converged” in 3.9 seconds, and the frequency calculation gave one imaginary frequency of 308.3i cm⁻¹, the relative twist of the two methyl groups. Changing one H–C–C–H dihedral to 20° to break the symmetry and re-optimizing gave the staggered form with no imaginary frequency (lowest 317.9 cm⁻¹) and an energy 2.93 kcal/mol lower, the torsional barrier of ethane. This is the typical symmetry-induced imaginary frequency, removed by adjusting the structure along the mode.

SituationMeaningWhat to do
Minimum with 1 large imaginary frequency (> 100 cm⁻¹)Not a minimum, often due to excessive symmetryDisplace the structure along the mode in GaussView (Manual Displacement) and re-optimize
Minimum with a small imaginary frequency (< 50 cm⁻¹, often methyl rotation or intermolecular motion)Optimization not tight enough or integration grid too coarseTry opt=tight, a finer grid, calcfc/recalc in turn; recompute frequencies at the same level
TS with 1 imaginary frequency that is not the reaction coordinateAnother saddle point (for example methyl rotation)Build a new guess; scan the key coordinate
TS with 2 or more imaginary frequenciesHigher-order saddle point or extra small imaginary modesTreat the extra modes as in the two rows above
Optimization and frequencies at different levelsBasic mistake; inconsistent potential energy surfacesRedo the frequencies at the same level

Thermal corrections

Thermal corrections come from the frequency calculation and are added to the electronic energy to give enthalpy and free energy. With a higher-level single point, add the correction from the lower-level frequencies to the higher-level electronic energy.

ORCA computes the entropy with Grimme's quasi-RRHO by default (reference frequency QRRHORefFreq 100 cm⁻¹), while Gaussian uses the harmonic RRHO. The same structure can therefore give G values that differ by a few tenths to more than 1 kcal/mol between the two programs, more for flexible molecules. To match Gaussian, set QuasiRRHO false in the ORCA %freq block, or recompute both with Shermo.

Free energies of reactions in solution need a standard-state correction: gas-phase calculations refer to 1 atm, the solution standard state is 1 mol/L, and at 298.15 K each species gets 1.89 kcal/mol (Sobereva 327). For a reaction A + B → C, omitting it shifts ΔG by 1.89 kcal/mol.

Absolute energies from different functionals cannot be compared. Measured on this page: for the same ethanol structure, B3LYP-D3(BJ)/def2-TZVP gives −155.11617 Eh and M06-2X/def2-TZVP gives −155.02666 Eh, a difference of 56 kcal/mol; only energy differences at the same level are meaningful.

Unit conversions (CODATA 2018)text
1 Eh (Hartree) = 627.5095 kcal/mol = 2625.4996 kJ/mol = 27.2114 eV = 219474.63 cm⁻¹
1 kcal/mol = 4.184 kJ/mol
1 bohr = 0.529177 Å
Example: ΔE = −0.0046731 Eh → −0.0046731 × 627.5095 = −2.93 kcal/mol
QuantityORCA output lineGaussian output lineUse
Electronic energyFINAL SINGLE POINT ENERGYSCF Done: E(RB3LYP) =Only differences at the same level are comparable
Zero-point energy (ZPE)Zero point energyZero-point correction=E(0 K) = E + ZPE
Enthalpy correctionTotal thermal correction + kB·T (the output gives Total Enthalpy directly)Thermal correction to Enthalpy=H = E + enthalpy correction
Free energy correctionG-E(el)Thermal correction to Gibbs Free Energy=G = E(high-level single point) + G correction (low-level frequencies)
Free energyFinal Gibbs free energySum of electronic and thermal Free Energies=Use directly only when single point and frequencies are at the same level

Transition states

TS optimization is far more sensitive to the starting structure and Hessian quality than minimization. The standard workflow has four steps: scan for a guess, optimize the TS with an exact Hessian, confirm one imaginary frequency, and run an IRC to confirm the reactant and product it connects.

Three ORCA 6.1 inputsorca
# Step 1: relaxed scan for a TS guess (ORCA counts atoms from 0)
! B3LYP D3BJ def2-SVP Opt
%pal nprocs 8 end
%maxcore 3000
%geom
  Scan B 0 5 = 3.00, 1.50, 16 end   # distance between atoms 0 and 5 from 3.00 to 1.50 Angstrom, 16 points
end
* xyzfile 0 1 reactant.xyz

# Step 2: take the highest-energy scan point, compute an exact Hessian, optimize the TS, then frequencies
! B3LYP D3BJ def2-SVP OptTS Freq
%pal nprocs 8 end
%maxcore 3000
%geom
  Calc_Hess true      # exact Hessian at the first step
  Recalc_Hess 5       # recompute every 5 steps for difficult cases
end
* xyzfile 0 1 tsguess.xyz

# Step 3: IRC to check which reactant and product the TS connects
! B3LYP D3BJ def2-SVP IRC
%pal nprocs 8 end
%maxcore 3000
%irc
  MaxIter 60                     # default is 20, often too few to reach the minima
  InitHess read
  Hess_Filename "ts.hess"        # reuse the Hessian from step 2
end
* xyzfile 0 1 ts.xyz
  1. 01

    Scan for a guess

    Run a relaxed scan along the forming or breaking bond and take the highest-energy point. ORCA can also do the scan and TS optimization in one job with ScanTS. ORCA numbers atoms from 0, so copying Gaussian atom numbers scans the wrong atoms.

  2. 02

    OptTS needs an exact Hessian

    In ORCA write Calc_Hess true or read an existing .hess; in Gaussian write opt(ts,calcfc,noeigentest). With the default approximate Hessian TS optimizations often drift away. Gaussian's QST2 interpolated guess is usually worse than a structure you build by hand.

  3. 03

    Confirm with frequencies

    Exactly one imaginary frequency; animate it in GaussView, Chemcraft or orca_pltvib to confirm that the atoms move along the intended reaction. TS, IRC and minimum optimizations should use the same level.

  4. 04

    Verify with IRC

    ORCA runs both directions by default (Direction both) and writes _IRC_F.xyz, _IRC_B.xyz and _IRC_Full_trj.xyz. The default MaxIter is 20, which often does not reach the end; IRC end points are not strict minima, so optimize them before comparing with the reactant and product.

Analysis

Multiwfn analyses wavefunction files. Gaussian's formchk converts .chk to .fchk; ORCA's orca_2mkl name -molden writes .molden.input; Psi4 can write .fchk directly.

On Windows, do not redirect ORCA output in PowerShell 5: the resulting .out file is Unicode-encoded and Multiwfn and OfakeG cannot read it. Use cmd or cmder (Sobereva 451).

Basis sets with diffuse functions make basis-function-based analyses (Mulliken, Mayer bond order, orbital composition) meaningless; real-space analyses such as electron density, ELF and electrostatic potential need only 6-31G* to def2-TZVP (Sobereva 336).

ORCA: run and checkbash
# Parallel runs must call orca by its full path; do not start it with mpirun
/opt/orca_6_1_1/orca ethanol.inp > ethanol.out

# Check real convergence (ORCA TERMINATED NORMALLY at the end is not enough)
grep "THE OPTIMIZATION HAS CONVERGED" ethanol.out
grep "FINAL SINGLE POINT ENERGY" ethanol.out | tail -1
grep "imaginary mode" ethanol.out          # no output means no imaginary frequency

# Write a molden file that Multiwfn can read
/opt/orca_6_1_1/orca_2mkl ethanol -molden
AnalysisMultiwfn entryNotes
View the structure and orbitals (HOMO/LUMO)Main function 0Pick the orbital number in the GUI to see isosurfaces
Atomic charges (ADCH, CM5, RESP, etc.)Main function 7Needs a file with basis-function information (fchk, molden)
Electrostatic potential surface analysisMain function 12ESP extrema on the molecular surface, area distribution
Noncovalent interaction visualization (RDG/NCI, IGMH)Main function 20Render with VMD
Hole–electron analysis of excited statesMain function 18Reads TDDFT output
Plot IR, Raman, UV-Vis spectraMain function 11Reads frequency or TDDFT output
Generate ORCA input filesType oi in the main menu (same as 100 → 2 → 12)Choose task and level to get an .inp with suitable keywords, then edit nprocs and maxcore
Multiwfn 3.8 was released on 2026-01-07; later versions are named by date (for example 2026.1.12). Papers should cite both original articles, J. Comput. Chem. 2012 and J. Chem. Phys. 2024.

Errors

Raising the SCF iteration limit (scf=maxcyc=500 or MaxIter 500) almost never fixes non-convergence. Gaussian's default limit is 128 cycles; if the SCF does not converge within that, more cycles rarely help (Sobereva 61).

When the SCF is very hard to converge, check the structure itself first: atoms too close, missing hydrogens, unsaturated cuts in cluster models, or a transition-metal multiplicity that is not the ground state all make SCF convergence hard.

Error messageProgramCauseFix
Error termination via Lnk1e … l9999.exe, with Optimization stopped. -- Number of steps exceeded above itGaussianOptimization hit the step limit, usually due to oscillationFollow the section on non-converging optimizations; add maxcycles only if the curves are still going down
L502 Convergence failure -- run terminated.; from G16 B.01 only Convergence criterion not metGaussianSCF not convergedCheck structure, charge and multiplicity first; then try scf=vshift=300~500, or use a wavefunction from a smaller basis or another functional as the guess (guess=read); leave scf=xqc for last
The combination of multiplicity 1 and 9 electrons is impossible.Gaussian (L301)Charge or multiplicity inconsistent with the electron count parityFix charge or multiplicity; even electron counts take odd multiplicities, odd counts take even ones
galloc: could not allocate memory.Gaussian%mem larger than the memory availableSet %mem to about 75% of physical memory
Not enough memory available! Please increase MaxCore to more than: … MBORCA%maxcore below what the module needsIncrease maxcore while keeping maxcore × nprocs within 75–80% of physical memory
SCF NOT CONVERGED AFTER … CYCLESORCASCF not converged within the limit (125 cycles by default); ORCA does not compute properties or numerical frequencies on an unconverged wavefunctionAdd SlowConv or VerySlowConv; AutoTRAH is on by default since ORCA 5; start from orbitals converged with a small basis or BP86 (MORead)
The optimization did not converge but reached the maximum number of optimization cycles.ORCAOptimization ran out of cycles; the file may still end with TERMINATED NORMALLYRestart from the last structure and follow the section on non-converging optimizations
Interleaved, repeated output or MPI errors in parallel runsORCAorca not called by full path, or wrong OpenMPI version, or gfortran missingRun /full/path/orca; build the OpenMPI version named in the ORCA archive file name

Measured on this page

ORCA requires registration on its forum before download, so this page used Psi4 1.11 from conda-forge for the same optimization, frequency, TS and IRC steps, and xtb for semi-empirical optimization and frequencies. Test conditions on this page: Psi4 1.11 and xtb 6.7.1 (both from conda-forge) on an 8-core, 16 GB Apple Silicon laptop, 8 threads.

In Psi4 1.11, functionals with -d3bj need the dftd3-python package; otherwise the run fails with Program s-dftd3 is registered with QCEngine, but cannot be found.

Psi4 computes B3LYP-D3(BJ) frequencies by finite differences of gradients, so the ethanol frequencies took 13 times as long as the optimization. ORCA and Gaussian have analytic Hessians for B3LYP, so their frequency-to-optimization time ratio is much smaller.

The conda-forge macOS arm64 build of CREST 3.0.2 did not complete on this machine: the default mode hit ERROR STOP at Setting up backup calculator; with --legacy --quick the metadynamics for ibuprofen (33 atoms) finished in 347 seconds, but the CREGEN sorting step hit ERROR STOP again. In full mode CREST estimated 1 hour 38 minutes on 8 threads for ibuprofen. Run conformer searches on Linux.

ethanol_psi4.py: B3LYP-D3(BJ)/def2-SVP optimization + frequencies + higher-level single pointpython
# conda env: micromamba create -n qc -c conda-forge python=3.11 psi4 dftd3-python dftd4-python
import psi4
psi4.set_num_threads(8)
psi4.set_memory('10 GB')                       # Psi4 memory is the total for the job
psi4.core.set_output_file('ethanol.out', False)
mol = psi4.geometry("""
0 1
C   -1.1855   -0.2259    0.0000
C    0.1586    0.4880    0.0000
O    1.2075   -0.4708    0.0000
H   -1.2848   -0.8641    0.8823
H   -1.2848   -0.8641   -0.8823
H   -2.0068    0.4987    0.0000
H    0.2384    1.1393    0.8822
H    0.2384    1.1393   -0.8822
H    2.0491    0.0005    0.0000
""")
e_opt = psi4.optimize('b3lyp-d3bj/def2-svp')            # geometry optimization
e, wfn = psi4.frequency('b3lyp-d3bj/def2-svp', return_wfn=True)  # frequencies and thermochemistry
print('freqs (cm-1):', wfn.frequencies().to_array())    # negative values are imaginary
print('G correction (Eh):', psi4.variable('GIBBS FREE ENERGY CORRECTION'))
e_sp = psi4.energy('wb97x-d/def2-tzvp')                 # higher-level single point
xtb and CRESTbash
# Install: micromamba create -n xtb -c conda-forge xtb crest
export OMP_NUM_THREADS=8 OMP_STACKSIZE=1G
xtb ethanol.xyz --ohess --gfn 2 > xtb.out      # optimization + frequencies, writes xtbopt.xyz
crest ibuprofen.xyz --gfn2 -T 8 > crest.out    # conformer search, writes crest_conformers.xyz and crest_best.xyz
System and taskMeasured timeResult
Water: optimization / frequencies / def2-TZVP single point25.7 s / 8.6 s / 0.6 sE = −76.35889972 Eh; ZPE 13.32 kcal/mol; G correction 0.00357 Eh
Ethanol: optimization / frequencies8.2 s / 104.8 sE = −154.93049253 Eh; no imaginary frequency
Ethanol: def2-TZVP single points (B3LYP-D3(BJ) / ωB97X-D / M06-2X)2.6 s / 3.1 s / 6.4 s−155.11617 / −155.05547 / −155.02666 Eh
Ethane: eclipsed (symmetry kept) → re-optimized after perturbation3.9 + 28.7 s → 34.3 + 51.3 s308.3i cm⁻¹ → no imaginary frequency; torsional barrier 2.93 kcal/mol
HCN → HNC: OptTS / frequencies / IRC both directions5.8 s / 7.4 s / 35 s + 29 s1 imaginary frequency, 1117.8i cm⁻¹; barrier 47.84 kcal/mol
S22 benzene dimer interaction energy (5 levels, with CP)56–205 s per levelall positive without dispersion; B3LYP-D3(BJ)/def2-TZVP with CP gives −2.94 kcal/mol
xtb GFN2: ethanol optimization + analytic Hessian (--ohess)0.05 sno imaginary frequency; writes xtbopt.xyz and G(RRHO)

Chinese community

The items below come from the Computational Chemistry Commune (keinsci), Sobereva's blog and CSDN. Only items with concrete parameters or error messages that agree with the official manuals or the runs on this page are included.

Use recalc and maxstep when the TS cannot be found

Keinsci user qingmang (Feb 2025) wrote that when the imaginary mode of a TS or intermediate turns into methyl rotation, opt(recalc=5,maxstep=3) separates closely spaced saddle points and minima. Sobereva's article on helping geometry optimizations converge gives the same combination (recalc=3~5, maxstep=3~5 with notrust); the two reached it independently.

Leave 25% headroom for maxcore

In his note on generating ORCA inputs with Multiwfn, Sobereva gives the example: 32 GB and 8 cores leave about 30 GB, 30000/8 = 3750 MB, but ORCA processes often exceed maxcore, so use 3000. The ORCA 6.1 manual and memory tutorial give the same 75–80% rule.

ORCA 6.1.0 needs OpenMPI 4.1.8

CSDN author qq_52487425 (June 2025) recorded while installing ORCA 6.1.0 on Ubuntu that openmpi418 in the archive name means OpenMPI 4.1.8 is required, and that gfortran must be installed before building OpenMPI or ORCA cannot run in parallel. Sobereva's installation article gives the same rule for ORCA 6.0.0 / OpenMPI 4.1.6.

Do not use SMD for optimization and frequencies

Sobereva repeats in three posts that numerical noise in the SMD solvent model makes optimizations hard to converge and produces spurious imaginary frequencies; use IEFPCM for optimization and frequencies and SMD for the single-point energy. The two steps do not need the same solvent model.

Do not follow APFD from Exploring Chemistry

Sobereva notes that the third edition of Gaussian's official textbook uses APFD almost throughout, although APFD is mediocre in functional benchmarks and rarely used in the literature, which makes it hard to justify to reviewers. Beginners choosing functionals from that book should keep this in mind.

Hand it to an agent

You can describe the calculation in one sentence and let Scientify's science agent run it in a cloud computer.

Example instruction: “Here are xyz files of the reactant and product. Run a CREST conformer search first, optimize the lowest conformer at B3LYP-D3(BJ)/def2-SVP with frequencies; scan the C1–O5 distance for a TS guess, optimize the TS with OptTS and an exact Hessian, confirm a single imaginary frequency and run an IRC; finally compute ωB97M-V/def2-TZVP single points and report ΔG‡ and ΔG including thermal corrections and the 1 M standard-state correction.”

What the agent does: installs the needed programs in the workspace (xtb, CREST, open-source quantum chemistry codes; ORCA can run from an installer you provide or on your own server over SSH), writes the inputs, checks the convergence lines and imaginary frequencies at every step, works through non-convergence in the order on this page and logs each change; compiles the energy table, converts units, and reviews the results adversarially, for example checking the direction of the imaginary mode and whether the IRC end points match the reactant and product. The task keeps running after you shut down your computer.

Outputs: all inputs, outputs and logs, xyz files of the optimized structures, a summary table of energies and thermal corrections, scan curves and IRC energy profiles. The workspace keeps code and parameters so the work can be reproduced.

You still need to check: the chemical plausibility of the mechanism and guess structures, charge and multiplicity, whether the functional and basis set suit your system, the choice of solvent model, and whether the TS imaginary mode corresponds to the reaction you study.

Writing the paper

Reviewers and readers need the following to reproduce the calculations; missing any of them may prompt a request for more information.

  • Programs and versions: ORCA 6.1.1, Gaussian 16 Rev. C.02, xtb 6.7.1, CREST 3.0.2, Multiwfn version date
  • Optimization and frequency level: functional, dispersion correction (D3(BJ) or D4), basis set, and whether RIJCOSX was used
  • Single-point level and how the final energy was combined (E single point + G correction)
  • Solvent model and solvent, and whether optimization and single point used different models
  • Thermochemistry settings: temperature, pressure, RRHO or quasi-RRHO, standard-state correction, frequency scaling factor
  • Conformer search method (CREST, energy window)
  • How transition states were confirmed: imaginary frequency value, IRC
  • Treatment of imaginary frequencies: whether small imaginary modes remain and how they were handled
  • Citations: functional, dispersion correction, basis set, program papers; Multiwfn requires both papers

References

FAQ

Should I use ORCA or Gaussian for DFT?

Academic users should start with ORCA: it is free, supports ωB97M-V, double hybrids and DLPNO-CCSD(T), and accelerates hybrid functionals with RIJCOSX. If your group already has Gaussian and you need GaussView for building molecules and animating vibrations, a common combination is Gaussian for optimization and frequencies and ORCA for high-level single points.

Can I still use B3LYP/6-31G*?

B3LYP/6-31G* without dispersion correction is not recommended for energies. At minimum switch to B3LYP-D3(BJ)/def2-SVP for optimization and frequencies, and use def2-TZVP or larger with a better functional for energies. In our test, B3LYP without dispersion gives a positive (unbound) interaction energy for the benzene dimer.

What should I do about a very small imaginary frequency after optimization?

First make sure the frequencies are at the same level as the optimization, then tighten the optimization criteria, use a finer integration grid, and re-optimize with an exact Hessian. A remaining imaginary mode below 50 cm⁻¹ has little effect on the electronic energy and ZPE but affects entropy and free energy, so state how you handled it in the paper.

What should ORCA's %maxcore be?

%maxcore is memory per process in MB. Divide about 75% of physical memory by the number of processes, for example 3000 for 32 GB and 8 cores. ORCA uses more than this value, so do not set it to the full amount.

How do I confirm that a transition state is correct?

The frequencies must contain exactly one imaginary mode, its animation must match the target reaction, and an IRC must connect it to the reactant and product after the end points are optimized.

Where do I read the zero-point energy and free energy correction?

In ORCA read Zero point energy and G-E(el); in Gaussian read Zero-point correction and Thermal correction to Gibbs Free Energy. With a high-level single point, G = high-level electronic energy + G correction from the low-level frequencies. Reactions in solution also need the 1.89 kcal/mol standard-state correction.

Hand your DFT workflow to Scientify

The science agent runs conformer search, optimization and frequencies, transition states and IRC, single-point energies and thermal-correction summaries in an isolated cloud computer, checks convergence and imaginary frequencies at every step, and keeps all inputs and outputs. The task keeps running after you shut down your computer. New users get USD 5 of free credit.