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.
| Program | How to get it | Suitable tasks | Limits 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 Gaussian | Parallel runs need the full path; %maxcore is memory per core; atoms are numbered from 0 |
| Gaussian 16 | Commercial; bought by the group or university | Molecular DFT, TS and IRC, solvent models; GaussView is the most convenient for building and viewing vibrations | No ωB97M-V; no RI acceleration for hybrids; %mem is the total memory of the job |
| xtb 6.7 / CREST 3.0 | Open source, on conda-forge | GFN2-xTB pre-optimization, conformer search, screening of large systems | Energies are not accurate enough for the paper; re-rank conformers with DFT |
| Psi4 1.11 / PySCF 2.14 | Open source, on conda-forge | Practising the full workflow without ORCA or Gaussian; scripted batch jobs | Slower than ORCA for large systems; Psi4 computes frequencies of most dispersion-corrected functionals by finite differences |
| VASP, Quantum ESPRESSO, CP2K | VASP commercial; QE and CP2K open source | Periodic systems: crystals, surfaces, adsorption, catalyst models | Plane-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.
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.| Task | Recommended level (ORCA syntax) | Basis for the recommendation |
|---|---|---|
| Organic molecule optimization + frequencies | B3LYP D3BJ def2-SVP; or r2SCAN-3c | Sobereva 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-TZVP | Sobereva 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 counterpoise | Sobereva 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 systems | Sobereva 272, 265 |
| Transition-metal complexes | TPSSh, PBE0-D3(BJ), r2SCAN-3c; avoid M06-2X | M06-2X was parameterized for main-group elements and performs badly for transition metals |
| Pre-screening of large systems, initial conformer ranking | GFN2-xTB (xtb/CREST) | Grimme 2022 recommends automated conformer search before DFT |
ORCA input
Below is an optimization + frequency input for ethanol. ORCA input is case-insensitive (except file names), and text after # is a comment.
! 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
*%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
- 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.
- 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.
- 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.
- 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.
- 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 Opt | ORCA TightOpt | Gaussian default |
|---|---|---|---|
| Energy change TolE | 5e-6 | 1e-6 | not used |
| Maximum gradient / force | 3e-4 | 1e-4 | 0.00045 |
| RMS gradient / force | 1e-4 | 3e-5 | 0.00030 |
| Maximum displacement | 4e-3 | 1e-3 | 0.0018 |
| RMS displacement | 2e-3 | 6e-4 | 0.0012 |
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
| Situation | Meaning | What to do |
|---|---|---|
| Minimum with 1 large imaginary frequency (> 100 cm⁻¹) | Not a minimum, often due to excessive symmetry | Displace 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 coarse | Try 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 coordinate | Another saddle point (for example methyl rotation) | Build a new guess; scan the key coordinate |
| TS with 2 or more imaginary frequencies | Higher-order saddle point or extra small imaginary modes | Treat the extra modes as in the two rows above |
| Optimization and frequencies at different levels | Basic mistake; inconsistent potential energy surfaces | Redo 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.
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| Quantity | ORCA output line | Gaussian output line | Use |
|---|---|---|---|
| Electronic energy | FINAL SINGLE POINT ENERGY | SCF Done: E(RB3LYP) = | Only differences at the same level are comparable |
| Zero-point energy (ZPE) | Zero point energy | Zero-point correction= | E(0 K) = E + ZPE |
| Enthalpy correction | Total thermal correction + kB·T (the output gives Total Enthalpy directly) | Thermal correction to Enthalpy= | H = E + enthalpy correction |
| Free energy correction | G-E(el) | Thermal correction to Gibbs Free Energy= | G = E(high-level single point) + G correction (low-level frequencies) |
| Free energy | Final Gibbs free energy | Sum 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.
# 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- 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.
- 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.
- 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.
- 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).
# 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| Analysis | Multiwfn entry | Notes |
|---|---|---|
| View the structure and orbitals (HOMO/LUMO) | Main function 0 | Pick the orbital number in the GUI to see isosurfaces |
| Atomic charges (ADCH, CM5, RESP, etc.) | Main function 7 | Needs a file with basis-function information (fchk, molden) |
| Electrostatic potential surface analysis | Main function 12 | ESP extrema on the molecular surface, area distribution |
| Noncovalent interaction visualization (RDG/NCI, IGMH) | Main function 20 | Render with VMD |
| Hole–electron analysis of excited states | Main function 18 | Reads TDDFT output |
| Plot IR, Raman, UV-Vis spectra | Main function 11 | Reads frequency or TDDFT output |
| Generate ORCA input files | Type 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 |
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 message | Program | Cause | Fix |
|---|---|---|---|
| Error termination via Lnk1e … l9999.exe, with Optimization stopped. -- Number of steps exceeded above it | Gaussian | Optimization hit the step limit, usually due to oscillation | Follow 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 met | Gaussian | SCF not converged | Check 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 parity | Fix 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 available | Set %mem to about 75% of physical memory |
| Not enough memory available! Please increase MaxCore to more than: … MB | ORCA | %maxcore below what the module needs | Increase maxcore while keeping maxcore × nprocs within 75–80% of physical memory |
| SCF NOT CONVERGED AFTER … CYCLES | ORCA | SCF not converged within the limit (125 cycles by default); ORCA does not compute properties or numerical frequencies on an unconverged wavefunction | Add 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. | ORCA | Optimization ran out of cycles; the file may still end with TERMINATED NORMALLY | Restart from the last structure and follow the section on non-converging optimizations |
| Interleaved, repeated output or MPI errors in parallel runs | ORCA | orca not called by full path, or wrong OpenMPI version, or gfortran missing | Run /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.
# 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# 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 task | Measured time | Result |
|---|---|---|
| Water: optimization / frequencies / def2-TZVP single point | 25.7 s / 8.6 s / 0.6 s | E = −76.35889972 Eh; ZPE 13.32 kcal/mol; G correction 0.00357 Eh |
| Ethanol: optimization / frequencies | 8.2 s / 104.8 s | E = −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 perturbation | 3.9 + 28.7 s → 34.3 + 51.3 s | 308.3i cm⁻¹ → no imaginary frequency; torsional barrier 2.93 kcal/mol |
| HCN → HNC: OptTS / frequencies / IRC both directions | 5.8 s / 7.4 s / 35 s + 29 s | 1 imaginary frequency, 1117.8i cm⁻¹; barrier 47.84 kcal/mol |
| S22 benzene dimer interaction energy (5 levels, with CP) | 56–205 s per level | all positive without dispersion; B3LYP-D3(BJ)/def2-TZVP with CP gives −2.94 kcal/mol |
| xtb GFN2: ethanol optimization + analytic Hessian (--ohess) | 0.05 s | no 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
- Bursch, Mewes, Hansen, Grimme. Best-Practice DFT Protocols for Basic Molecular Computational Chemistry. Angew. Chem. Int. Ed. 2022, 61, e202205735 — Why B3LYP/6-31G* is outdated, mandatory dispersion correction, functional and basis recommendations by task, small imaginary frequencies and mRRHO
- Kruse, Goerigk, Grimme. Why the Standard B3LYP/6-31G* Model Chemistry Should Not Be Used in DFT Calculations of Molecular Thermochemistry. J. Org. Chem. 2012, 77, 10824 — Error compensation and BSSE in B3LYP/6-31G*
- ORCA 6.1 manual: General Structure of the Input File — ! lines, % blocks, * xyz, %maxcore per core and the 75–80% advice
- ORCA 6.1 manual: Parallel and Multi-Process Runs — %pal, calling by full path, not starting with mpirun
- ORCA 6.1 manual: Geometry Optimization — Convergence threshold table, default TightSCF, TERMINATED NORMALLY without convergence, TS_Mode, Scan
- ORCA 6.1 manual: Thermochemistry — Default quasi-RRHO, QRRHORefFreq, output lines such as G-E(el)
- ORCA 6.1 manual: Intrinsic Reaction Coordinate — %irc block, default MaxIter 20, output files
- ORCA 6.1 manual: Self-Consistent-Field — SlowConv, AutoTRAH, ConvForced, strategies for difficult cases
- ORCA 6.1 tutorial: Transition State Optimization — Scan, Calc_Hess, OptTS Freq examples; atoms numbered from 0
- ORCA 6.1 tutorial: Memory Settings — Exact out-of-memory message
- Gaussian 16: Link 0 Commands — %mem default 800 MB, %nprocshared
- Gaussian 16: Opt — TS, CalcFC, CalcAll, RecalcFC, MaxCycles, MaxStep
- Sobereva: A brief discussion on the choice of DFT functional (Chinese) — Community experience: functionals by task, no analytic Hessian for ωB97M-V, assessment of APFD
- Sobereva: On the choice of basis sets in quantum chemistry (Chinese) — Community experience: basis set tiers, why optimization needs no large basis, diffuse functions and wavefunction analysis
- Sobereva: Common methods to facilitate geometry optimization convergence (Chinese) — Community experience: Gaussian convergence thresholds, order of fixes
- Sobereva: Reasons and solutions for NO or imaginary frequencies after optimization in Gaussian (Chinese) — Community experience: causes and fixes for imaginary frequencies
- Sobereva: Thermodynamic quantities with small imaginary frequencies (Chinese) — Community experience: size of the effect on ZPE, entropy and free energy
- Sobereva: Methods to solve SCF non-convergence (Chinese) — Community experience: G16 continues after SCF failure, vshift, raising the cycle limit does not help
- Sobereva: Solvation free energy and free energy in implicit solvent models (Chinese) — Community experience: 1 atm → 1 M standard-state correction of 1.89 kcal/mol
- Sobereva: Installing the ORCA quantum chemistry program (Chinese) — Community experience: OpenMPI and gfortran, full path, PowerShell encoding issue, orca_2mkl
- Sobereva: Generating ORCA input files with Multiwfn (Chinese) — Community experience: maxcore example, ORCA keywords for each level, RIJCOSX default
- Keinsci: Multiwfn 3.8 release and the new version naming (Chinese) — Multiwfn version naming and citation
- Keinsci: A beginner's summary of DFT experience (Chinese) — Community experience: recalc=5, maxstep=3 for transition states
- CSDN: Installing ORCA on Ubuntu 18.04 (Chinese) — Community experience: ORCA 6.1.0 requires OpenMPI 4.1.8
- ORCA 6.1 manual: Excited States via TD-DFT — TDA is the default for TD-DFT; NRoots
- Sobereva: On harmonic frequency scaling factors (Chinese) — Community experience: scaling factors for comparing harmonic frequencies with experiment
- ORCA Input Library: SCF Convergence Issues — Community experience: default 125 SCF cycles and behaviour on non-convergence in ORCA
- Psi4 1.11 documentation — Program used for the runs on this page
- CREST documentation — Conformer search commands and output