Multiwfn  
A Multifunctional Wavefunction Analyzer −  
Software Manual  
with tutorials and abundant examples in Chapter 4  
Version 3.7  
Tian Lu  
Beijing Kein Research Center for Natural Sciences (www.keinsci.com)  
!
!!!!!!!!! ALL USERS MUST READ !!!!!!!!!!  
1
. Please feel free to ask questions about using Multiwfn by posting topic on  
http://bbs.keinsci.com/wfn)! I am always willing to provide as much help as I can for  
any Multiwfn user!!! \()/  
2
. To very quickly understand how to use Multiwfn to carry out very common  
tasks, please check "Multiwfn quick start.pdf" in the Multiwfn binary package.  
3
. The BEST way to get started is reading through Chapter 1, Sections 2.1~2.5 of  
Chapter 2, and then follow the tutorials in Chapter 4. After that if you want to learn  
more about theoretical backgrounds and details of Multiwfn, then read Section 2.6~2.8  
of Chapter 2 and Chapter 3. Note that the tutorials and examples given in Chapter 4  
only cover most important and frequently used functions rather than all functions of  
Multiwfn.  
4
. Different functions of Multiwfn require different type of input file, please  
carefully read Section 2.5 for explanation.  
5
. Usually Multiwfn runs in interactive mode, however Multiwfn can also be run  
in command-line mode, and it is very convenient to write shell script to make Multiwfn  
deal with a large number of input files. See Sections 5.2 and 5.3 for detail.  
6
. If you do not know how to copy the output of Multiwfn from command-line  
window to a plain text file, consult Section 5.4. If you do not know how to enlarge  
screen buffer size of command-line window of Windows system, consult Section 5.5.  
7
. If error “No executable for file l1.exe” appears in screen when Multiwfn is  
invoking Gaussian, you should set up Gaussian environment variable first. For  
Windows version, you can refer Appendix 1. (Note: Most functions in Multiwfn DO  
NOT require Gaussian installed on your local machine)  
8
. The so-called ”current folder” in this manual and in prompts of Multiwfn refers  
to the path where you are invoking Multiwfn. If you boot up Multiwfn by clicking the  
icon of executable file in Windows platform, the “current folder” is the folder  
containing Multiwfn executable file. In the case of command-line mode, if you are in  
“D:\study\” directory when invoking Multiwfn, then “D:\study\” is “current directory”.  
9
. Please frequently check Multiwfn website and update the program to the latest  
version. Multiwfn is always in active development, useful new functions are frequently  
added, bugs are continuously fixed and efficiency is continuously improved.  
i
 
Linux and Mac OS USERS MUST READ  
1
. If you are new to Multiwfn, using Windows version is highly recommended,  
since this version of Multiwfn is more stable than others, the GUI effect is the best and  
you do not need to set up your system.  
2
. See Section 2.1.2 and 2.1.3 on how to install Linux and Mac OS versions of  
Multiwfn, respectively.  
3
. When graphical user interface (GUI) appears, the graph cannot be shown  
automatically, you have to do something to active the graph, e.g. clicking "up" button  
or dragging a scale bar in the GUI.  
4
. Transparent style does not work when showing isosurfaces in GUI window. But  
if you choose to save the graph as image file, the transparent isosurfaces can be rendered  
normally in the resulting graphical file.  
5
. Using Mac OS version is deprecated, some functions may do not work normally.  
ii  
 
About the manual  
This content in the manual is organized in the following sequence:  
Chapter 1 Overview: Briefly describes what is Multiwfn and what Multiwfn can  
do.  
Chapter 2 General information: Introduces all aspects beyond specific functions  
of Multiwfn, such as how to install, how to use, supported file types, etc.  
Chapter 3 Functions: Describes all functions and related theories of Multiwfn in  
detail.  
Chapter 4 Tutorials and examples: Plenty of practical examples are provided for  
helping users to use Multiwfn and understand value of various analysis methods. The  
Section 4.A contains some advanced tutorials, important overviews and special topics.  
Chapter 5 Skills: Some useful skills in using Multiwfn.  
Appendix  
In general, italics font is used for inputted commands, journal names and filenames  
throughout this manual. Very important contents are highlighted by red color or bolded.  
You can directly jump to specific section by choosing corresponding entry in  
bookmark window of your pdf reader.  
The purpose of this manual is not only helping users to use Multiwfn, but also  
introducing related theories. I hope any quantum chemist can benefit from this manual.  
Albeit I have tried to write this manual as readable as possible for beginners, some  
topics request the readers have basic knowledges of quantum chemistry. If the readers  
have carefully read the book "Quantum Chemistry 7ed" written by Ira. Levine, then  
they will never encounter any difficulty during reading through the whole manual.  
iii  
Contents  
iv  
v
vi  
vii  
viii  
ix  
x
xi  
xii  
xiii  
xiv  
xv  
xvi  
xvii  
1
Overview  
1
Overview  
Multiwfn is an extremely powerful wavefunction analysis program, it supports almost all of  
the most important wavefunction analysis methods. Multiwfn is free, open-source, high-efficient,  
very user-friendly and flexible. Multiwfn can be downloaded at Multiwfn official website  
http://sobereva.com/multiwfn. This code is developed by Tian Lu at Beijing Kein Research Center  
for Natural Sciences (http://www.keinsci.com).  
Input files supported by Multiwfn  
Multiwfn accepts many kinds of files for loading wavefunction information: .mwfn (Multiwfn  
wavefunction file), .wfn/.wfx (Conventional / Extended PROAIM wavefunction file), .fch  
(
Gaussian formatted check file), .molden (Molden input file), .31~.40 (NBO plot files) and .gms  
GAMESS-US and Firefly output file). Other types such as Gaussian input and output  
(
files, .cub, .grd, .pdb, .xyz and .mol files can be used for specific functions.  
Briefly speaking, Multiwfn can perform wavefunction analyses based on outputted file of  
almost all well-known quantum chemistry programs, such as Gaussian, ORCA, GAMESS-US,  
Molpro, NWChem, Dalton, xtb, PSI4, Molcas, Q-Chem, MRCC, deMon2k, Firefly, CFour,  
Turbomole ...  
Special points of Multiwfn  
(
1) Very comprehensive functions. Almost all of the most important wavefunction analysis  
methods have been well supported by Multiwfn.  
2) Extremely user-friendly. Multiwfn is designed as an interactive program (but can also run  
(
silently and be embedded into shell script), prompts shown on screen in each step clearly tell users  
what should input next. Multiwfn also never prints obscure messages, therefore there is no any  
barrier even for beginners. In addition, all wavefunction analysis theories are very detailedly  
documented, and there are more than one hundred of well-written examples in the manual;  
furthermore, there is a "quick start" document that guides new users to master common analyses  
immediately. Moreover, the developer always very timely and patiently replies all users' questions  
in Multiwfn official forum.  
(3) High flexiblity. The design of the overall framework, functions and user interface of  
Multiwfn is rather flexible, but this does not sacrifice ease of use. Different modules of Multiwfn  
are organically integrated together to make numerous analyses that single module cannot realize  
feasible  
(4) High efficiency. The code of Multiwfn is substantially optimized. Most parts are  
parallelized by OpenMP technology. For computationally intensive tasks, the efficiency of Multiwfn  
exceeds analogous programs significantly.  
(5) Results can be visualized directly. A high-level graphical library DISLIN is invoked  
internally and automatically by Multiwfn for visualizing results, most plotting parameters are  
controllable in interactive interface. This remarkably simplified wavefunction analysis, especially  
for studying distribution of real space functions.  
1
 
1
Overview  
Major functions of Multiwfn  
PS: Despite that there are so many functions in Multiwfn and the manual is quite thick, you  
can easily learn how to realize the functions listed below by checking the "Multiwfn quick start"  
document in Multiwfn binary package.  
Showing molecular structure and viewing orbitals (MO, NBO, natural orbital, NTO, LMO,  
etc.). Speed of generating orbital graph is extremely fast, and the use is very convenient.  
Outputting all supported real space functions as well as gradient and Hessian at a point.  
Value can be decomposed to orbital contributions.  
Calculating real space function along a line and plot curve map.  
Calculating real space function in a plane and plot plane map. Supported graph types  
include filled-color map, contour map, relief map (with/without projection), gradient map  
and vector field map.  
Calculating real space function in a spatial scope, data can be exported to Gaussian-type  
cube grid file (.cub) and can be visualized as isosurface.  
For the calculation of real space functions in one-, two- and three-dimensions, user can  
define the operations between the data generated from multiple wavefunction files.  
Therefore one can calculate and plot such as Fukui function, dual descriptor and density  
difference very easily. Meanwhile promolecule and deformation properties for all real  
space functions can be calculated directly.  
Topology analysis for any real space function, such as electron density (AIM analysis),  
Laplacian, ELF, LOL, electrostatic potential and so on. Critical points (CPs) can be  
located, topology paths and interbasin surfaces can be generated, and then they can be  
directly visualized in a 3D GUI window or be plotted in plane map. Value of various real  
space functions can be calculated at critical points or along topology paths. CP properties  
can be decomposed as orbital contributions.  
Checking and modifying wavefunction. For example, print orbital and basis function  
information, manually set orbital occupation number and type, translate and duplicate  
system, discard wavefunction information from specified atoms.  
Population analysis. Hirshfeld, Hirshfeld-I, VDD, Mulliken, Löwdin, Modified Mulliken  
(including three methods: SCPA, Stout & Politzer, Bickelhaupt), Becke, ADCH (Atomic  
dipole moment corrected Hirshfeld), CM5, CHELPG, Merz-Kollmann, RESP (Restrained  
ElectroStatic Potential), AIM (Atoms-In-Molecules) and EEM (Electronegativity  
Equalization Method) are supported. Electrostatic interaction energy of two given  
fragments can be calculated based on atomic charges.  
Orbital composition analysis. Mulliken, Stout & Politzer, SCPA, Hirshfeld, Hirshfeld-I,  
Becke, natural atomic orbital (NAO) and AIM methods are supported to obtain orbital  
composition. Orbital delocalization index (ODI) can be outputted to quantify extent of  
spatial delocalization of orbitals.  
Bond order/strength analysis. Mayer bond order; multi-center bond order in AO or natural  
atomic orbital (NAO) basis (up to 12-centers); Wiberg bond order in Löwdin  
orthogonalized basis; Mulliken bond order; AV1245 index; intrinsic bond strength index  
(IBSI). Mayer and Mulliken bond order can be decomposed to orbital contributions.  
Wiberg bond order can be decomposed to contribution from various NAO interactions.  
Plotting total, partial, overlap population density-of-states (TDOS, PDOS, OPDOS) and  
2
1
Overview  
MO-PDOS. Up to 10 fragments can be very flexibly and conveniently defined. Local  
DOS (LDOS) can also be plotted for a point as curve map or for a line as color-filled map.  
Furthermore, plotting photoelectron spectrum (PES) based on (generalized) Koopmans'  
theorem is fully supported.  
Plotting IR (infrared), normal/pre-resonance Raman, UV-Vis, ECD (electronic circular  
dichroism), VCD (vibrational circular dichroism), Raman optical activity (ROA) and  
NMR spectra. For vibrational spectra, not only harmonic spectrum, but also anharmonic  
fundamental, overtone and combination bands can be plotted. Spin-orbit coupling effect  
could be incorporated for electronic spectra. Abundant parameters (broadening function,  
FWHM, scale factor, etc.) can be customized by users. Maxima and minima of the  
spectrum can be printed and directly labelled on the map. Total spectrum can be  
decomposed to individual contribution of each transition. Spectrum of multiple systems  
can be conveniently plotted together. Plotting conformational weighted spectrum can be  
very easily realized. Spikes can be added to bottom of the graph to indicate position and  
degeneracy of transition level.  
Quantitative analysis of molecular surface. Surface properties such as  
(total/positive/negative/polar/nonpolar) surface area, enclosed volume, average value and  
std. of mapped functions can be computed for overall molecular surface or local surfaces;  
Various kinds of GIPF descriptors and molecular polarity index can be evaluated; minima  
and maxima of mapped functions on the surface can be located; area of characteristic  
region corresponding to e.g. /-hole and lone pair can be calculated based on ESP;  
Basin-like analysis on molecular surface for arbitrary mapped function can be realized.  
Processing grid data (can be loaded from .cub/.grd or generated by Multiwfn). User can  
perform mathematical operations on grid data, set value in certain range, extract data in  
specified plane, plot integral curve, etc.  
Adaptive natural density partitioning (AdNDP) analysis. The interface is interactive and  
the AdNDP orbitals can be visualized directly. Energy and orbital composition of AdNDP  
orbitals can be obtained.  
Analyzing real space functions in fuzzy atomic spaces (defined by Becke, Hirshfeld or  
Hirshfeld-I partitions). These quantities can be computed: Integral of real space functions  
in atomic spaces or in overlap region between atomic spaces, dipole and multipole  
moments of atom/fragment/molecule, atomic multipole moments, atomic overlap matrix  
(AOM), localization and delocalization indices (LI, DI), condensed linear response kernel,  
multi-center DI, as well as five aromaticity indices, namely FLU, FLU-, PDI, PLR and  
information-theoretic index.  
Charge decomposition analysis (CDA) and extended CDA analysis. Orbital interaction  
diagram can be plotted. Infinite number of fragments can be defined.  
Basin analysis. Attractors can be located for any real space function, corresponding basins  
can be generated and visualized at the same time. All real space functions can be  
integrated in the generated basins. Electric multipole moments, basin/atomic overlap  
matrix (BOM/AOM), localization index (LI) and delocalization index (DI) can be  
calculated for the basins. Atomic contribution to basin population can be obtained. High  
ELF localization domain population and volume (HELP and HELV) and be evaluated.  
Electron excitation analyses: Visualizing and analyzing hole-electron distribution,  
3
1
Overview  
transition density, transition electric/magnetic dipole moment and charge density  
difference; calculating Coulomb attractive energy between hole and electron (exciton  
binding energy); calculating Mulliken atomic transition charges and TrEsp (transition  
charge from electrostatic potential); decomposing transition dipole moment to MO pair  
contribution or basis function/atom contribution; analyzing charge-transfer by the method  
proposed in JCTC, 7, 2498; plotting atom/fragment transition density matrix, transition  
dipole moment matrix and charge transfer matrix as heat maps; calculating r index  
(JCTC, 9, 3118) and  index (JCP, 128, 044118) to reveal electron excitation character;  
calculating transition dipole moments between excited states; generating natural transition  
orbitals (NTOs); calculating ghost-hunter index (JCC, 38, 2151); calculating amount of  
interfragment charge transfer via IFCT method; generating natural orbitals for a batch of  
excited states; quickly examining major MO transitions in all excited states.  
Orbital localization analysis: Pipek-Mezey (based on Mulliken or Löwdin population) and  
Foster-Boys localization methods are supported. Composition, energy and dipole moment  
of the resulting LMOs can be derived, shape and center of the LMOs can be easily  
visualized. Furthermore, based on the LMOs, oxidation states can be evaluated via LOBA  
method (PCCP, 11, 11297).  
Visual study of weak interaction: RDG/NCI method (JACS, 132, 6498); aNCI method  
(noncovalent interaction analysis in fluctuating environments, JCTC, 9, 2226); DORI  
method (JCTC, 10, 3745); independent gradient model (IGM) method (PCCP, 19, 17928);  
IGM based on Hirshfeld partition of molecular density (IGMH); Interaction region  
indicator (IRI). Individual regions enclosed by isosurface of these real space functions can  
be integrated for quantitative analysis. Becke and Hirshfeld surface analyses, as well as  
fingerprint analysis are also supported. Van der Waals potential (DOI:  
1
0.26434/chemrxiv.12148572) can be visualized.  
Energy decomposition analysis (EDA): EDA based on UFF/AMBER/GAFF molecular  
force fields (EDA-FF); Simple energy decomposition (relies on Gaussian); Shubin Liu's  
energy decomposition (EDA-SBL)  
Other functions (incomplete list): Automatic calculation of all quantities involved in  
conceptual density functional theory; integrating a real space function over the whole  
space by Becke's multi-center method; evaluating overlap integral between alpha and beta  
orbitals; evaluating overlap and centroid distance between two orbitals; generating  
Gaussian input file with initial guess combined from multiple fragment wavefunctions;  
calculating van der Waals volume; calculating HOMA and Bird aromaticity indices;  
calculating LOLIPOP index; calculating intermolecular orbital overlap; Yoshizawa's  
electron transport route analysis; calculating atomic and bond dipole moment in Hilbert  
space; plotting radial distribution function for real space functions; plotting iso-chemical  
shielding surface (ICSS); calculating overlap integral between orbitals in two different  
wavefunctions; parsing output of (hyper)polarizability task of Gaussian and calculate  
numerous related quantites; studying polarizability and 1st/2nd/3rd hyperpolarizability by  
sum-over-states (SOS) method; outputting various kinds of integrals between orbitals;  
evaluating the first and second moments and radius of gyration for a real space function;  
exporting loaded structure/wavefunction to many popular formats such  
as .wfn, .wfx, .molden, .fch, NBO .47, .pdb, .xyz and yield input file for a lot of known  
4
1
Overview  
quantum chemistry codes; calculating bond polarity index (BPI); domain analysis  
obtaining properties within isosurfaces defined by a real space function); calculating  
(
electron correlation indices; detecting  orbitals and evaluating orbital  composition;  
evaluating molecular diameter and length/width/height; perform biorthogonalization  
between alpha and beta orbitals to maximally pair them; evaluating interatomic  
connectivity and atom coordination numbers based on geometry; evaluating core-valence  
bifurcation (CVB) index; evaluating orbital contributions to density difference (e.g. Fukui  
function) or other kind of grid data; calculating bond length/order alternation (BLA/BOA)  
as well as bond angle and dihedral alterations; bond order density (BOD) and natural  
adaptive orbital (NAdO) analyses; viewing free regions and calculating free volume in a  
box; fitting atomic radial density as STOs or GTFs; unit sphere and vector representation  
of (hyper)polarizability tensor; simulating scanning tunneling microscope (STM) image;  
evaluating electric dipole/quadrupole/octopole moments, etc.  
Real space functions supported by Multiwfn  
Real space function analysis is one of the most powerful features of Multiwfn, more than 100  
real space functions are supported and listed below, detailed descriptions can be found in Section  
2
.6 and 2.7 of the manual:  
Electron density  
Gradient norm of electron density  
Laplacian of electron density  
Value of orbital wavefunction  
Electron spin density  
Hamiltonian kinetic energy density K(r)  
Lagrangian kinetic energy density G(r)  
Electrostatic potential from nuclear / atomic charges  
Electron localization function (ELF) defined by Becke and the one defined by Tsirelson  
Localized orbital locator (LOL) defined by Becke and the one defined by Tsirelson  
Local information entropy  
Electrostatic potential (ESP)  
Reduced density gradient (RDG) with/without promolecular approximation  
sign(2) (product of the sign of the second largest eigenvalue of electron density Hessian  
matrix and electron density) with/without promolecular approximation  
Exchange-correlation density, correlation hole and correlation factor  
Average local ionization energy  
Source function  
Interaction region indicator (IRI)  
Electron delocalization range function EDR(r;d) and orbital overlap distance function D(r)  
The g function defined in Independent Gradient Model (IGM)  
Others (incomplete list): potential energy density, electron energy density, strong covalent  
interaction index (SCI), shape function, local temperature, bond metallicity, linear response kernel,  
local electron affinity/electronegativity/hardness, ellipticity of electron density, eta index, on-top  
pair density, numerous forms of DFT exchange-correlation potential, numerous forms of DFT  
kinetic energy density, Weizsäcker potential, Fisher information entropy, Ghosh/Shannon entropy  
5
1
Overview  
density, integrand of Rényi entropy, steric energy/potential/charge, Pauli potential/force/charge,  
quantum potential/force/charge, PAEM, density overlap regions indicator (DORI), region of slow  
electrons (RoSE), PS-FID, single exponential decay detector (SEDD), electron linear momentum  
density, electric/magnetic dipole moment density, local electron correlation function, magnitude of  
electric field, orbital-weighted Fukui function and dual descriptor, van der Waals potential.  
Implementing a new real space function into Multiwfn is extremely easy, as illustrated in  
Section 2.7 of the manual.  
Things that Multiwfn can do  
The analyses that Multiwfn support for different topics are briefly listed below, you can easily  
find related manual sections by searching "Multiwfn quick start.pdf" document. Do not forget to  
ask question in Multiwfn official forum when you are confused!  
Visualizing various kinds of orbitals generated by various programs in various forms  
Characterizing chemical bonds: Various form of AIM analyses; studying real space functions  
2
(
ELF, LOL,  , kinetic/potential energy density, valence , fragment density difference,  
deformation density, source function, bond ellipticity, bond degree, eta index, V(r)/G(r), SCI, DORI,  
PAEM, IGM...); various kinds of bond orders analysis (Mayer, Laplacian, Mulliken, Wiberg, Fuzzy  
and multi-center bond orders, as well as decomposition analysis for Mayer, Mulliken and Wiberg  
bond orders); intrinsic bond strength index (IBSI); localization/delocalization index; orbital  
localization analysis; bond order density (BOD) and natural adaptive orbital (NAdO) analyses;  
various methods of measuring bond polarity and bond dipole moment; charge decomposition  
analysis (CDA); overlap population density-of-states (OPDOS); energy decomposition analysis and  
so on. See Section 4.A.11 of manual for an overview. Variation of various properties of chemical  
bonds during scan and IRC processes can also be easily studied via shell scripts, see Section 4.A.1  
of manual.  
Characterizing electron distribution and variation: Atomic charges (AIM, Mulliken, SCPA,  
Hirshfeld, Hirshfeld-I, Voronoi, Löwdin, ADCH, CM5, EEM, CHELPG, MK, RESP, RESP2... );  
total and spin population analyses for basis functions/shells/atoms/fragments; atomic dipole and  
multipole moment analysis; plotting / basin analysis / domain analysis for density difference; charge  
displacement curve  
Aromaticity and electron delocalization analyses: ICSS; AdNDP; ELF-/; LOL-/;  
HOMA; Bird; multi-center bond order; AV1245 and AVmin; NICS; Shannon aromaticity; FLU and  
FLU-; PDI; ATI; PLR; ∆DI; density curvature perpendicular to ring plane and so on. See Section  
4
.A.3 of manual for an overview  
Characterizing intramolecular and intermolecular weak interactions:AIM analysis (bond path  
visualization and analysis of various properies at bond critical point); visual analyses of weak  
interactions (NCI, IGM, IGMH, IRI, DORI); atom and atom pair g indices based on IGM or IGMH;  
quantitative molecular surface analysis for electrostatic potential (ESP); plotting ESP in various  
form; plotting van der Waals potential; energy decomposition analysis based on forcefield (EDA-  
FF); Hirshfeld/Becke surface analysis; LOLIPOP; mutual penetration distance and penetration  
volume analysis; atomic charge and multipole moment analysis; charge transfer analysis (density  
difference map, CDA, variation of population ...); ELF and core-valence bifurcation (CVB) index  
and so on. See Section 4.A.5 of manual for an overview  
Electron excitation analysis: Analysis of hole and electron (distribution,  
6
1
Overview  
atom/fragment/orbital contribution, centroid position, displacement and overlap, exciton binding  
energy); charge transfer analysis (IFCT, density difference...); NTO; overlap and centroid distance  
between crucial MOs; plotting atom/fragment transition density matrix and charge transfer matrix;  
r index; decomposition of transition dipole moment to basis function/atom/fragment/MO pair  
contributions; transition dipole moment between various excited states; transition atomic charge;  
ghost-hunter index; revealing variation of electronic structure (bonding and population) during  
excitation; printing major MO transitions in all excited states and so on. See Section 4.A.12 of  
manual for an overview  
Prediction of reactive sites and reactivity analysis: ESP and ALIE analyses on molecular  
surface; atomic charges; orbital composition analysis for frontier molecular orbitals; population of  
electron; orbital overlap distance function analysis; automatically calculating all important  
quantities defined in the framework of conceptual density functional theory (Fukui function and  
dual descriptor as well as their condensed form and orbital-weighted variants, Mulliken  
electronegativity, hardness, electrophilicity and nucleophilicity index, softness, condensed local  
softness, relative electrophilicity and nucleophilicity, etc.); evaluating contribution of orbitals (MO,  
NBO, NAO, etc.) to Fukui function. See Section 4.A.4 of manual for an overview  
Prediction properties of molecular condensed phase: Using ESP distribution on vdW surface  
to empirically predict heat of vaporization, heat of sublimation, density of molecular crystal, boiling  
point, heat of fusion, surface tension, pKb and so on. Molecular polarity can be quantified. See  
Section 3.15.1 of manual  
Plotting spectra: IR, Raman, UV-Vis, ECD, VCD, ROA, NMR and photoelectron spectra  
Characterizing molecular structure: Evaluating molecular volume, surface area,  
length/height/weight, diameter, interatomic connectivity and atomic coordination number, average  
bond length of atomic cluster, cavity volume, bond length alternation (BLA) as well as bond angle  
and dihedral alternations, kinetic diameter and so on. Free regions (pores) in a box can be visualized  
and volume can be evaluated  
(Hyper)polarizability study: Parsing Gaussian output file of "polar" task and calculating many  
data related to (hyper)polarizability; Calculating quantities related to Hyper-Rayleigh scattering  
HRS); plotting (hyper)polarizability density; obtaining atomic contribution to (hyper)polarizability;  
(
calculating (hyper)polarizability by means of sum-over-states (SOS) method; two-level and three-  
level model analyses; unit sphere and vector representation of (hyper)polarizability tensor  
Electric conduction analysis: TDOS and PDOS; orbital overlap analysis between  
neighbouring monomers; Yoshizawa's transport route analysis; bond length/order alternation  
BLA/BOA)  
Many others: Teaching structure chemistry; simulating scanning tunneling microscope (STM)  
(
image; converting file formats containing geometry or wavefunction information; studying electron  
correlation effect; realizing ELF-tuning and LOL-tuning for DFT functionals; evaluating oxidation  
state by LOBA method; studying distribution of real space functions (in terms of radial distribution  
function, centroid, first and second moments, integral over whole space and local region...);  
evaluating or component in molecular orbitals and so on  
Citing Multiwfn  
If Multiwfn is used in your research, at least this paper must be cited:  
7
1
Overview  
Tian Lu, Feiwu Chen, Multiwfn: A Multifunctional Wavefunction Analyzer, J. Comput.  
Chem. 33, 580-592 (2012)  
Other my papers should be cited according to the method and function employed in your work.  
Please carefully check How to cite Multiwfn.pdf document in the Multiwfn binary package  
Discussion zones  
There are two Multiwfn official forums, with different languages. You can discuss anything  
about Multiwfn and wavefunction analysis in either one. If you encountered problems in using  
Multiwfn, please do not hesitate to post topic on these forums!  
Multiwfn English forum: http://sobereva.com/wfnbbs  
Multiwfn Chinese forum: http://bbs.keinsci.com/wfn  
BTW: Multiwfn Youtube channel contains many valuable illustration videos of Multiwfn, it is  
highly recommended to look at them and subscribe this channel  
8
2
General information  
2
General information  
2
.1 Install  
2
.1.1 Windows version  
What you need to do is just uncompressing the program package, then you can start to use by  
double-clicking the icon.  
A few functions in Multiwfn rely on Gaussian, if you need to carry out these analyses, you  
need to setup environment variables for Gaussian manually, see Appendix 1.  
It is strongly suggested to set "nthreads" in settings.ini to actual number of CPU physical cores  
of your machine, so that all computing power of your CPU could be utilized during calculation. See  
Section 2.4 for more detail.  
If you want to make Multiwfn able to directly open .chk file produced by Gaussian, set  
"formchkpath" in settings.ini to actual path of formchk executable file in Gaussian package.  
2
.1.2 Linux version  
Uncompress the Multiwfn binary package  
Make sure that you have installed motif package, which provides libXm.so.4, full version of  
Multiwfn cannot boot up without this file. The motif is freely available at  
http://motif.ics.com/motif/downloads. If you are a CentOS or Red Hat Linux user and have not  
installed motif, you can directly run yum install motif to install it; alternatively, you can download  
corresponding rpm package (e.g. motif-2.3.4-1.x86_64.rpm) and manually install it; If you are an  
Ubuntu user, you can run sudo apt-get install libmotif4 to install it, or download deb package (e.g.  
libmotif4_2.3.4-1_amd64.deb) and manually install it.  
Add below lines to ~/.bashrc file (using e.g. vi ~/.bashrc command)  
export KMP_STACKSIZE=200M  
ulimit -s unlimited  
These lines mean removing limitation on stacksize memory, and defining stacksize of 200MB  
for each thread during parallel calculations, see Section 2.4 for detail.  
Run /sbin/sysctl -a|grep shmmax to check if the size of SysV shared memory segments is  
large enough (unit is in bytes); if the value is too small, Multiwfn may crash when analyzing big  
wavefunction. To enlarge the size, for example you can add kernel.shmmax = 512000000 to  
/etc/sysctl.conf and reboot system, then the upper limit will be enlarged to about 512MB.  
Assume that you are using Bash shell, and you have decompressed the Multiwfn package as  
“/sob/Multiwfn_3.6_bin_Linux” folder, you should add below lines into ~/.bashrc file:  
export Multiwfnpath=/sob/Multiwfn_3.6_bin_Linux  
export PATH=$PATH:/sob/Multiwfn_3.6_bin_Linux  
Run below command to add executable permission to Multiwfn executable file:  
chmod +x /sob/Multiwfn_3.6_bin_Linux/Multiwfn  
9
 
 
 
 
2
General information  
Configure the settings.ini file in Multiwfn folder in the same way as described in last Section  
After re-entering the terminal, you can boot up Multiwfn anywhere by simply running Multiwfn.  
Linux version of Multiwfn works well on Red Hat Enterprise Linux 6 & 7, CentOS 6 & 7 and Ubuntu 12/14/16.  
I can not guarantee that the program is completely compatible with all other Linux distributions. If system prompts  
you that some dynamical link libraries (.so files) are missing when booting up Multiwfn, try to find and install the  
packages which contain corresponding .so files.  
If you encounter difficulty when running/compiling Multiwfn due to missing or incompatibility of some  
graphics related library files, and meantime you do not need any visualization function of Multiwfn, you can  
run/compile Multiwfn without GUI supported, all functions irrelevant to GUI and map plotting will still work  
normally. Please check document of compilation method in source code package on how to compile this version, the  
pre-compiled binary of this version can also be downloaded from Multiwfn website (termed as "noGUI" version).  
2
.1.3 Mac OS version  
If you are using relatively old Mac OS version, e.g. OS X 10.8, simply follow the instruction  
given in this section. If you intend to install Multiwfn in relatively new Mac OS systems, such as  
OS X 10.11 EI Capitan and MacOS 10.12 Sierra, please follow steps in this page:  
https://wiki.ch.ic.ac.uk/wiki/index.php?title=Mod:multiwfn. Since I am not a Mac user, I am sorry  
that I am unable to provide much help if you encounter difficulty in Mac platform.  
Uncompress the program package to e.g. /Users/sob/Multiwfn. Notice that the path  
including file name) should less than 80 characters.  
(
inc.com/downloads/motif_download.html and then install it. The motif package I installed is  
openmotif-compat-2.1.32_IST.macosx10.5.dmg.  
If your system does not natively support X11 (i.e. OS X Mountain Lion), you should download  
XQuartz from http://xquartz.macosforge.org/landing and install it.  
Add below sentense to your .profile file (e.g. /Users/sob/.profile) to make them take effect  
automatically, then reboot your terminal. If the .profile is unexisting, you should create it manually.  
export KMP_STACKSIZE=64000000  
KMP_STACKSIZE defines stacksize (in bytes) for each thread in parallel implementation, see  
Section 2.4 for detail.  
Run sysctl -a|grep shmmax to check if the size of SysV shared memory segments is large  
enough (unit is in bytes), if the value is too small, Multiwfn may crashes when analyzing big  
wavefunction. In order to enlarge the size, you should edit or create the file /etc/sysctl.conf, and add  
kern.sysv.shmmax = 512000000 to it and reboot system, then the upper limit will be enlarged to  
about 512MB.  
Move the libdislin_d.11.dylib in the Multiwfn package to /usr/local/lib folder.  
Set Multiwfnpath environment variable if needed, see point 5 of Section 2.1.2.  
Configure the settings.ini file in the same way as described in Section 2.1.1.  
2
.2 Using Multiwfn  
Using Multiwfn is very easy, by simply reading the prompts shown on screen, you will know  
what should input next. If you get stuck, please read corresponding section carefully in Chapter 3  
or corresponding tutorials in Chapter 4.  
In Windows, usually Multiwfn is booted up by directly double-clicking the icon of the  
1
0
 
 
2
General information  
executable file, then you should input the path of the file to be loaded. You can also boot up Multiwfn  
via command line, and the same time the path of input file may be also given, for example you can  
run Multiwfn /sob/test.wfn.  
If the input file is in current directory, you can input file name without the path of directory. If  
the input file is just the one that last time used, you can simply input the letter o after entering  
Multiwfn (the path of the input file successfully read at last time was recorded in settings.ini). If the  
input file is in the same folder as the one last time used, for convenience the path can be replaced  
by symbol ?. For example, last time you loaded C:\sob\wives\K-ON\Mio.wfn, this time you can  
simply input ?Azusa.fch to load C:\sob\wives\K-ON\Azusa.fch. If you preferred to choose input file  
in GUI window, you can directly press ENTER button after entering Multiwfn, then a GUI window  
will be shown for selecting input file.  
You can press CTRL+C or click “×” button at right-top of Multiwfn window any time to exit  
Multiwfn, but a more graceful way of exiting Multiwfn is inputting q in main menu. When graphical  
window is showing on screen, you can click “RETURN” button to close the window, if there is no  
such button, clicking right mouse button on the graph to close it.  
If you want to load another file into Multiwfn, you can reboot Multiwfn or start a new Multiwfn  
instance. Alternatively, in main menu you can input r to initialize Multiwfn and load a new file, at  
the meantime the settings.ini will also be reloaded. However, please notice that the safest way of  
loading a new file is rebooting Multiwfn.  
Multiwfn can also run via silent mode instead of interactive mode, by which users do not need  
to press any keyboard button during running. This is useful for batch processing, please consult  
Sections 5.2 and 5.3.  
Supported arguments  
For convenience, there are a few arguments may be added when running Multiwfn via  
command line:  
-nt: Number of threads for parallel calculation  
-uf: Index of user-defined function  
-silent: Run Multiwfn in silent mode  
-set: Path of settings.ini  
For example  
Multiwfn COCl2.fch -nt 36 -set /sob/tmp/settings.ini -silent  
The priorities of these arguments are higher than those in settings.ini.  
2
.3 Files of Multiwfn  
You will find following files after uncompressing Multiwfn package, only the bolded files are  
indispensable for running Multiwfn:  
Multiwfn.exe (Windows) or Multiwfn (Linux/Mac OS) : The executable file of Multiwfn.  
libiomp5md.dll (Windows) : Intel OpenMP Runtime library.  
settings.ini : All detail parameters for running Multiwfn are recorded here, most of them do  
not need to be frequently modified. When booting up, Multiwfn will try to find and use this file in  
current folder, if it is not presented in current folder, the file in the path defined by "Multiwfnpath"  
11  
 
2
General information  
environment variable will be used; if the file still cannot be found, default settings will be used  
instead. If you run Multiwfn via command line, you can also directly specify position of this file via  
"
-set" argument, for example: Multiwfn test.wfn -set /sob/3.7/settings.ini.  
The meanings of all parameters in settings.ini are not documented in this manual systematically,  
since they have already been commented in detail, only those important will be mentioned in this  
manual. I suggest you read through the settings.ini and find out the ones useful for you.  
“examples” folder : Some useful files, scripts and the files involved in the examples of  
Chapter 4.  
LICENSE.txt : The terms that all users must follow.  
Multiwfn quick start.pdf : A short document lets new user immediately understand how to  
use Multiwfn to carry out very common tasks.  
How to cite Multiwfn.pdf : Please properly cite Multiwfn according to this document.  
2
.4 Parallel implementation  
Most time-consuming codes of Multiwfn have been parallelized by OpenMP. If your computer  
is SMP architecture, you can greatly benefit from parallelization (For grid calculation, the speed up  
ratio versus the number of CPU cores is nearly linear). To enable parallel mode, just modify  
nthreads” parameter in settings.ini to your situation. For example, your computer have a physical  
1
2-cores CPU installed, then change “nthreads” to 12.  
If Multiwfn crashes during parallel calculation for very large system, try to enlarge  
“ompstacksize” in settings.ini (for Windows version) or enlarge the value of the environment  
variable KMP_STACKSIZE (for Linux or Mac OS version).  
2
.5 Input files and wavefunction types  
Wavefunction types supported by Multiwfn include restricted/unrestricted single-determinant  
wavefunction, restricted open-shell wavefunction and post-HF wavefunction (in natural orbital  
formalism).  
For basis function, Cartesian or spherical harmonic Gaussian functions with angular moment  
up to h are supported.  
There is no upper limit of the number of atoms / basis functions / GTFs / orbitals in Multiwfn,  
the actual upper limit is only decided by available memory on your computer.  
Multiwfn determines the input file type by file extension. Notice that different function need  
different types of information, you should choose proper type of input file, see the table below. For  
example, the wavefunction represented by GTFs is enough for Hirshfeld population, so you can  
use .mwfn/.fch/.molden/.gms/.31~.40/.wfn/.wfx file as input, but .pdb, .xyz, .mol, etc. do not carry  
any wavefunction information hence cannot be used. While generating grid data of RDG function  
with promolecular approximation only requires atom coordinates, so all supported file formats can  
be used (except for plain text file). The requirement on information types by each function is  
commonly described at the end of corresponding section in Chapter 3 by red text.  
1
2
 
 
2
General information  
Contained information types  
File Format  
Basis  
Atom  
Grid  
Atomic  
GTFs  
functions  
coordinates  
data  
charges  
.
fch/.fchk/.chk  
.
mwfn .molden .gbw  
gms  
NBO .31~.40  
wfn and .wfx  
pdb .xyz .mol .mol2 .gjf .gro  
chg and .pqr  
cub/.cube  
.
.
.
.
.
.
vti, DMol3 .grd, .dx  
Plain text file  
Multiwfn wavefunction file (.mwfn) : This format is defined and supported since Multiwfn  
.7. This is the most ideal format for wavefunction storage and exchange purposes. This file records  
3
all information for wavefunction analysis in a strict, concise, compact and extensible format. The  
introduction and definition of this format is given in my paper: ChemRxiv (2020) DOI:  
AIM wavefunction file (.wfn) : This format was first introduced by Bader’sAIMPAC program,  
and currently supported by a lot of mainstream quantum chemistry softwares, such as Gaussian,  
ORCA, GAMESS-US/UK, Firefly, Q-Chem and NWChem. The information in .wfn file include  
atomic coordinates, elements, orbital energies, occupation numbers, expansion coefficients of  
Cartesian Gaussian type functions (GTF). Supported angular momentum of GTF is up to f. The wfn  
file does not contain any virtual orbital. The generation method of .wfn file is documented at the  
beginning of Chapter 4.  
Note: Although GTFs with angular moment of g and h are not formally supported by original .wfn format, if g  
and h-type GTFs are recorded in following manner, then Multiwfn is able to recognize them: 21~35 in "TYPE  
ASSIGNMENT" correspond to YZZZ, XYYY, XXYY, XYZZ, YZZZ, XYYZ, XXXX, XXXY, XZZZ, XXYZ,  
XXXZ, XXZZ, YYYY, YYYZ, ZZZZ, respectively. 36~56 correspond to ZZZZZ, YZZZZ, YYZZZ, YYYZZ,  
YYYYZ, YYYYY, XZZZZ, XYZZZ, XYYZZ, XYYYZ, XYYYY, XXZZZ, XXYZZ, XXYYZ, XXYYY, XXXZZ,  
XXXYZ, XXXYY, XXXXZ, XXXXY, XXXXX, respectively. The sequence shown here in fact is also the sequence  
used in the .wfn outputted by Molden2AIM and Gaussian09 since B.01.  
AIM extended wavefunction files (.wfx) : This is a format introduced as an extension of .wfn,  
and it was supported by Gaussian 09 since B.01 revision. Relative to .wfn format, .wfx supports  
higher data record precision and infinitely high GTF angular moment. The most special point of this  
format is the newly added electron density function (EDF) field, that is using multiple GTFs to  
represent inner core electron density of the wavefunction in which effective core potential (ECP) is  
used. Due to this, the result of electron density analysis for the wavefunction using ECP is nearly  
identical to that for full electron wavefunction. Currently the real space functions supported EDFs  
in Multiwfn include: electron density, its gradient and Laplacian, local information entropy, reduced  
density graident as well as Sign(λ2(r)). Meanwhile topology analyses of electron density and its  
1
3
2
General information  
Laplacian also take into account EDFs. Notice that EDF informations have neither effect on ESP  
nor the real space functions that relied on wavefunction (e.g. kinetic energy density, ELF). If you  
you want to analyze these properties for heavy elements, you should use full-electrons basis sets, at  
lease small-core ECP. Currently the only supported GTF type in EDF field is S-type (actually S-  
type is enough for fitting inner density, since which is nearly spherical symmetry). Like .wfn,  
Multiwfn does not allow virtual orbitals presented in .wfx file.  
Multiwfn has a powerful built-in EDF library, taken from Molden2aim program developed by  
Wenli Zou. As long as the input file contains GTF information (e.g. .fch, .wfn, .molden, .gms...),  
Multiwfn always automatically loads EDF information from this library for the atoms using  
pseudopotential. Only when you use .wfx file as input and the .wfx itself already contains EDF field,  
the EDF information will be loaded from the .wfx file rather than from EDF library. See Appendix  
4
for more details.  
Note that although some programs other than Gaussian can also generate .wfx file (e.g. ORCA),  
these .wfx files are unable to provide EDF field.  
Notice: For certain version of Gaussian (e.g. G09 B.01), I found that the EDF field recorded in .wfx for rare  
cases is problematic, namely the number of electrons represented by EDF field is unequal to the actual number of  
core electrons exhibited by ECP. In order to verify if the EDF field is correct, you can use subfunction 4 in main  
function 100 to obtain the integral of total electron density over the whole space, if the result is approximately equal  
to the total number of electrons (core+valence electrons), that means the EDF field is correct.  
Gaussian formatted checkpoint file (.fch/.fchk): Checkpoint file of Gaussian program (.chk)  
can be converted to formatted checkpoint file (.fch/.fchk) via formchk utility in Gaussian package.  
There is no any difference between .fch and .fchk. "fch" ("fchk") is the default extension generated  
by Windows (Linux) version of formchk.  
If you want to make Multiwfn able to directly load .chk file, you must set "formchkpath" in  
settings.ini to actual path of formchk executable file in Gaussian package. In this case Multiwfn will  
automatically invoke formchk to convert .chk file to .fch/fchk file, and if conversion is successful,  
the .fch/fchk will be loaded and then be automatically deleted once loading is finished.  
.
fch/.fchk contains richer information than .wfn/.wfx files, virtual orbital wavefunctions are  
also recorded, and meanwhile it provides basis function information for Multiwfn. If you want to  
use .fch/.fchk file as carrier for post-HF wavefunction, read the beginning of Chapter 4 carefully!  
Notice that for single-determinant wavefunctions, before some calculations involving real  
space function (e.g. main function 2, 4, 5), virtual orbitals higher than LUMO+10 will be deleted  
automatically to speed up calculations, therefore you cannot analyze those orbitals after the  
calculation, unless you reboot Multiwfn. If you want to disable this treatment, set "idelvirorb" in  
settings.ini to 0.  
The .fchk file generated by Q-Chem and PSI4 can also be used as input file of Multiwfn. (If  
the .fchk file was generated by relatively old version of Q-Chem, you must set “ifchprog” in  
settings.ini to 2. You do not need to do this if your Q-Chem version is equal or newer than 5.0).  
Molden input file (.molden or .molden.input or molden.inp) : Currently, a wide variety of  
quantum chemistry packages, such as Molpro, Molcas, ORCA, Q-Chem, CFour, Turbomole, PSI4,  
MRCC and NWChem are able to produce input file of Molden visualization program. This type of  
file records atomic coordinates, basis set definition, information of all occupied and virtual orbitals  
(including expansion coefficient of basis functions, occupation number, spin, energy and symmetry),  
meanwhile there is no information only specific for Molden. So in fact, Molden input file can be  
1
4
2
General information  
regarded as a standard and general file format for exchanging wavefunction information. For  
Multiwfn, this type of file can provide atomic coordinate, basis function information and GTF  
information.  
Beware that the Molden input files produced by a lot of program are quite non-standard!  
Currently Multiwfn only formally supports the Molden input file generated by Molpro, ORCA, xtb,  
Dalton, NWChem (only for spherical harmonic functions and meantime symmetry is disabled),  
MRCC (only for spherical harmonic functions), deMon2k, BDF. If the Molden input file you used  
is generated by other programs, the analysis result may or may not be correct, you should first use  
the methods described in Appendix 5 to check if the wavefunction has been correctly loaded.  
Hint: Multiwfn fully supports the Molden input file standardized by molden2aim utility (see Section 5.1 for  
detail), which is able to properly recognize Molden input files generated by many other quantum chemistry codes,  
such as CFOUR and Molcas.  
.
molden file only formally supports basis functions up to g angular moment. However,  
subfunction 2 of main function 100 can generate .molden file containing h functions, and Multiwfn  
can then normally load it. Multiwfn can also normally load .molden file generated by ORCA and  
Dalton even if h functions are presented.  
Although Molden input file also supports Slater type orbital (STO), Multiwfn can only utilize  
the Molden input file recording Gaussian type basis functions.  
One drawback of Molden input file is that it does not explicitly record nuclear charges as other  
formats such as wfn and fch, therefore the results relying on nuclear charges (e.g. electrostatic  
potential) will be problematic when pseudo-potential is used. To address this problem, Multiwfn  
loads atomic indices in the file (i.e. the third column in [Atoms] field) as nuclear charges, thus if  
you manually change the atomic index to the number of atomic valence electrons that explicitly  
represented in the quantum chemistry calculation, then the result will be correct. If you are confused  
about this point, please check this post: http://sobereva.com/wfnbbs/viewtopic.php?pid=721.  
A disadvantage of using Molden input file as wavefunction carrier is that its format is not as  
compact as .fch. Due to this reason, for the same wavefunction, loading speed of .molden file is  
much slower than .fch. Therefore, if you need to frequently analyze a .molden file, I suggest you  
use subfunction 2 of main function 100 to convert it to .fch format.  
In analogy to .fch file, Multiwfn may delete virtual orbitals higher than LUMO+10. To avoid  
this, you should set "idelvirorb" in settings.ini to 0.  
The way of generating Molden input file by some quantum chemistry programs are described  
at the beginning of Chapter 4. If you are an ORCA user and you do not want to manually convert  
the .gbw file to Molden input file via the orca_2mkl utility in ORCA, you can set "orca_2mklpath"  
in settings.ini to actual path of orca_2mkl executable file in ORCA folder, then Multiwfn will be  
able to directly load .gbw file.  
PS: Detailed description about .molden format can be found on Molden official site:  
GAMESS-US or Firefly output file (.gms): If you want to use GAMESS-US or Firefly  
(originally known as PC-GAMESS) output file as input file, you can change its suffix as .gms, then  
Multiwfn will properly recognize it. Currently, I can only guarantee that output file of  
HF/DFT/TDDFT calculation with default NPRINT option can be normally loaded by Multiwfn. If  
the point group is not C1, Multiwfn will be unable to deal with the output file.  
The role of .gms is similar as .molden and .fch file, i.e. all of them provide atomic coordinates,  
1
5
2
General information  
GTF and basis function informations.  
Since I am not a experienced Firefly user, I cannot guarantee that the compatibility with Firefly output files is  
as good as GAMESS-US output files. For the former I only tested DFT single point task and TDDFT task.  
Plot files of NBO program (.31~.40): The main purpose of supporting these file types is for  
visualizing PNAO/NAO/PNHO/NHO/PNBO/NBO/PNLMO/NLMO/MO (their orbital coefficients  
are recorded in .32~.40 respectively), .31 recorded basis function information. After boot up  
Multiwfn, you should input the path of .31 file first, and then input the path of one of .32~.40 files  
(for simplicity, you can only input the suffix when the filenames are identical).  
Notice that among all types of the orbitals generated by NBO program, only using NBO or  
NLMO to calculate real space functions is meaningful!  
Protein data bank format (.pdb), .xyz, MDL Molfile (.mol), .mol2: These are the most  
widely used formats for recording atom coordinates. They do not carry any wavefunction  
information, but for the functions which only require atom coordinates, using these kind of files as  
input is adequate. An advantage of .mol and .mol2 with respect to .pdb and .xyz is that they contain  
atomic connectivity table, which is need by a few functions of Multiwfn, e.g. Calculation of EEM  
atomic charges. If .xyz file contains multiple frames, only the first frame will be loaded.  
Notice that the .mol file supported by Multiwfn is V2000 version, both the maximum number  
of atoms and bonds that can be recorded are 999. More description about .mol format can be found  
Gaussian job file (.gjf): This means input file of Gaussian program, it can provide atom  
coordinate information as well as the number of  and  electrons information to Multiwfn. Note  
that the atoms must be recorded as Cartesian coordinate.  
Charge files (.chg): This type of plain text file can be generated by some functions of Multiwfn  
(e.g. population analysis functions), it contains element names (less than or equal to two characters),  
atom coordinates (first three columns, in Å) and charges (the fourth column), users can modify them  
manually. This file is free-formatted, all fields must be delimited by white-space. This file can  
provide atomic charge information, the main use of which is to visualize electrostatic potential and  
analyze it on molecular surface based on atomic charges, the electrostatic interaction energy based  
on atomic charges can also be evaluated by subfunction -2 of main function 7 using .chg as input  
file. When .chg file is loaded, the sum of all atomic charges as well as electric dipole moment  
calculated using the atomic charges will be shown on screen.  
An example of .chg file of water molecule is given below:  
O
H
H
0.000000  
0.000000  
0.119308 -0.301956  
0.000000  
0.758953 -0.477232  
0.150977  
0.150977  
0.000000 -0.758953 -0.477232  
.
pqr file: This format is very similar to .pdb format, but with different content. Behind the  
columns corresponding to atomic X/Y/Z coordinate, there are two columns recording atomic  
charges and atomic radii, respectively (the number of decimals of the two columns is not important,  
the fields must be delimited by white-space). This kind of file can provide atom information as well  
as atomic charge information to Multiwfn. Below is an example .pqr file of water. The REMARK  
1
6
2
General information  
field could exist to record comments, they will be skipped during loading the file.  
REMARK From file m1charges.out  
REMARK ESP charges  
ATOM  
ATOM  
ATOM  
1 O  
2 H  
3 H  
O 1  
O 1  
O 1  
1
1
1
0.000 0.123 0.000 -0.680698 2.9000  
0.757 -0.490 0.000 0.340338 2.6000  
-0.757 -0.490 0.000 0.340361 2.6000  
Gaussian-type cube file (.cub or .cube): This is the most popular volumetric data format, it  
can be generated by vast computational chemistry softwares and can be recognized by the majority  
of molecular graphics programs. Atom coordinates, a set of grid data of real space function or  
multiple sets of grid data of molecular orbitals could be recorded in this file. After a cube file is  
loaded into Multiwfn, one can choose main function 0 to visualize isosurfaces, or use main function  
1
3 to process the grid data.  
Multiwfn only supports cube file of rectangle grid, that means the three translation vectors are  
parallelized with X, Y and Z Cartesian axes, respectively. However, if the grid of loaded cube file  
is not rectangle, you can still normally use the grid data calculation function (subfunction 11 of main  
function 13).  
.
gro file: GROMOS format. This kind of file is most frequently employed in GROMACS  
molecular dynamics program. .gro file can only provide atomic information for Multiwfn. Note that  
since this file records atom name rather than element, Multiwfn automatically guesses the actual  
element based on atom names and residue names during loading. However, sometime the guessed  
element may be incorrect, therefore it is recommended to examine the printed molecular formula  
after loading the file.  
.
vti, .dx and DMol3 grid file (.grd):  
.
vti is "ParaView VTK Image Data" format, which can record scalar field and vector field. This  
kind of file can be generated by e.g. GIMIC 2.0 and ParaView programs. Only .vti file containing  
scalar data of ASCII type is supported. Briefly speaking, this file is very similar to .cub file, but no  
atom information is presented.  
.
.
dx is volumetric data format that can be exported by e.g. Volmap plugin of VMD program.  
grd file is the volumetric data format mainly used by DMol3 program. Only .grd file  
corresponding to rectangle grid could be loaded. Also, no atom information is recorded in .grd.  
Plain text file: This file type is only used for special functions, such as plotting DOS graph,  
plotting spectrum, generating Gaussian input file with initial guess. See explanations in  
corresponding sections.  
Gaussian output file also belongs to this type. However, if you set "iloadGaugeom" in  
settings.ini to 1, then Multiwfn will load geometry (the final one) and number of electrons from this  
file.  
1
7
2
General information  
2
.6 Real space functions  
The "Real space functions" in this manual referred to as the functions whose variables are  
coordinate of the three-dimension space of present system. Real space function analysis is one of  
the most important functions of Multiwfn, the supported real space functions are listed below. All  
wavefunctions are assumed to be real type, all units are in atomic unit (a.u.).  
Notice that for speeding up calculation, especially for big system, when evaluating a  
exponential function (except for some real space functions, such as 12, 14 and 16), if the exponent  
is more negative than -40, then this evaluation will be skipped. The default cutoff value is safe  
enough and cannot cause detectable loss of precision even in quantitive analysis, you can also  
disable this treatment or adjust cutoff, see “expcutoff” in settings.ini.  
1
Electron density  
2
2
(r) =   (r) = i C  (r)  
i
i
  l.i  
l
i
i
l
where i is occupation number of orbital i,  is orbital wavefunction,  is basis function. C is  
coefficient matrix, the element of the ith row jth column corresponds to the expansion coefficient  
of orbital j respect to basis function i. Atomic unit for electron density can be explicitly written as  
-3  
-3  
1
/Bohr (which corresponds to 6.74833/Å , since 1 Bohr = 0.529177Å).  
When input file does not contain GTF information, this function will be calculated as  
promolecular density, which is approximate molecular electron density simply constructed by  
superposing built-in spherically averaged free-state atomic density of all atoms in the system. See  
Appendix 3 on how the built-in atomic density were derived.  
It is worth to note that distribution character of valence electron density is much more  
informative than electron density, this point was thoroughly discussed in my work Acta Phys. -Chim.  
Sin., 34, 503 (2018) DOI: 10.3866/pku.Whxb201709252.  
2
3
Gradient norm of electron density  
2
2
2
(r)   (r)   (r)   
x   
(r) =   
 +   
 +   
y  
   
z  
Laplacian of electron density  
2
2
2
(r)  (r)  (r)  
x
2
(r) =  
+
+
2
2
2
y  
z  
The positive and negative value of this function correspond to electron density is locally  
2
depleted and locally concentrated respectively. The relationships between ∇ ꢀ and valence shell  
electron pair repulsion (VSEPR) model, chemical bond type, electron localization and chemical  
reactivity have been built by Bader and many other researchers.  
2
If “laplfac” in settings.ini is set to other value rather than the default one 1.0, ∇ ꢀ will be  
1
8
 
2
General information  
multiplied with this value. Setting it to negative value is convenient for analysis of electron density  
concentration.  
2
-5  
The ∇ ꢀ outputted by Multiwfn is in atomic unit, which can be explicitly written as 1/Bohr  
-5  
(
corresponding to 24.09874/Å , since 1 Bohr = 0.529177Å).  
4
Value of orbital wavefunction  
i (r) = C  (r)  
l,i  
l
l
When you select this function, you will be prompted to input the index of orbital i.  
5
Electron spin density  
Spin density is defined as the difference between alpha and beta density  
s
(r) =  (r)   (r)  
If “ipolarpara” in settings.ini is set to 1, then spin polarization parameter function will be  
returned instead of spin density  
(r)   (r)  
(r) =  
(r) +  (r)  
The absolute value of  going from zero to unity corresponds to the local region going from  
unpolarized case to completely polarized case.  
6
Hamiltonian kinetic energy density K(r)  
The kinetic energy density is not uniquely defined, since the expected value of kinetic energy  
2
operator   | (1/ 2) |  can be recovered by integrating kinetic energy density from  
alternative definitions. One of commonly used definition is  
1
*
i
2
K(r) = −  
  (r)  (r)  
i
i
2
i
7
Lagrangian kinetic energy density G(r)  
Relative to K(r), the local kinetic energy definition given below guarantee positiveness  
everywhere, hence the physical meaning is clearer and more commonly used. G(r) is also known as  
positive definite kinetic energy density.  
2
2
2
1
2
2
1
2
  (r)    (r)    (r)    
i
i
i
G(r) =  
  (r) =  
  
 +   
 +  
   
i
i
i
x  
y  
z
   
i
i
1
8
i  
2
i
i
Since  = (  ) = 2   , there is an equivalent form of G(r):  
.
i
i
i
i
i
i  
i
K(r) and G(r) are directly related by Laplacian of electron density  
1
9
2
General information  
2
(r) / 4 = G(r) K(r)  
8
Electrostatic potential from nuclear / atomic charges  
Z
A
V (r) =  
nuc  
r R  
A
A
where RA and ZA denote position vector and nuclear charge of atom A, respectively. If pseudo-  
potential is used, then Z is the number of explicitly expressed electrons. When .chg file is used as  
input, Z will stand for the atomic charges recorded in the file (the fourth column), at this time Vnu is  
useful for analyzing the difference between exact electrostatic potential and the electrostatic  
potential reproduced by atomic charges.  
Notice that at nuclear positions, this function will be infinite and may cause some numerical  
problems in program, hence at these cases this function always returns 1000 instead of infinity.  
9
Electron localization function (ELF)  
The larger the electron localization is in a region, the more likely the electron motion is  
confined within it. If electrons are completely localized, then they can be distinguished from the  
ones outside. Bader found that the regions which have large electron localization must have large  
magnitudes of Fermi hole integration. However, the Fermi hole is a six-dimension function and thus  
difficult to be studied visually. Becke and Edgecombe noted that spherically averaged like-spin  
conditional pair probability has direct correlation with the Fermi hole and then suggested electron  
localization function (ELF) in the paper J. Chem. Phys., 92, 5397 (1990). The ELF used in Multiwfn  
is generalized for spin-polarized system, see Acta Phys. -Chim. Sin., 27, 2786 (2011) for  
introduction. For a review, see Chapter 5 of Theoretical Aspects of Chemical Reactivity (2007).  
1
ELF(r) =  
2
1
+ [D(r) / D (r)]  
0
where  
2
2
(r)  
1
2
2
1
(r)  
D(r) =  
  (r) −  
+
i
i
8   (r)  
 (r)   
i
3
2
2 / 3  
5/ 3  
5/ 3  
D (r) = (6 ) [ (r) +  (r) ]  
0
10  
For closed-shell system, since  =  = (1/ 2) , D and D0 terms can be simplified as  
2
1
2
2
1 (r)  
D(r) =  
  (r) −  
i
i
8 (r)  
i
2
2 / 3  
5/ 3  
D (r) = (3/10)(3 ) (r)  
0
Savin et al. have reinterpreted ELF in the view of kinetic energy, see Angew. Chem. Int. Ed.  
Engl., 31, 187 (1992), which makes ELF also meaningful for Kohn-Sham DFT wavefunction and  
even multi-configuration wavefunction. The first term of D(r) can be seen as the exact kinetic  
2
0
2
General information  
energy density of the noninteracting electron system defined by KS-DFT theory, namely  
2
S(r) = (1/2)   (r) , while the second term is equivalent to Weizsäcker kinetic energy  
i
i
i
2
density  (r) = (1/8) / , therefore the D(r) = (r)  (r) reveals the excess  
W
S
W
kinetic energy density caused by Pauli repulsion and it is known as Pauli kinetic energy density. The  
D0(r) can be interpreted as Thomas-Fermi kinetic energy density TF, which is the exact kinetic  
energy density of noninteracting, uniform electron gas. Since D0(r) is introduced into ELF as  
reference, what the ELF reveals is actually degree of relative localization.  
ELF is within the range of [0,1]. A large ELF value means that electrons are greatly localized,  
indicating that there is a covalent bond, a lone pair or inner shells of the atom involved. ELF has  
been widely used for a wide variety of systems, such as organic and inorganic small molecules,  
atomic crystals, coordination compounds, clusters, and for different problems, such as the revealing  
atomic shell structure, classification of chemical bonding, verification of charge-shift bond,  
studying aromaticity.  
Notice that there is a deficiency of ELF, sometimes with r going beyond from molecular  
boundary, D(r) decreases faster than D0(r) and then ELF reaches 1 (completely localized). To  
-5  
overcome the problem, Multiwfn automatically adds a minimal value 10 to D(r), this treatment  
almost does not affect the ELF value in interesting regions. You can also disable this treatment by  
modifying “ELF_addminimal” in settings.ini to 0.  
Tsirelson and Stash put forward an approximate version of ELF in Chem. Phys. Lett., 351, 142  
(2002), in which the actual kinetic energy term in D(r) is replaced by Kirzhnits type second-order  
gradient expansion, that is  
2
2
2
(
1/2)   (r)  (r) + (1/72) (r) /(r) + (1/6) (r)  
i
i
TF  
i
so that ELF is totally independent from wavefunction, and then can be used to analyze electron  
density from X-ray diffraction data. Of course Tsirelson’s ELF can also be used to analyze electron  
density from quantum chemistry calculation, but is not as good as the ELF defined by Becke owing  
to the approximation introduced in kinetic energy term, however, qualitative conclusions can still  
be recovered in general. If you want to use Tsirelson’s definition of ELF, change “ELFLOL_type”  
in settings.ini from 0 to 1.  
If “ELFLOL_type” is set to 2, another formalism will be used:  
1
1
+ D(r)/ D (r)  
0
A real space function closely related to ELF is SCI index, it is very useful for identifying strong  
covalent bonds, see introduction of user-defined function 37 in Section 2.7.  
1
0 Localized orbital locator (LOL)  
This is another function for locating high localization regions likewise ELF, defined by  
Schmider and Becke in the paper J. Mol. Struct. (THEOCHEM), 527, 51 (2000).  
2
1
2
General information  
(r)  
LOL(r) =  
1
+(r)  
where  
D (r)  
0
(r) =  
2
(
1/ 2)   (r)  
i
i
i
D0(r) for spin-polarized system and closed-shell system are defined in the same way as in ELF.  
LOL has similar expression compared to ELF. Actually, the chemically significant regions that  
highlighted by LOL and ELF are generally qualitative comparable, while Jacobsen pointed out that  
LOL conveys more decisive and clearer picture than ELF, see Can. J. Chem., 86, 695 (2008).  
Obviously LOL can be interpreted in kinetic energy way as for ELF, however LOL can also be  
interpreted in view of localized orbital. Small (large) LOL value usually appears in boundary (inner)  
region of localized orbitals because the gradient of orbital wavefunction is large (small) in this area.  
The value range of LOL is identical to ELF, namely [0,1].  
Multiwfn also supports the approximate version of LOL defined by Tsirelson and Stash (Acta.  
Cryst., B58, 780 (2002)), namely the actual kinetic energy term in LOL is replaced by second-order  
gradient expansion, as what they do for ELF. This Tsirelson’s version of LOL can be activated by  
setting “ELFLOL_type” to 1.  
For special reason, if “ELFLOL_type” in settings.ini is changed from 0 to 2, another formalism  
1
will be used: LOL(r) =  
.
2
1
+ [1/(r)]  
11 Local information entropy  
Information entropy is a quantification of information, this theory was proposed by Shannon  
in his study of information transmission in noise channel, nowadays its application has been largely  
widened to other areas, including theoretical chemistry. For example, Aslangul and coworkers  
attempted to decompose diatomic and triatomic molecules into mutually exclusive space by  
minimizing information entropy (Adv. Quantum Chem., 6, 93 (1972)), Parr et al. discussed the  
relationship between information entropy and atom partition as well as molecular similarity (J. Phys.  
Chem. A, 109, 3957 (2005)), Noorizadeh and Shakerzadeh suggested using information entropy to  
study aromaticity (Phys. Chem. Chem. Phys., 12, 4742 (2010)). The formula of Shannon’s  
information entropy for normalized and continuous probability function is  
S(x) = − P(x)ln P(x)d x  
For chemical system, if P(x) is replaced by (r)/N, then the integrand may be called local  
information entropy of electrons  
N
(r) (r)  
ln  
S(r) = −  
N
where N is the total number of electrons in current system. Integrating this function over whole  
space yields information entropy.  
2
2
2
General information  
1
2 Total electrostatic potential (ESP)  
ZA  
(r')  
r r'  
V (r) =V (r) +V (r) =  
dr'  
ESP  
nuc  
ele  
r R  
A
A
where Z is nuclear charge, the index A cycles over all atoms. If pseudo-potential is used, then ZA is  
the number of explicitly represented electrons. The atomic unit (a.u.) of ESP is Hartree/e, where e  
is elementary charge. Other commonly used unit are eV/e and kcal/(mole), however for simplicity,  
in Multiwfn they are printed as eV and kcal/mol, respectively. The value in eV/e unit is equal to the  
value in SI unit (J/C).  
This function measures the electrostatic interaction between a unit point charge placed at r and  
the system of interest. A positive (negative) value implies that current position is dominated by  
nuclear (electronic) charges. Molecular electrostatic potential (ESP) has been widely used for  
prediction of nucleophilic and electrophilic sites for a long time. It is also valuable in studying  
hydrogen bonds, halogen bonds, molecular recognitions and the intermolecular interaction of  
aromatics. Moreover, based on statistical analysis, Murray and coworkers found a set of functions  
called GIPF, see J. Mol. Struct. (THEOCHEM), 307, 55, which connects ESP in molecular surface  
and macroscopic properties. There are a lot of reviews on ESP, interested readers are suggested to  
consult WIREs Comput. Mol. Sci., 1, 153 (2011), Theor. Chem. Acc., 108, 134 (2002), Chapter 17  
of the book Chemical Reactivity Theory-A Density Functional View, the entry "Electrostatic  
Potentials: Chemical Applications" (page 912) in the book Encyclopedia of Computational  
Chemistry and Chapter 7 of the book Reviews in Computational Chemistry vol.2.  
By the way, if you only want to obtain the electrostatic potential contributed by electrons,  
namely Vele(r), you can use the 14th user-defined function. If you want to omit contribution of  
specific nucleus during evaluating VESP(r), use 39th user-defined function. See corresponding  
entries in Section 2.7 for details.  
Currently there are two sets of internal code in Multiwfn for evaluating ESP, they can be  
selected by "iESPcode" in settings.ini. iESPcode=1 corresponds to the old and slow code written by  
Tian Lu, iESPcode=2 (default) corresponds to the newer and fast code provided by Jun Zhang based  
on his LIBRETA electron repulsion integral library. If the latter code is employed, citing J. Chem.  
Theory Comput., 14, 572 (2018) is recommended. In addition, in many kinds of analyses, if you are  
using .fch/fchk as input file and Gaussian has been installed on your machine, you can allow  
Multiwfn to invoke the cubegen utility in Gaussian package to calculate ESP, the speed is usually  
even faster than "iESPcode=2", see Section 5.7 for detail.  
Note: Some functions in Multiwfn modify orbital occupation. For example, user can use subfunction 26 of main  
function 6 to manually modify occupation number of specific orbitals. Only the ESP calculated by internal code with  
"
iESPcode=1" directly reflect the effect of the modification on occupation. In the case of using "iESPcode=2", in  
order to represent the effect of modification in the ESP calculation, you should first export the modified wavefunction  
to .wfn/wfx/molden/mwfn (via subfunction2 of main function 100), then reboot Multiwfn and load the file.  
1
3 Reduced density gradient (RDG)  
RDG and sign(2)are a pair of very important functions for revealing weak interaction  
regions, they are collectively employed in NCI method, see J. Am. Chem. Soc., 132, 6498 (2010)  
for detail, and application examples in Section 3.23.1. RDG is defined as  
1
(r)  
RDG(r) =  
2
1/3  
4/3  
2
(3 ) (r)  
2
3
2
General information  
Notice that there is a parameter “RDG_maxrho” in settings.ini, if the value is set to x, then  
RDG function will be set to an arbitrary big value (100.0) where the electron density is larger than  
x. This mechanism allows uninteresting regions to be shielded when viewing isosurfaces of weak  
interaction regions. By default x is 0.05, you can nullify this treatment by setting the parameter to  
zero.  
1
4 Reduced density gradient (RDG) with promolecular approximation  
Weak interaction has significant influence on conformation of macromolecules, binding mode  
of proteins and ligands; however reproduction of electron density by ab initio and grid data  
calculation of RDG for such huge systems are always too time-consuming. Fortunately, it is found  
that weak interaction analysis under promolecular density is still reasonable. Promolecular density  
is simply constructed by superposing electron densities of free-state atoms and hence can be  
evaluated extremely rapidly  
pro  
free,fit  
A
(r) =  
(r  R )  
A
A
free,fit  
A
where  
(r) is pre-fitted spherically averaged electron density of atom A. The atomic  
densities for H~Lr are built-in data of Multiwfn, among which the data for H~Ar are taken from  
supplemental material of J. Am. Chem. Soc., 132, 6498 (2010), while those for other elements are  
evaluated according to the description in Appendix 3. For elements heavier than Lr the promolecular  
approximation is not currently available.  
For efficiency consideration, if contribution from H, C, N or O atom to the function value at a specific point is  
less than 0.00001, then the contribution will not be calculated, for huge system this treatment improves efficiency  
several times and the result is almost unperturbed. You can also disable this treatment by setting “atomdenscut” in  
settings.ini to 0.  
The parameter “RDGprodens_maxrho” in settings.ini is the counterpart of “RDG_maxrho” in  
the case of promolecular approximation.  
1
5 sign(2)  
(r) = sign[ (r)](r)  
2
where sign[λ2(r)] means the sign of the second largest eigenvalue of electron density Hessian matrix  
at position r.  
1
6 sign(2)with promolecular approximation  
The actual electron density used to evaluate sign[λ2(r)] is approximated by promolecular  
electron density, see the description in real space function 14.  
1
7 Exchange-correlation density, correlation hole and correlation factor  
These functions involve advanced topics, in order to clarify their physical meanings and to  
avoid confusion of the symbols used in a wide variety of literatures, I think it is worth to use much  
more texts to introduce theoretical background. For more detail discussions, please consult Chapter  
2
of A Chemist's Guide to Density Functional Theory 2ed and Chapter 5 of Methods of molecular  
quantum mechanics (2ed, McWeeny).  
2
4
2
General information  
=
====== Theoretical basis ======  
Pair density is defined as  
2
(r ,r ) = N(N 1)  
x ...x ) d d dx dx ...dx  
1
2

2
N
1
2
3
4
N
where Ψ is system wavefunction, r is space coordinate, σ is spin coordinate, x is space-spin  
coordinate. Pair density denotes the probability that finding an electron at r1 and another electron at  
r2, regardless of the spin type. If we perform double-integration for pair density over the whole  
space, we will get N(N-1), reflecting the nature that there are N(N-1) electron pairs in present system.  
Obviously, pair density can be decomposed to contributions from different spin types of electron  
pairs  
  
  
  
(r ,r ) =  (r ,r ) + (r ,r ) + (r ,r ) + (r ,r )  
1
2
1
2
1
2
1
2
1
2
If the electron motions are completely independent with each other, then the probability density  
of finding two electrons with spin σ1 at r1 and with σ2 at r2 respectively should simply be  
1  
2
(r ) (r ). Of course, in real world electrons always interacting with each other, so their  
1
2
motions are correlated. The pair density thereby should be corrected by exchange-correlation  
density Г  
12  
   
1 2  
XC  
1
2
(r ,r ) =  (r ) (r ) +  (r ,r )  
1
2
1
2
1
2
If we have already known that an electron with spin σ1 presents at r1, then the probability of  
finding another electron with spin σ2 at r2 is known as conditional probability (This function is also  
known as Lennard-Jones function)  
1  
2  
   
XC  
1
2
(r ,r )  
(r ,r )  
12  
1
2
2
1
2
(r ,r ) =  
=  (r ) +  
1
2
1  
2
1
(r )  
 (r )  
1
1
Correlation hole reveals the decrease of probability of finding another electron with spin σ2 at  
r2 when an electron with spin σ1 presents at r1 owing to electron correlation effect  
1  
XC  
2  
   
1 2  
(r ,r )  
(r ,r )  
1 2  
1
1  
XC  
2  
1
2
   
2
1
2
2
h
(r ,r ) =  
=  (r ,r )   (r ) =  
  (r )  
1
2
1  
1
2
2
2
(r )  
 (r )  
1
1
Correlation factor is a function closely related to correlation hole  
1  
XC  
2  
   
XC  
1
2
h
(r ,r )  
(r ,r )  
1  
XC  
2  
1
2
1
2
2
f
(r ,r ) =  
=
1
2
2  
1
(r )  
 (r ) (r )  
2
1
2
Collectively, one can write out  
12  
   
XC  
   
1 2  
XC  
1
2
1
1
2
1
2
(r ,r ) =  (r ) (r ) +  (r )h (r ,r ) =  (r ) (r ) [1+ f (r ,r )]  
1
2
1
2
1
1
2
1
2
1
2
ГXC can be decomposed to the sum of exchange correlation (also called as Fermi correlation)  
part ГX and Coulomb correlation part ГC, therefore hXC can be straightforwardly decomposed to  
exchange hole hX (also called as Fermi hole) and Coulomb hole hC as follows. Likewise, fXC can be  
decomposed to fX and fC  
2
5
2
General information  
1  
XC  
2  
   
X
   
1 2  
C
1
2
(r ,r ) =  (r ,r ) +  (r ,r )  
1
2
1
2
1
2
12  
XC  
   
X
   
C
1
2
1
2
h
(r ,r ) = h (r ,r ) + h (r ,r )  
1
2
1
2
1
2
1  
XC  
2  
   
X
   
C
1
2
1 2  
f
(r ,r ) = f (r ,r ) + f (r ,r )  
1
2
1
2
1
2
Fermi correlation only presents between like-spin electrons; while Coulomb correlation occurs  
between any two electrons. Fermi correlation is much more important than Coulomb correlation,  
even at Hartree-Fock level, Fermi correlation is always well represented due to the anti-symmetry  
requirement of Slater determinant, while Coulomb is completely ommited. Only post-HF  
wavefunction is capable to simultaneously exhibit Fermi and Coulomb correlation effects.  
Commonly we only focus on Fermi hole while neglecting Coulomb hole. One can easily show that  
integration of hX over whole space is exactly equal to -1, hence Fermi correlation perfectly avoided  
self-pairing problem, which may cause significant rise in system energy; while the integration for  
hC is zero, this is mainly why Coulomb correlation has less influence on system energy.  
It is also rather straightforward to obtain the pair density and conditional probability when only  
exchange correlation or Coulomb correlation is taken into account.  
The total π, Ω, ГXC (or ГX, ГC) and hXC (or hX, hC) for an electron with spin σ, regardless the  
spin of another electron can be defined as  
,tot  
,tot  
  
  
(r ,r ) =  (r ,r ) + (r ,r )  
1
2
1
2
1
2
  
  
(r ,r ) =  (r ,r ) +  (r ,r )  
1
2
1
2
1
2
XC  
,tot  
  
XC  
  
XC  
(r ,r ) =  (r ,r ) +  (r ,r )  
1
2
1
2
1
2
XC  
,tot  
  
XC  
  
XC  
h
(r ,r ) = h (r ,r ) + h (r ,r )  
1
2
1
2
1
2
=
====== Technical aspects ======  
For single-determinant wavefunctions, exchange-correlation density for an  electron can be  
explicitly written as  
occ occ  
XC  
,tot  
  
XC  
*
i
*
j
(r ,r ) =  (r ,r ) = −  
 (r ) (r ) (r ) (r )  
1
2
1
2
  
1
2
j
1
i
2
ij  
XC  
  
XC  
Note that  (r ,r ) =  (r ,r ) = 0 for this type of wavefunction. To obtain the  
1
2
1
2
expression for β electron, just replace by β, similarly hereafterin.  
For post-HF wavefunction, exact evaluation of pair density requires two-particle density matrix  
(2PDM). Unfortunately 2PDM is very difficulty to be obtained, mainstream quantum chemistry  
packages including Gaussian cannot directly output it. In Multiwfn, exchange-correlation density  
for post-HF wavefunction is approximately evaluated by natural orbital formalism. Note that the  
approximate method is not unique, see J. Chem. Theory Comput., 6, 2736 (2010) for discussion.  
The most popular form among them, which is firstly derived by Müller, is currently implemented  
in Multiwfn as below. See Phys. Lett. A, 105, 446 (1984), also see Mol. Phys., 100, 401 (2002) for  
extensive discussion (especially equation 32).  
2
6
2
General information  
,tot  
*
i
*
j
(r ,r ) = −  
  (r ) (r ) (r ) (r )  
XC,approx  
1
2
  
i
j
1
2
j
1
i
2
ij  
,tot  
Obviously, if occupation numbers of natural spin orbitals are integer (0 or 1), then  
XC,approx  
,tot  
reduces to single-determinant form. so  
can be regarded as a general form to evaluate  
XC,approx  
exchange-correlation density. Note that post-HF wavefunction has taken Coulomb correlation  
  
between unlike-spin electrons into account, however there is no way to separate  
and  
XC,approx  
,tot  
from  
.
XC,approx  
XC,approx  
The exchange-only part of Г for post-HF wavefunction can be approximately evaluated as  
below (of course, there is no exchange correlation between β electron pair)  
,tot  
  
X,approx  
*
i
*
j
(r ,r ) =   
(r ,r ) = −  
  (r ) (r ) (r ) (r )  
X,approx  
1
2
1
2
  
i
j
1
2
j
1
i
2
i j  
So Coulomb-only part of Г can be evaluated as (including both  and β pair contributions)  
,tot  
,tot  
XC,approx  
  
(r ,r ) =   
(r ,r ) −   
(r ,r )  
X,approx 1 2  
C,approx  
1
2
1
2
*
i
*
j
=
[(   ) (r ) (r ) (r ) (r )]  
i
j
i
j
1
2
j
1
i
2
ij  
Since we already have explicit expression to calculate ГXC term, other quantities introduced  
eariler can be easily computed according to the relationships between them and ГXC. Recall that  
2
(r) =   (r)  
.
i
i
i  
,tot  
Postscript: One can show that  
(r ,r ) also exactly holds the requirement that  
XC,approx 1 2  
integration of r2 over the whole space is equal to   (r ). However, in common, integrating r2  
1
,tot  
,tot  
C,approx  
over the whole space for  
(r ,r ) and  
(r ,r ) deviate from   (r ) and  
X,approx  
1
2
1
2
1
X
,tot  
,tot  
zero, respectively, which are basic properties of exact form of  
and C  
.
=
====== Usage ======  
In Multiwfn, r1 is seen as reference point and r2 is seen as variable, to define the coordinate of  
reference point, just modifying “refxyz” in settings.ini before booting up.  
“paircorrtype” parameter in settings.ini controls which type of correlation effect will be taken  
into consideration in calculation of Г. Since correlation hole and correlation factor are calculated  
based on Г, this setting also affects them. For single-determinant wavefunction, =1 and =3 are  
equivalent and =2 is meaningless, because Coulomb correlation is completely ommited.  
=
=
=
1: Only consider exchange correlation  
2: Only consider Coulomb correlation  
3: Consider both exchange and Coulomb correlation  
“pairfunctype” parameter in settings.ini controls which function and which spin will be  
2
7
2
General information  
calculated by real space function 17, see below, those enclosed by parentheses are for single-  
determinant wavefunction cases. Of course, for closed-shell system, the results for spin are exactly  
identical to those for β spin. Note that correlation factor for post-HF wavefunction case is undefined.  
,tot  
  
,tot  
  
=
=
1:  
h
(
(
h
f
)
=2:  
h
(
h
)
  
4: Undefined  
)
=5: Undefined  
(
f
)
,tot  
  
,tot  
  
=7:  
(
)
=8:  
(
)
  
  
  
=
10:  
when paircorrtype =1  
(
)
=11:  
when paircorrtype =1  
(
)
any,any  
any,any  
(  
=
12:  
)
For example, if paircorrtype=1 and pairfunctype=2, for post-HF wavefunction, what will be  
X
,tot  
  
X
calculated is  
h
(r ,r ) , which is equivalent to h (r ,r ) since β electron pairs have no  
1
2
1
2
exchange correlation. This quantity can be interpreted as Fermi hole at r2 caused by a  electron  
present at r1.  
1
8 Average local ionization energy  
Average local ionization energy is written as (Can. J. Chem., 68, 1440 (1990))  
i (r) | |  
i
i
I(r) =  
(r)  
where i(r) and i are the electron density function and orbital energy of the ith molecular orbital,  
respectively. Hartree-Fock and typical DFT functionals such as B3LYP are both suitable for  
̅
̅
computing . Lower value of  indicates that the electrons at this point are more weakly bounded.  
̅
 has widespread uses, for example revealing atomic shell structures, measuring electronegativity,  
predicting pKa, quantifying local polarizability and hardness, but the most important one may be  
predicting reactive site of electrophilic or radical attack. It is proved that the minima of ALIE on  
vdW surface are good indicator to reveal which atoms are more likely to be the preferential site of  
̅
electrophilic or radical attack.. There are also many potential uses of  waiting for further  
̅
investigation. Excellent reviews of  have been given by Politzer et al, see J. Mol. Model., 16, 1731  
2010) and Chapter 8 of the book Theoretical Aspects of Chemical Reactivity (2007).  
(
̅
Since  is dependent upon orbital energies, while orbital energy for post-HF wavefunction is  
̅
undefined, therefore when post-HF wavefunction is used,  will be simply outputted as zero  
everywhere.  
̅
If the parameter "iALIEdecomp" in settings.ini is set to 1, in main function 1, not only  will  
be outputted, the contribution from each occupied MOs will also be outputted, the contribution due  
to MO i is defined as  
i (r) | |  
i
I (r) =  
i
(r)  
2
8
2
General information  
1
9 Source function  
Source function was proposed by Bader and Gatti, see Chem. Phys. Lett., 287, 233 (1998).  
2
(r')  
SF(r,r') = −  
4 r r'  
It can be shown that  
(r) = SF(r,r')dr'  
where r' ranges entire space. This equation suggests that SF(r,r') represents the effect of electronic  
Laplacian at r' on electron density at r. If at r' the electron is concentrated (namely Laplacian is  
negative, also suggesting potential energy dominates kinetic energy), then r' will be a source for the  
electron density at r; conversely, if at r' the electron is depleted, then r' diminish the electron density  
at r. If the range of integration in above formula is restricted to a local region and we get a value  
S(r,), then S(r,)/ρ(r)100% can be regarded as the contribution from region  to the electron  
density at r. Source function has many uses, when it is used to discuss bonding problems, usually  
bond critical points are taken as r. A very comprehensive review of theoretical background and  
applications of source function is given by Gatti in Struct. & Bond., 147, 193 (2010).  
In Multiwfn, source function has two modes: (1) If "srcfuncmode" in settings.ini is set to 1,  
then r' is regarded as variable, while r is regarded as fixed reference point, whose coordinate is  
determined by “refxyz” in settings.ini. This is default mode, useful to study effect of electronic  
Laplacian at everywhere on specific point (2) If "srcfuncmode" is set to 2, then r becomes variable  
and r' becomes reference point, this is useful to study effect of electronic Laplacian at specific point  
on everywhere.  
2
When r=r', this function will return − (r')/0.001 to avoid numerical problem.  
2
0,21 Electron delocalization range function EDR(r;d) and orbital overlap distance  
function D(r)  
Content of this section and all analysis code of EDR(r;d) and D(r) was kindly contributed by Arshad Mehmood  
and then slightly adapted by Tian Lu.  
The electron delocalization range function EDR(r;d) (J. Chem. Phys., 141, 144104 (2014); J.  
Chem. Theory Comput., 12, 3185 (2016); Angew. Chem. Int. Ed., 56, 6878 (2017)) quantifies the  
extent to which electrons at point r in a wave function occupy orbital lobes of size d. EDR(r;d) is  
built from the nonlocal one-particle reduced density matrix (1-RDM)  (r,r') = (r)(r')  
i
i
as  
EDR(r;d) = g (r,r') (r,r')dr'  
d
3/4  
2
 |r  r' |   
2   
1/2  
g (r,r') =  
(r)exp −  
d
2
2
d   
d
Here (r) is the electron density at point r. The prefactor ensures that the EDR is between -1 and  
+
1. The Multiwfn implementation evaluates the EDR on grids, for a single global input value of  
distance d. Section 4.5.6 illustrates an example.  
At each point, the orbital overlap distance function D(r)=argmaxdEDR(r;d) corresponds to the  
distance d that maximizes EDR(r;d). Compact, chemically "hard" regions of small D(r) are  
2
9
2
General information  
distinguished from diffuse, chemically "soft" regions of large D(r). Atomic averages of valence-  
electron D(r) complement the information obtailed from atomic partial charges. Plots of D(r) on  
density isosurfaces, and quantitative analysis of such surfaces, complements molecular electrostatic  
potentials. The Multiwfn implementation evaluates EDR(r;di) on a grid of distances di, then uses a  
three-point numerical fit to find the maximum. Sections 4.5.7 and 4.12.8 illustrate example  
calculations.  
2
2, 23 g function defined in Independent Gradient Model (IGM) method  
The g function is defined as below in the original paper of Independent Gradient Model (IGM)  
method (Phys. Chem. Chem. Phys., 19, 17928 (2017)):  
IGM  
g(r) = g (r)  g(r) =  
abs[ (r)]   (r)  
A
A
A
A
where A stands for atomic density of atom A, the abs() operator makes each of the three gradient  
components to be its absolute value. Specifically, Multiwfn supports two ways to calculate the g:  
Real space function 22: Corresponding to the g calculated under promolecular  
approximation, namely the A corresponds to spherically density of atom A in its isolated state, in  
this case only geometry information is needed to be supplied by input file, since the atomic densities  
are built-in data in Multiwfn (see Appendix 3 for detail).  
Real space function 23: Corresponding to the g calculated based on Hirshfeld partition of  
actual molecular electron density, thus wavefunction must be supplied by input file. This definition  
was proposed by me. In this case the A is defined as wA, where  is molecular electron density  
calculated in usual way, wA is Hirshfeld weighting function of atom A (see Section 3.9.1 for its  
definition).  
The g function at bond critical point in weak interaction region is shown to be closely related  
to interaction strength. This function can also be plotted as plane map or isosurface map to reveal  
all bonding regions. Very detailed introduction of IGM method is given in Section 3.23.5, and if you  
want to study weak interaction due to specific two or more fragments, you should use the function  
described in this section.  
2
.7 User-defined real space function  
In real space function selection menu you can find a term named "User-defined real space  
function". In order to avoid lengthy list of real space functions, numerous uncommonly used real  
space functions are not explicitly presented in the list. However, if you want to use them, you can  
set "iuserfunc" parameter in settings.ini to one of the indices (see below), then the user-defined  
function will be pinned to corresponding function. For example, before running Multiwfn, if you  
set "iuserfunc" to 2, then the user-defined real space function will be equivalent to density of beta  
electrons. An alternative way of setting user-defined function is inputting iu in the main manu, you  
can input the index of the user-defined function.  
In fact, the user-defined function corresponds to “userfunc” function in source file function.f90.  
By filling proper code yourself, the functions supported by Multiwfn can be easily extended. For  
3
0
 
2
General information  
examples, after filling the code "userfunc=fgrad(x,y,z,'t')**2/8/fdens(x,y,z)" into proper place of  
“function userfunc” in function.f90 and recompile Multiwfn, the integrand of Weizsäcker kinetic  
2
energy functional, namely  [] = (r) /[8(r)]dr , will be ready for use. When you  
W
write your own code you can refer to existing codes, a list of built-in functions is given in Appendix  
2
of this manual.  
Prebuilt user-defined functions  
-2 Promolecular density calculated based on built-in sphericalized atomic densities. You can check  
Appendix 3 on how these atomic densities are produced. Options -3 and -4 of main function 6 could  
be used to exclude contribution of some atoms to promolecular density.  
Please note that this promolecular density is slightly different to the promolecular density used in real space  
functions 14 and 16, because in which the atomic densities from H to Ar are directly taken from the original paper  
of NCI method rather than calculated according to the method described in Appendix 3.  
-1 Value evaluated by trilinear interpolation from grid data. The grid data can be generated by main  
function 5, or loaded from .cub/.grd file when Multiwfn boot up. This function is quite useful. For  
example, by making use of this function you can plot the grid data as curve map and plane map via  
main functions 3 and 4, respectively; you can also gain atomic contribution to the total value via  
subfunction 1 of fuzzy atomic space analysis module (main function 15)  
-3 The same as -1, but use 3D cubic B-spline interpolation instead. The cost is higher than trilinear  
interpolation but smoother and usually more accurate especially when grid spacing is relatively large.  
However, the function interpolated via cubic B-spline shows unwanted feature where the variation of actual  
function cannot be well approximated by polynomial and in this case the result is even worse than trilinear  
interpolation. For example, cusp character of electron density at nucleus cannot be faithfully represented. In addition,  
the function shows fluctuant feature when the actual function shows a steep slope close to a region of small slope,  
or when the grid points inadequately represents the actual function.  
0
1
This function corresponds to a constant value of 1.0  
s
Alpha density:  (r) = [(r) +  (r)]/ 2  
s
2
3
Beta density:  (r) = [(r)   (r)]/ 2  
2
2
2
Integrand of electronic spatial extent <R**2>: (r) (x + y + z )  
2
2
1
8
(r)  
1  (r)  
4 (r)  
4
5
Weizsäcker potential (closed-shell form): V (r) =  
W
2
(r)  
2
Integrand of Weizsäcker functional (closed-shell form):  (r) = (r) /[8(r)], which is  
W
the exact kinetic energy density of any one-orbital system (one or two electrons, or any number of  
bosons). If you need spin polarized form, use user-defined function 1200.  
2
2
2
6
Radial distribution function of electron density: 4  (r) (x + y + z ) . Clearly,  
spherical symmetry of electron density is assumed.  
7
8
Local temperature, in kB-1 (PNAS, 81, 8028): T(r) =[2G(r)]/[3(r)]  
Average local electrostatic potential (J. Chem. Phys., 72, 3027 (1980)): V (r) / (r)  
ESP  
3
1
2
General information  
9
1
Shape function: (r)/N, where N is the total number of electrons  
0 Potential energy density (Virial field): V(r) = −K(r) G(r) = (1/ 4) (r)  2G(r)  
2
11 Electron energy density: E(r) = G(r) +V(r) = −K(r) (Sometimes E is written as H)  
1
1
2 Local nuclear attraction potential energy:  (r) V (r)  
nuc  
3 Kinetic energy density per electron: G(r)/ (r) This quantity at bond critical point is useful  
to discriminate covalent bonding and closed-shell interaction  
4 Electrostatic potential from electrons: V (r) =V (r) V (r) = −  
r r'  
(r')  
1
dr' . The  
ele  
ESP  
nuc  
negative of this function is also known as Hartree potential.  
2
1
5 Bond metallicity:  (r) = (r)/ (r) At bond critical point,  
>1 indicates metallic  
J
J
interaction, see J. Phys.: Condens. Matter, 14, 10251 (2002).  
2
2/3  
5/3  
3
6(3π ) (r)  
1
6 Dimensionless bond metallicity:  (r) =  
At bond critical point, larger  
m
2
5
(r)  
value corresponds to stronger metallicity of the bond, see Chem. Phys. Lett., 471, 174 (2009).  
7 Energy density per electron: E(r)/(r), this value at BCP is called as bond degree parameter (BD),  
1
see J. Chem. Phys., 117, 5529 (2002) for detail, in which the authors advocate that for covalent  
bonds (viz. EBCP<0), the BD renders covalence degree, and the stronger the interaction the greater  
the BD magnitude; while for closed-shell interactions (viz. EBCP>0), the BD can be viewed as  
softening degree, and the weaker the interaction the larger the BD magnitude.  
1
8 Region of Slow Electrons (RoSE), which is defined in Chem. Phys. Lett., 582, 144 (2013) and  
D (r)  G(r)  
0
has a pattern very similar to ELF, with value space of [-1,1]:  =  
D (r) + G(r)  
0
1
9 Single exponential decay detector (SEDD), which is highly analogous to ELF. Its updated  
definition in J. Chem. Theory Comput., 10, 3745 (2014) is implemented:  
2
2
((r)/ (r))    
SEDD(r) = ln 1+  
(r)  
   
2
0 Density overlap regions indicator (DORI), defined in J. Chem. Theory Comput., 10, 3745 (2014):  
2
2
6
DORI(r) =(r)/[1+(r)], where (r) =[((r)/ (r)) ] /[(r)/ (r)] . DORI is  
mainly used to reveal interatomic interaction regions, see Section 3.23.3 for more information  
2
2
2
2
1 Integrand of X component of electric dipole moment: x(r)  
2 Integrand of Y component of electric dipole moment: y(r)  
3 Integrand of Z component of electric dipole moment: z(r)  
4 Approximate form of DFT linear response kernel for closed-shell (Phys. Chem. Chem. Phys., 14,  
3
2
2
General information  
*
*
j
i (r ) (r ) (r ) (r )  
1
j
1
2
i
2
3
960 (2012)): (r ,r )  4  
1
2
   
i    
iocc jvir  
j
2
5 Magnitude of fluctuation of the electronic momentum: P(r) /[2(r)], which is  
useful to discuss bonding and very similar to reduced density gradient, see Theor. Chem. Acc., 127,  
3
93 (2010)  
5
/3  
2
6 Integrand of Thomas-Fermi kinetic energy functional (closed-shell form): TF(r)=CTF(r) ,  
2
2/3  
where CTF=(3/10)(3 ) =2.871234. This is the exact kinetic energy density of noninteracting,  
uniform electron gas. If you need spin polarized form, use user-defined function 1200.  
2
 (r)   
i
i
ivir  
2
7 Local electron affinity: EA (r) =  
, which is very similar to average local  
L
2
i (r)  
ivir  
ionization energy, but i cycles all unoccupied orbitals. See J. Mol. Model., 9, 342 (2003). Illustration  
of applying this function for a practical molecule is given in Section 4.12.13.  
2
8 Local Mulliken electronegativity:  (r) = [I(r) + EA (r)]/ 2 , see J. Mol. Model., 9, 342  
L
L
(2003)  
2
9 Local hardness:  (r) = [I(r)  EA (r)]/ 2, see J. Mol. Model., 9, 342 (2003)  
L
L
Note: In order to use EAL, L and L, the wavefunction must contain both occupied and unoccupied  
orbitals, therefore such as .mwfn, .fch, .molden and .gms rather than .wfn/.wfx file must be used.  
Meanwhile, "idelvirorb" in settings.ini must be set to 0. Besides, these quantities are meaningful  
only when minimal basis set is used.  
3
0 Ellipticity of electron density: (r) =  
 (r)/ (r) 1, where 1 and 2 are the lowest and  
1
2
the second lowest eigenvalues of Hessian matrix of , respectively. At bond critical point (BCP), 1  
and 2 are both negative and exhibit the curvatures of electron density in the two orthogonal  
directions that perpendicular to the bond. The at BCP is often viewed as an indicator of asymmetric  
distribution of electron density around the bond, the higher deviation to axisymmetric distribution,  
the larger the value at BCP.  
3
1 eta index: (r) =  (r) /  (r) , where 1 and 3 are the lowest and the highest eigenvalues  
1
3
of Hessian matrix of , respectively. It was argued that the value of  at bond critical point is less  
than unity for closed shell interactions and increases with increasing covalent character, see Angew.  
Chem. Int. Ed., 53, 2766 (2014), as well as J. Phys. Chem. A, 114, 552 (2010) for discussions.  
3
2 Modified eta index by Tian Lu: '(r) =  (r) / (r) 1. Similar to , but negative value of  
1
3
' corresponds to closed shell interactions.  
3
3 Potential acting on one electron in a molecule (PAEM), see J. Comput. Chem., 35, 965 (2014):  
Z
1
(r,r' )  
A
VPAEM (r) = −  
+
dr' , π is pair density. It can be further written as  
|  
r  R | (r) | r  r'|  
A
A
3
3
2
General information  
XC  
,tot  
,tot  
1
(r,r') + XC (r,r')  
VPAEM (r) = −VESP (r) +V (r) = −V (r) +  
dr' , where  
XC  
ESP  
(r)  
| r r'|  
VESP is the total molecular electrostatic potential and VXC is exchange-correction potential. In  
Multiwfn, the exchange-correlation density Γ is evaluated in terms of Müller approximation, see  
part 17 of Section 2.6 for detail. It was shown in the original paper that PAEM may be useful to  
distinguish covalent and noncovalent interactions. An example of application of PAEM can be found  
in Section 4.3.3.  
3
4 The same as 33, but now VXC directly corresponds to DFT exchange-correlation potential. Its  
specific form can be chosen via "iDFTxcsel" parameter, see the end of this section for detail. This  
form of PAEM is several times more computationally economical than 33 but only supports closed-  
shell wavefunction.  
3
5 |V(r) | /G(r) . In J. Chem. Phys., 117, 5529 (2002) it was proposed that this quantity at BCP  
can be used to discriminate interaction types. <1 corresponds to closed-shell interaction; >2  
corresponds to covalent interaction; while >1 and < 2 corresponds to intermediate interaction.  
3
6 On-top pair density, namely the two positions of the pair density are identical: (r,r). See such  
as Int. J. Quantum Chem., 61, 197 (1995) for discussion. "paircorrtype" parameter in settings.ini  
mentioned earlier affects the result.  
3
7 The strong covalent interaction index (SCI) defined in J. Phys. Chem. A, 122, 3087 (2018) and  
further examined in J. Mol. Model., 24, 213 (2018). This function was shown to be very useful for  
identifying very strong covalent bonds. SCI is expressed as SCI(r) =1/ (r) , where  
(r) = [ (r)  (r)]/ . The meaning of S, W and TF are described in Section 2.6 where  
S
W
TF  
ELF is introduced. It is easy to find SCI index is closely related to ELF, which can be written as  
2
ELF(r) =1/[1+ (r)]  
.
3
8 The angle between the second eigenvector of Hessian of electron density and the vector  
perpendicular to a given plane, which can be defined by option 4 of main function 1000; the unit  
vector normal to the plane will be shown on screen, assume that you use three points A, B, C to  
define the plane and you get vector u, but what you really want is -u, you can then input the points  
again but in reverse sequence, i.e. C, B, A. In J. Phys. Chem. A, 115, 12512 (2011) this quantity  
along bond paths was used to reveal π interaction.  
3
9 Electrostatic potential without contribution of a specific nucleus:  
Z
(r')  
r r'  
A
V (r) =  
dr', where the nucleus K can be set by option 3 of main function  
n
r R  
AK  
A
1
000 (which is hidden in main interface but can be chosen). Vn is a useful quantity, for example if  
K is chosen as index of a hydrogen, then the value correlates with its pKa, because in this case Vn  
approximately reflects the binding energy of a proton at the position of K and rest of the system; In  
addition, J. Phys. Chem. A, 118, 1697 (2014) showed that Vn can be used to quantitatively predict  
interaction energy of the weak interactions dominated by electrostatic effect (viz. H-bonds, halogen-  
bonds, dihydrogen bonds), see Section 4.1.2 for introduction and example.  
It is worth to mention that in main function 1, when you request Multiwfn to print properties at nuclear position  
3
4
2
General information  
of an atom, the electrostatic potential without contribution of nuclear charge of this atom is automatically printed.  
2
4
0 Steric energy density: (r) /[8(r)] , which is equivalent to integrand of Weizsäcker  
functional.  
1 Steric potential:  (r) =  
2
2
1
8
| (r) |  
1  (r)  
4
2
. The negative of this quantity is also  
s
[(r) + ]  
4 (r) +   
known as one-electron potential (OEP). Notice that the is a very small term artifically introduced  
to avoid the denominator converges to zero faster than nominator. The value of can be determined  
by "steric_addminimal" in settings.ini. If is set to 0, then the original expression of steric potential  
is recovered.  
2
4
4
2 Steric charge: q (r) =   (r) /(4)  
.
s
S
3 The magnitude of steric force: F (r) =| − (r) |  
.
S
S
Notice that the  term, which is mentioned above, also affects steric force and steric charge.  
Discussions of steric energy/potential/force/charge can be found in J. Chem. Phys., 126, 244103  
(
2007).  
4,45,46 Damped Steric potential, steric force based on damped steric potential, directly damped  
Steric force: Documented privately  
4
5
5
0 Shannon entropy density: s (r) = −(r)ln (r)  
.
S
2
1 Fisher information density: i (r) =| (r) | / (r) . Note that this quantity is only different  
F
from Weizsäcker functional by a constant factor of 1/8.  
2
5
2 Second Fisher information density: i(r) = − (r)ln (r) . The relationship between  
F
Shannon entropy and Fisher information can be found in J. Chem. Phys., 126, 191107 (2007). The  
integration of this function over the whole space is exactly identical to that of Fisher information  
density.  
5
3 Ghosh entropy density or Ghosh-Berkowitz-Parr (GBP) entropy density, in kB (PNAS, 81, 8028  
(
1984)): s(r) = (3/ 2)(r){ + ln[t(r)/t (r)]} , where  = 5/3+ ln  
(
4c /3  
)
, ck is  
TF  
k
2
2/3  
Thomas-Fermi constant (3/10)(3 ) =2.871234, Lagrangian kinetic energy density G(r) is chosen  
to be the kinetic energy density term t(r).  
2
5
4 The same as 53, but G(r)− (r)/8, which is the kinetic energy density exactly corresponding to  
Eq. 22 of PNAS, 81, 8028 (1984), is employed as the t(r). In rare cases this definition of kinetic  
energy density leads to a very small negative value, since at these points tTF(r) is also very close to  
zero, in order to normally get result, ln[t(r)/tTF(r)] in this case is simply set to zero.  
2
5
5
5 Integrand of quadratic form of Rényi entropy:  (r)  
3
6 Integrand of cubic form of Rényi entropy:  (r)  
0(r)  
(r)  
2
5
7
g (r) =  (r)ln  
1
3
5
2
General information  
2
2
 (r)   (r)  
0
5
5
8
9
g (r) = (r)  
2
(r)  
(r)  
0
2
(r)   
g (r) = (r) ln  
3
0  
(r)  
Note that user-defined functions 57, 58, 59 can only be studied by plotting as map in main  
functions 3, 4, 5, and meantime deformation and promolecular maps are not available.  
0 Pauli potential: V = VESP  VXC  VW, where VESP is total electrostatic potential (as shown in  
6
Section 2.6), VXC is exchange-correlation potential (its specific form is determined by "iDFTxcsel"  
in settings.ini, see below), VW is Weizsäcker potential. This quantity corresponds to Eq. 17 of  
Comput. Theor. Chem., 1006, 92 (2013) and is only applicable to closed-shell cases.  
6
6
6
6
6
6
1 The magnitude of Pauli force: F (r) =| −V (r) |  
.
θ
2
2 Pauli charge: q (r) =  V (r) /(4)  
.
θ
θ
3 Quantum potential: V =V +V V VW  
q
θ
XC  
ESP  
4 The magnitude of quantum force: F (r) =| −V (r) |  
q
q
5 Quantum charge: q (r) = q (r) + q (r)  
q
θ
XC  
6 The magnitude of electrostatic force: F (r) =| −V (r) |  
ESP  
ESP  
As discussed in Phys. Chem. Chem. Phys., 19, 1496 (2017), there is a very close relationship  
between steric force, quantum force and electrostatic force, which are user-defined function 43, 64  
and 66, respectively.  
2
6
6
7 Electrostatic charge: q (r) =  V (r) /(4)  
ESP  
ESP  
8 Energy density of electronic part of electrostatic term of Shubin Liu's energy decomposition:  
(r)  
r r|  
Z
A
e (r) = (r)  
dr−  
, which is clearly equivalent to ESP multiplied by  
  
|
|r  R |  
A
A
electron density. To learn more about Shubin Liu's energy decomposition, see Section 3.24.2.  
9, -69 Energy density of quantum part of Shubin Liu's energy decomposition: s(r) W(r) + XC(r),  
6
where s is Hamiltonian kinetic energy density (if userfunc = 69) or Lagrangian kinetic energy  
density (if userfunc = -69). W is integrand of Weizsäcker functional (same as userfunc=5), XC is  
exchange-correlation energy density (same as userfunc=1000), whose form can be chosen by  
"iDFTxcsel" parameter in settings.ini, see below for detail.  
2
3
(r) 9  (r)  
7
0 Phase-space-defined Fisher information density (PS-FID): i (r) =  
=
,
f
k T(r) 2 G(r)  
B
where T(r) is local temperature as shown above. This function has very similar characters to ELF  
and LOL, the spatial localization of electron pairs can be clearly revealed. See Chem. Phys., 435,  
3
6
2
General information  
4
9 (2014) for introduction and illustrative applications.  
7
1, 72, 73, 74 Electron linear momentum density (EMD) in 3D representation. The electron linear  
momentum operator is i, for an orbital the expectation value of linear momentum in X is  
i    , so X component of EMD for a wavefunction can be defined as (the imaginary sign  
*
is ignored) p (r) = −  (r) (r) / x , similar for Y and Z components. The 71, 72, 73th  
x
i
i
i
i
user-defined functions correspond to X, Y, Z component, respectively. The magnitude (74) of EMD  
2
x
2
y
2
z
is defined as p (r) = p (r) + p (r) + p (r)  
.
tot  
7
5, 76, 77, 78 Magnetic dipole moment density (MDMD). The operator for magnetic dipole moment  
is the angular momentum operator (see Theoret. Chim. Acta, 6, 341 (1966))  
   
   
z   
   
   
ˆ
ˆ
ˆ
i (r ) = −i i  y  z  + j z  x  + k  x  y  
  
z  
y  
   
x
y  
x  
  
where i, j, k are unity vectors in X, Y and Z directions, respectively. Therefore, X, Y and Z  
component of MDMD may be defined as follows (the imaginary sign is ignored)  
(r)  
(r)  
*
i
i
i
m (r) = −   (r) y  
z  
x  
y  
x
i
z  
y  
i
  ( )  
r
 ( )  
r  
z  
*
i
i
i
m (r) = −   (r) z  
y
i
x  
i
(r)  
(r)  
*
i
i
i
m (r) = −   (r) x  
z
i
y  
x  
i
The 75, 76, 77th user-defined functions correspond to X, Y, Z component, respectively. The  
2
x
2
y
2
z
magnitude (78) of MDMD is m (r) = m (r) + m (r) + m (r)  
.
tot  
7
8
8
8
9 Gradient norm of electron energy density: |E(r)|  
2
0 Laplacian of electron energy density:  E(r)  
1, 82, 83 X, Y, Z component of Hamiltonian kinetic energy density, respectively  
4, 85, 86 X, Y, Z component of Lagrangian kinetic energy density, respectively  
1
4
1/ 2  
2
8
7 Local total electron correlation function: I (r) =  
[ (1 )] | (r) | . The i denotes  
T
i
i
i
i
index of natural spin orbital, the  is corresponding occupation number. This and below two  
functions are very useful for revealing electron correlation in different regions, see J. Chem. Theory  
Comput., 13, 2705 (2017) for introduction, illustrative example can also be found in Section 4.A.6.  
Note that in some cases,  may be marginally larger than 1.0 or negative, Multiwfn automatically  
set it to 1.0 and 0.0 respectively to make the calculation feasible.  
8
8 Local dynamic electron correlation function:  
1
4
1/ 2  
2
I (r) =  
{[ (1 )]  2 (1 )}| (r) |  
D
i
i
i
i
i
i
3
7
2
General information  
1
2
2
8
9 Local nondynamic electron correlation function: I (r) =  
 (1 ) | (r) | , it is clear  
ND  
i
i
i
i
that IT(r) = ID(r) + IND(r).  
9
2, 93, 94 Van der Waals potential, repulsion potential and dispersion potential based on UFF  
forcefield parameters, see Section 3.23.7 for detailed introduction. The unit is in kcal/mol, the probe  
atom can be set by "ivdwprobe" in settings.ini.  
+
0
9
5, 96, 97, 98 Orbital-weighted f , f , f Fukui functions as well as orbital-weighted dual descriptor,  
respectively. They are originally proposed in J. Comput. Chem., 38, 481 (2017) and J. Phys. Chem.  
A, 123, 10556 (2019). They are useful in studying local reactivity for systems whose frontier  
molecular orbitals are (quasi-)degenerate, see Section 3.100.16.3 for brief introduction and Section  
4
.100.16.2 for illustrative examples. The  parameter in these functions can be set by option 6 of  
main function 1000 (a hidden option). Since these functions involve virtual orbitals, you should use  
mwfn/fch/molden/gms as input file. Only closed-shell single-determinant wavefunction is  
supported.  
a
9
9 Interaction region indicator (IRI): IRI = [(r)] / (| | +b), where a and b correspond to  
"uservar" and "uservar2" in settings.ini, respectively. If "uservar" is 0, a will be recommended value  
1
.1, while if "uservar2" is 0, then b will be recommended value 0.0005. IRI is able to reveal both  
chemical bond regions and weak interaction regions like DORI, but computational cost is much  
lower and graphical effect is evidently better. See Section 3.23.8 for more introduction and 4.20.4  
for example of applying this function in practical system.  
2
1
00 Disequilibrium (also known as semi-similarity): D (r) =  (r) . See illustrative applications  
r
in Int. J. Quantum Chem., 113, 2589 (2013).  
1
01 Positive part of ESP: + . In the region where VESP is positive, + = 푉ESP; where ESP is  
ESP ESP  
negative, + = 0.  
ESP  
1
1
02 Negative part of ESP:  , defined similarly as +  
.
ESP ESP  
03 Magnitude of electric field |F|. Since electric field vector is simply negative gradient vector of  
ESP, therefore this quantity corresponds to norm of gradient of ESP.  
9
00, 901, 902 X, Y and Z coordinate variables, respectively: x, y, z.  
1
000 Integrand of DFT exchange-correlation functionals, which is also known as exchange-  
correlation energy density.  
1
100 DFT exchange-correlation potential, i.e. V (r) = E [(r)]/(r)  
XC  
XC  
For user-defined function 1000 and 1100, "iDFTxcsel" in settings.ini is used to select XC  
functional. 0~29 are X part only, 30~69 are C part only, 70~99 are whole XC. For example, if  
iDFTxcsel=32, then iuserfunc=1000 corresponds to integrand of LYP, and iuserfunc=1100  
corresponds to LYP potential.  
Notice that both 1000 and 1100 are applicable for closed-shell cases. But currently only 1000  
can be applied to open-shell cases.  
[See below for details]  
3
8
2
General information  
Available options of "iDFTxcsel" parameter  
Currently only LSDA and some GGA functionals are supported  
1
/ 3  
4/ 3  
4/ 3  
0
LSDA exchange:  (3/2)  
3/(4)  
[ (r) +  (r) ] . For closed-shell cases the  
1
/3  
4/3  
equivalent form is  (3/ 4)(3/) (r)  
.
1
2
3
Becke 88 (B88) exchange, see Phys. Rev. A, 38, 3098 (1988).  
Perdew-Burke-Ernzerhof (PBE) exchange, see Phys. Rev. Lett., 77, 3865 (1996).  
Perdew-Wang 91 (PW91) exchange, see Electronic Structure of Solids '91; Ziesche, P., Eschig,  
H., Eds.; Akademie Verlag: Berlin, 1991; p. 11.  
3
3
3
3
3
7
7
0 Vosko-Wilk-Nusair V (VWN5) correlation, see Can. J. Phys., 58, 1200 (1980).  
1 Perdew 86 (P86) correlation, see Phys. Rev. B, 33, 8822 (1986).  
2 Lee-Yang-Parr (LYP) correlation, see Phys. Rev. B, 37, 785 (1988).  
3 Perdew-Wang 91 (PW91) correlation, see the reference of its exchange counterpart.  
4 Perdew-Burke-Ernzerhof (PBE) correlation, see the reference of its exchange counterpart.  
0 Becke 97 (B97) exchange-correlation, see J. Chem. Phys., 107, 8554 (1997).  
1 Hamprecht-Cohen-Tozer-Handy with 407 training molecules (HCTH407) exchange-  
correlation, see J. Chem. Phys., 114, 5497 (2001).  
8
8
8
8
8
8
0 SVWN5 exchange-correlation.  
1 BP86 exchange-correlation.  
2 BLYP exchange-correlation.  
3 BPW91 exchange-correlation.  
4 PBEPBE exchange-correlation.  
5 PW91PW91 exchange-correlation.  
About iuserfunc=1200  
The kinetic energy density (KED) denotes integrand of kinetic energy functional. User-defined  
function 1200 is a collection of all KEDs supported by Multiwfn, which were systematically  
examined in J. Chem. Phys., 150, 204106 (2019). The "iKEDsel" in settings.ini is used to choose  
the form of KED.  
Note that if "iKEDsel" is not at its default value (0), then the S term (Lagrangian kinetic energy  
density) of ELF and strong covalent interaction index (SCI) will be replaced with corresponding  
KED.  
There is an subfunction 92 in the main function 1000 (hidden in the main menu), it can calculate  
integral of all KEDs over the whole space, namely evaluating kinetic energy based on the kinetic  
energy functionals. The GEA4 KED is calculated only when "iKEDsel" is set to 24 since it needs  
Laplacian of electron density, while other KEDs only need electron density and its gradient. Integral  
of Hamiltonian KED is not calculated by this function since the result is identical to that of  
Lagrangian KED.  
iKEDsel=1: Hamiltonian KED, identical to real space function 6  
iKEDsel=2: Lagrangian KED, identical to real space function 7  
3
9
2
General information  
TF  
5/ 3  
iKEDsel=3: Thomas-Fermi KED: (r) =  
 =  
C [ (r)]  
,
TF  
TF  
=,  
 =,  
3
2 2/ 3  
where C = (6 ) = 4.557799872 is Thomas-Fermi constant in spin polarized case.  
TF  
10  
2
(r)  
iKEDsel=4: Weizsäcker KED:  (r) =  
W
8
(r)  
=,  
Most of below mentioned KEDs can be represented using  
a
general form  
TF  
4/ 3  
(r) =  
 (r)F [s (r)], where s (r) =  (r) / (r) , F is called as enhancement  
=,  
factor, see J. Chem. Phys., 127, 144109 (2007) for detail. This paper systematically introduced and  
compared a variety of existing KEDs. Note that a lot of expressions given in this paper are wrong,  
while the formulae given below are absolutely correct, and all of them are explicitly written as spin  
polarized form, if they will be involved in your work please cite my paper J. Chem. Phys., 150,  
2
04106 (2019); citation of each KED is also given in this paper. More information and comparison  
about KEDs can be found in Phys. Rev. A, 46, 6920 (1992) and J. Chem. Phys., 100, 4446 (1994).  
1
2
iKEDsel=5: Second order gradient expansion approximation,  
F
= 1+  
s (r)  
GEA 2  
7
2CTF  
1
2
iKEDsel=6: Thomas-Fermi + 1/5 Weizsäcker KED,  
F
= 1+  
s (r)  
TF 5W  
4
0CTF  
1
2
iKEDsel=7: Thomas-Fermi + Weizsäcker KED,  
F
= 1+  
s (r)  
TFvW  
8
CTF  
1.067  
2
iKEDsel=8: Thomas-Fermi + b/9 Weizsäcker KED,  
F
= 1+  
s (r)  
TF 9 W  
7
2CTF  
0
.313 0.187  
iKEDsel=9: N-dependent Thomas-Fermi KED,  
F
=1+  
, where N is the  
2 / 3  
TF N  
1/ 3  
N
N
number of total electrons in the system  
2
(r)  
1
1
Pear  
TF  
1
iKEDsel=10: Pearson KED,  
=+  
, where  is fixed to  
r
6
1
+ [s (r)/ ] 72  (r)  
2 1/ 3  
,
s (r) = s (r)/[2(6 ) ], similarly hereinafter  
r
4
3
2
9
b x + a x + a x + a x +1  
3
3
2
1
iKEDsel=11: DePristo-Kress Pade KED,  
F
=
, where  
DK Pade  
3
2
b x + b x + b x +1  
3
2
1
2
x = [s (r)] /(72C ) , a1=0.95, a2=14.28111, a3=-19.57962, b1=-0.05, b2=9.99802 and  
TF  
b3=2.96085  
2
0
.0044188[s (r)]  
LLP  
iKEDsel=12: Lee-Lee-Parr KED,  
F
=1+  
1
+ 0.0253s (r)arcsinh[s (r)]  
4
0
2
General information  
1
OL1  
2
iKEDsel=13: Ou-Yang–Levy 1 KED,  
F
=1+  
=1+  
[s (r)] + 0.00187s (r)  
7
2CTF  
1
0.0245s (r)  
OL 2  
2
iKEDsel=14: Ou-Yang–Levy 2 KED,  
F
[s (r)] +  
5/ 3   
7
2CTF  
1+ 2 s (r)  
2
0
.0055[s (r)]  
0.072s (r)  
Thak  
iKEDsel=15: Thakkar KED,  
F
=1+  
5/ 3   
1
+ 0.0253s (r)arcsinh[s (r)] 1+ 2 s (r)  
2
[
s (r)]  
iKEDsel=16: Becke 86A KED,  
iKEDsel=17: Becke 86B KED,  
F
=1+ 0.0039  
B86A  
2
1
+ 0.004[s (r)]  
2
[
s (r)]  
F
=1+ 0.00403  
B86B  
2
4 /5  
{
1+ 0.007[s (r)] }  
iKEDsel=18: DePristo-Kress 87 KED,  
1
+ 0.861504s (r)  
2
F
=1+ 0.00132327[s (r)]  
DK 87  
2
1
+ 0.044286[s (r)]  
iKEDsel=19: Perdew-Wang 86 KED,  
r
2
r
4
r
6 1/15  
F
={1+1.296[s (r)] +14[s (r)] + 0.2[s (r)] }  
PW86  
iKEDsel=20: Perdew-Wang 91 KED,  
r
r
100[s(r)]2  
r
2
r
1
+ a s (r)arcsinh[b s (r)] +{a  a e  
}[s (r)]  
1
2
3
F
=
, where a1=0.19645,  
PW91  
4
1
+ a s (r)arcsinh[b s (r)] + a [s (r)]  
1
r
r
4
r
a2=0.2743, a3=0.1508, a4=0.004 and b=7.7956  
iKEDsel=21: Lacks-Gordon 94 KED  
r
2
r
4
r
6
r
8
r
10  
r
12 b  
{
1+ a [s (r)] + a [s (r)] + a [s (r)] + a [s (r)] + a [s (r)] + a [s (r)] }  
2
4
6
8
10  
12  
F
=
LG 94  
8  
2
1
+10 [s (r)]  
r
-8  
,
where a2=(10 +0.1234)/0.024974, a4=29.790, a6=22.417, a8=12.119, a10=1570.1, a12=55.944 and  
b=0.024974  
1
1.412  
2
iKEDsel=22: Acharya-Bartolotti-Sears-Parr KED,  
F
=
[s (r)] +1−  
ABSP  
1/ 3  
8
CTF  
N
1
2
  
N   
1.303 0.029  
GR  
2
iKEDsel=23: Gázquez-Robles KED, F =  
[s (r)] + 1 1−  
+
1/ 3  
2 / 3  
8CTF  
N
N
iKEDsel=24: Fourth order gradient expansion approximation,  
2
2
4
2
2 / 3  
1/ 3  
2
2
(
6)  
  (r) 9   (r)  (r)  
1  (r)   
=  
+
[(r)]  
+
GEA 4  
GEA 2  
540  
(r)  
8  (r)  (r)  
3  (r)  
Note that if the "uservar" in settings.ini is not equal to zero, all above mentioned KEDs will be  
4
1
2
General information  
2
added by "  /uservar" term. For example, when iuserfunc=1200, iKEDsel=5 and uservar=6, the  
2
user-defined function will correspond to GEA2+  /6 (which corresponds to the KED employed  
by Tsirelson type of ELF and LOL, as shown in Section 2.6).  
1
1
1
201 Difference between KED selected by "iKEDsel" and Weizsäcker KED.  
202 Difference between KED selected by "iKEDsel" and Lagrangian KED.  
203 Absolute difference between KED selected by "iKEDsel" and Lagrangian KED.  
4
2
2
General information  
2
.8 Graphic formats and image size  
Multiwfn supports a lot of mainstream graphic formats, including:  
1
2
3
4
5
6
7
8
9
Postscript (ps)  
Encapsulated postscript (eps)  
Portable document format (pdf)  
Windows metafile format (wmf)  
Graphics interchange format (gif)  
TIFF (tiff)  
Portable network graphics (png)  
Windows bitmap format (bmp)  
Scalable vector graphics (svg)  
The graphic format of the picture exported by Multiwfn is controlled by “graphformat”  
parameter in settings.ini, you can set this parameter to the texts in the parentheses listed above, the  
default format is “png”.  
For curve maps, the height and weight of the image file are controlled by “graph1Dsize”  
parameter in settings.ini. “graph2Dsize” is responsible for two-dimension data plotting (color-filled  
map, contour map, relief map, etc.). “graph3Dsize“ is responsible for three-dimension data plotting  
(isosurface graph, molecular structure graph, etc.).  
Tip 1: If the graph is mainly composed of lines, e.g. contour line map and curve map, the best  
formats are pdf and svg. However, if you need to embed the resulting graph to Office, commonly  
wmf format should be used.  
Tip 2: If you want to make background of exported image file transparent, please look this  
4
3
 
3
Functions  
3
Functions  
This chapter introduces all functions of Multiwfn in detail, the numbers in the parentheses of  
secondary titles are indices of corresponding functions in main menu, the numbers in the parentheses  
of tertiary titles are indices of corresponding options in corresponding submenus. Different  
functions of Multiwfn require different types of input file, the information needed by each function  
are shown in the final line of corresponding section. Please choose proper type of input file  
according to the table in Section 2.5.  
[
There is no Section 3.1 due to history reason ;-D]  
3
.2 Showing molecular structure and viewing orbitals /  
isosurfaces (0)  
When main function 0 is selected, information of all atoms as well as basic information of  
featured orbitals (e.g. index of HOMO and LUMO, HOMO-LUMO gap) will be printed on text  
window, meanwhile molecular structure will be shown in a GUI window. If the input file contains  
orbital information, the orbitals can be viewed by selecting corresponding orbital index in the list at  
right-bottom corner of the window, or by directly inputting orbital index in the text box, see below  
screenshot. If the input file is .cub or .grd format, then one can view isosurface of the grid data in  
this interface.  
4
4
 
 
3
Functions  
Since most widgets in this GUI are self explanatory, I only mention some worthnoting points  
here.  
Viewing structure  
"Ratio of atomic size" is the ratio of one-fourth of atom radius shown on screen to its van der  
Waals (vdW) radius, so if the slide bar is dragged to 4.0, then what to be shown is vdW surface.  
There are three predefined drawing styles of system structure, you can activate one of them via  
Use CPK style”, “Use vdW style” and “Use line style” in “Other settings” in the menu.  
The perspective can be adjusted by "Left", "Right", "Up", "Down", "Zoom in" and "Zoom out"  
buttons. To exactly control the viewpoint, you can also directly input value of rotation angle by  
selecting "Set rotation angle" option in "Set perspective" in the menu. In addition, you can rotate  
your mouse wheel in the drawing region to zoom in and zoom out.  
Multiwfn determines if two atoms are bonded by empirical distance criteria, if the distance  
between two atoms is short than 1.15 times of the sum of their CSD covalent radii, they will be  
considered as bonded. You can adjust this criteria by dragging "Bonding threshold" slide bar.  
Note: If your input file contains connectivity information, such as .mol and .mol2, then the bonds will be  
displayed directly according to the provided connectivity.  
The color of bonds, atomic labels and atom spheres can be set by parameters "bondRGB",  
"atmlabRGB" and "atmcolorfile" in settings.ini, respectively. See corresponding comments for  
detail. After adjusting these parameters, you need to reboot Multiwfn to make them take effect. You  
can also directly change atomic label color in the GUI via “Other settings”-“Set atomic label color”.  
Viewing orbitals  
By clicking "Orbital info." and then selecting corresponding options, basic orbital  
information can be printed on text window.  
All orbital indices are listed in the right-bottom box, default selection is “none” (no orbital is  
shown). If you click an orbital index, Multiwfn will calculate grid data of wavefunction value for  
corresponding orbital, and then the orbital isosurface appears immediately. Green and blue parts  
correspond to positive and negative regions, respectively. The “Isovalue” slide bar controls the  
isovalue of the isosurface.  
For efficiency consideration, the default quality of grid data is relatively coarse, the number of  
grid points can be set by "Isosur. quality", the larger number leads to the smoother isosurface (Note  
that after you adjust the number, present isosurface will be deleted). You can also set default number  
of grid points through changing “nprevorbgrid” in settings.ini.  
For unrestricted wavefunction, the alpha and beta orbitals are recorded separately. Assume that  
there are Na alpha orbitals and Nb beta orbitals, then the first Na and latter Nb orbitals in the orbital  
selection list correspond to alpha and beta orbitals, respectively. Whereas in the orbital selection  
box, negative index corresponds to beta orbitals. For example, if you input -9, then the 9th beta  
orbital will be shown, and the orbital selection list will be automatically switched to the Na+9 term.  
Sometimes it is useful to display two orbitals simultaneously; for example, analysis of phase  
overlapping of two NBOs. This can be realized by "Show+Sel. Isosur#2" (Sel.=Select) check box.  
This check box is inactive by default, once you have chosen an orbital (corresponding isosurface  
will be referred to as Isosurface #1), this check box will be actived. After you clicked the check box,  
the isosurface of the orbital you newly selected (which will be referred to as Isosurface #2) will be  
shown together with the orbital you previously selected, yellow-green and purple parts correspond  
to positive and negative regions respectively. If the check box is deselected, Isosurface #2 will  
4
5
3
Functions  
disappear, then if you reselect the check box the same Isosurface #2 will be redrawn.  
The representation styles of Isosurface #1 and #2 can be adjusted by suboptions in "Isosur.  
#
1" and "Isosur. #2" individually, available styles include solid face (default), mesh, points, solid  
face+mesh and transparent face. (Notice that Multiwfn cannot plot only one isosurface as  
transparent face). The colors for face and mesh/points can be set by corresponding suboptions too,  
users will be prompted to input Red, Green, Blue components for positive and negative parts in turn,  
the component should between 0.0 and 1.0. For instance, 1.0,0.0,0.0 corresponds to pure red while  
1
.0,1.0,0.0 corresponds to Yellow. The default values for positive and negative parts can be set by  
"isoRGB_same" and "isoRGB_oppo" in settings.ini, respectively. Opacity for transparent face can  
also be customized, valid range is from 0.0 (completely transparent) to 1.0 (completely opaque).  
Before showing orbital isosurfaces, Multiwfn first sets up a box internally, then calculates  
orbital wavefunction value at the points evenly placed in the box. The default extension distance for  
setting up the box is controlled by "Aug3D" parameter in settings.ini. The default value is suitable  
and efficient for general cases; however, in rare cases (e.g. visualizing Rydberg orbitals) you may  
need to manually enlarge the extension distance, you can either change the Aug3D to modify the  
default setting, or select "Other settings"-"Set extension distance" and then input a value to modify  
extension distance for present instance.  
When orbital isosurface is portrayed as solid face, in rare cases the plotting effect is not quite  
good, for example positive and negative regions are difficult to be distinguished, in these cases you  
can try to adjust lighting setting by choosing "Other settings"-"Set lighting" or properly rotate the  
system to bypass this issue.  
Tools submenu  
In the "Tools" of the menu bar, there are several options:  
Write settings to GUIsettings.ini: Write visualization state (e.g. color, view angle, molecular  
representation, text size, etc.) to GUIsettings.ini in current folder. If "Multiwfnpath" environment  
variable has been defined, the GUIsettings.ini will be written to the folder defined by this  
environment variable instead.  
Load settings from GUIsettings.ini: Load visualization state from GUIsettings.ini in current  
folder, so that you can quickly retrieve previous visualization state. If "Multiwfnpath" environment  
variable has been defined, Multiwfn will first try to load this file from the folder defined by this  
environment variable.  
Measure geometry: By inputting two, three and four atom indices in the boxes and press  
ENTER button, the bond length, angle and dihedral will be returned.  
Batch plotting orbitals: Via this tool you can very conveniently save a lot of selected orbitals  
to respective image file in current folder, see https://youtu.be/SHwrQhqBHZ0 for video illustration.  
Select fragment: After selecting it and input an atom index, the whole fragment where the  
atom attributes to will be highlighted, and the indices of all atoms in the fragment will be returned.  
This is useful when you perform some analyses, in which you need to input atom indices in the  
fragment of interest.  
More functions and illustration of the use of the main function 0 are described in Section 4.0.  
Information needed: GTFs (only for viewing orbitals), atom coordinates, grid data (only for  
viewing isosurface of grid data)  
4
6
3
Functions  
3
.3 Outputting all properties at a point (1)  
Input coordinate of a point or index of an atom, then the values of all real space functions  
supported by Multiwfn at the point or corresponding nuclear position will be printed on screen, as  
well as each component of gradient and Hessian matrix of specified function (default is electron  
density). The function can be specified by f?, for example f9 select ELF, you can input allf to check  
all available functions. The orbital whose wavefunction value will be outputted can be selected by  
command o?, for example o4 choose the 4th orbital. If the input file merely contains atom  
coordinates (such as pdb file), then only limited functions based on electron density will be outputted,  
the electron density used is promolecular density constructed from fitted free atom density, see the  
introduction of real space function 14 in Section 2.6.  
If input d, value of a real space function at a given point can be decomposed into orbital  
contributions. The contribution from orbital i is evaluated as follows: First set occupation number  
of all orbitals to zero except for orbital i, and then calculate real space function as usual. Note that  
sum of contribution of all orbitals may be different to the result when all orbitals are simultaneously  
into account, since many real space functions contain non-linear operators, such as ELF.  
Electrostatic potential is the most expensive one among all of the real space functions supported  
by Multiwfn. If you are not interested in it, you can set "ishowptESP" parameter in settings.ini to 0  
to skip calculation of electrostatic potential.  
Information needed: GTFs (depending on the choice of real space function), atom coordinates  
3
.4 Outputting and plotting specific property in a line (3)  
In this function, what you should do is just selecting a real space function and then define a  
line. There are two ways to define the line:  
(1) By inputting indices of two atoms, the line will be automatically extended by a small  
distance in each side, the extended distance can be adjusted by "aug1D" in settings.ini or by the  
option “0 Set extension distance for mode 1”, default value is 1.5 Bohr.  
(2) By inputting the coordinates of the two endpoints.  
Generally, the calculation only takes a few seconds, then curve map pops up, like this:  
4
7
 
 
3
Functions  
The gray dashed line indicates the position of Y=0. If the line is defined by the second way,  
two red circles with Y=0 will appear in the graph, they indicate the position of the two nuclei. Click  
right button on the graph and then you can select what to do next, you can redefine the scale of Y-  
axis, export the data to line.txt in current directory, save the graph to a file, locate minimal and  
maximal positions and so on. Note that the process for searching stationary points and the position  
where Y equals to specified value is based on the data you have calculated, that means the finer the  
points, the more accurate X position you will get.  
The data points are evenly distributed in the line, the number of points is 3000 by default,  
which is fine enough for most cases. The number can also be adjusted by “num1Dpoints” parameter  
in settings.ini. Of course, the more points the more time is needed for calculating data. Notice that  
for ESP calculation, the number of points is decreased to one-sixth automatically, because it is much  
more time-consuming than other task.  
Information needed: GTFs (except for ESP from nuclear/atomic charges and promolecular  
approximation version of RDG and sign(2)), atom coordinates  
3
.5 Outputting and plotting specific property in a plane (4)  
The basic steps of using this function are listed below. Users can finish all operations by simply  
following program prompts, there are only a few key points are needed to be described.  
1
2
3
4
5
6
.
.
.
.
.
.
Select a real space function  
Select a graph type  
Set the number of grid points in both dimensions  
Define a plane  
View the graph  
Post-processes (adjust plotting parameters, save graph, export data to plain text file, etc.)  
4
8
 
3
Functions  
Worthnotingly, after you enter this function, you will see real space function selection menu; if you select option  
1
11 (a hidden option), then the real space function to be plotted will be Becke weight of an atom or Becke overlap  
weight between two atoms. If you select option 112 (another hidden option), Hirshfeld weight of a given atom or  
fragment will be plotted.  
If the parameter "iplaneextdata" in settings.ini is set to 1, then the data in the plane will not be calculated by  
Multiwfn internally but directly loaded from an external plain text file. The coordinate of the points in the plane will  
be automatically outputted to current folder, you can use third-party tools (e.g. cubegen utility of Gaussian) to  
calculate function value at these points.  
3
.5.1 Graph types  
Currently Multiwfn supports seven graph types for exhibiting data in a plane.  
Color-filled map. This type of map uses different colors to represent real space function  
1
value in different regions. By default, "Rainbow" coloring method is employed to map the function  
value to color, and if the function value exceeds lower (upper) limit of color scale, then the region  
will be filled by black (white). By selecting "Set color transition" in post-processing menu, you can  
choose other color transition methods.  
By selecting “Enable showing contour lines“ in post-processing menu, contour lines can be  
plotted together on the graph.  
2
Contour line map. This map uses solid lines to represent positive regions, and dashed lines  
to exhibit negative regions.  
4
9
 
3
Functions  
The number of isovalue lines can be adjusted by user (see Section 3.5.4), you can also mark  
the isovalues on the contour lines by using the option “2 Enable showing isovalue on contour lines”  
in post-processing step.  
Only for contour line map, if the real space function you selected to be plotted is orbital  
wavefunction, you can not only plot one orbital by inputting one orbital index, but also plot two  
orbitals simultaneously by inputting two orbital indices (e.g. 3,5), see Section 4.4.5 for example.  
Option 4 in post-processing menu is used to toggle if showing atoms labels or reference point  
(
involved in some real space functions such as correlation hole and source function) in the graph.  
The size and form (i.e. if showing atom index or element name) of the atom labels can be set by  
pleatmlabsize" and "iatmlabtype" parameters in settings.ini, respectively. The reference point is  
"
represented as a blue asterisk on the graph. By default only when the distance between the atoms  
and the plane is smaller than "disshowlabel" in settings.ini the corresponding atom labels will be  
shown. To change this distance threshold, you can either adjust this value in setting.ini or choose  
option 17 in post-processing menu. If "iatom_on_plane_far" parameter in settings.ini is set to 1,  
then even if the distance is larger than the threshold, the label will still be shown, but in thin text  
rather than bold text.  
Option 8 in post-processing menu is used to toggle if showing bonds. The bond is shown for  
an atom pair if these two conditions are satisfied: (1) The distance between the two atoms is smaller  
than bonding threshold, which can be adjusted in the GUI window of main function 0 using  
corresponding scale bar. (2) Both atoms are close enough to the plotting plane (smaller than the  
"disshowlabel" parameter mentioned above).  
Option 15 in post-processing is used to plot a contour line corresponding to vdW surface  
(electron density=0.001 a.u., which is defined by R. F. W Bader in J. Am. Chem. Soc., 109, 7968  
(1987)). This is useful to analyze distribution of electrostatic potential on vdW surface. Such a  
contour line can be plotted in gradient line and vector field map too by the same option. Color, label  
size and line style of the contour line can be adjusted by Option 16.  
Notice that the discussion in above two paragraphs also applies to color-filled map, gradient  
5
0
3
Functions  
lines map and vector field map (see below).  
3
Relief map. Use height to represent value at every point. If values are too large they will be  
truncated in the graph, you can choose to scale the data with a factor to avoid truncation. The graph  
is shown on interactive interface, you can rotate, zoom in/out the graph.  
4
Shaded surface map and 5 Shaded surface map with projection. The relief map is shaded  
in these two types. The latter also plots color-filled map as projection. The meshs on the surface can  
disabled at post-processing stage.  
5
1
3
Functions  
6
Gradient line map with/without contour lines. This graph type represents gradient  
direction of real space function, you can determine if the contour lines is also shown on the graph.  
Note that since gradients of real space function are needed to be evaluated, and graphical library  
needs to take some time to generate gradient lines, the calculation and plotting costs are evidently  
higher than other graph types.  
In the option "11 Set detailed parameters of plotting gradient line" at the post-processing menu,  
you can set various plotting parametes:  
Suboption 1: Integration step for gradient lines, the smaller the value the finer the graph  
Suboption 2: Interstice between gradient lines, the smaller the value the denser the lines  
Suboption 3: Criteria for plotting new gradient line, try to play with it and you will know how this  
parameter affects the graph  
Suboption 4: Integration method. The RK4 is the most robust but most expensive. The default  
RK2 is good balance between accuracy and speed  
Suboptions 5 and 6: Color and width of gradient lines  
7
Vector field map with/without contour lines. This graph type is very similar to last graph  
type, however the gradient lines are replaced by arrows, which distribute on grids evenly and  
represent gradient vectors at corresponding point. You can set color of arrows, or map different  
colors on arrows according to magnitude of function value, you can also invert the direction of  
arrows. The option 10 is worth mentioning, if you set upper limit for scaling to x by this option, then  
if the norm of a gradient vector exceeds this value, the vector will be scaled so that its norm equals  
to x.  
5
2
3
Functions  
3
.5.2 Setting up grid, plane and plotting region  
When program asking you to input the number of grid points in both dimensions, you can input  
such as 100,150, which means in dimensions 1 and 2 the number of grid points are 100 and 150,  
respectively, so total number is 100*150=15000, they are evenly distributed in the plotting region.  
For “Relief map”, “Shaded surface map” and “Shaded surface map with projection”, commonly I  
recommend 100,100; if this value is exceeded, the lines in the graph will look too crowd. For other  
graph types I recommend 200,200. Of course the picture will become more pretty and smoother if  
you set the value larger, but you have to wait more time for calculation. Bear in mind that total ESP  
calculation is very time-consuming, you’d better use less grid points, for previewing purpose I  
recommend 80,80 or less.  
Multiwfn provides 7 modes to define the plotting plane:  
1
2
3
4
.
.
.
.
XY plane: User inputs Z value to define a XY plane uniquely.  
XZ plane: User inputs Y value to define a XZ plane uniquely.  
YZ plane: User inputs X value to define a YZ plane uniquely.  
Define by three atoms: Input indices of three atoms to define a plane by their nuclear  
coordinates.  
5
6
.
.
Define by three points: Input coordinates of three points to define a plane.  
Input origin and transitional vector: This way is only suitable for expert, the two inputted  
translation vectors must be orthogonal.  
5
3
 
3
Functions  
7
.
Define a plane parallel to a bond and meantime normal to a plane defined by three atoms  
For modes 1~5, the actual plotting region is a subregion of the plane you defined. Multiwfn  
automatically sets the plotting region to tightly enclose the whole molecule (for modes 1, 2 and 3)  
or cover the three nuclei / points you inputted (for modes 4 and 5), finally the plotting region is  
extended by a small distance to avoid truncating the interesting region. The extension distance is  
4
.5 Bohr by default, if you find the region you interested in is still be truncated, simply enlarging  
the value by option “0 Set extension distance for plane type 1~5”, you can also directly modify the  
default value, which is controlled by “Aug2D” parameter in settings.ini.  
Below diagram illustrates how the actual plotting region is determined when you select mode  
4
or 5 to define the plotting plane. The X and Y axes shown in the graph correspond to the actual X  
and Y axes you finally see. Evidently, the input sequence of the three points or atoms directly affects  
the graph.  
For the modes 4 and 5, if you find the content is skewed in the final graph, or the interesting  
part is not located at the center of the graph, you can choose "-1: Set translation and rotation of the  
map for plane types 4 and 5" before selecting mode 4 or 5. For example, if you find the content in  
the graph your previously plotted should be translated by (-3,1.5) Bohr and then rotated by 35, then  
in this option you should first input -3,1.5 and then input 35, the resulting graph will meet your  
expectation. (A practical instance of using this option was posted on http://bbs.keinsci.com/thread-  
For mode 6, the plotting region is determined as follows, in which each black arrow denotes  
translational vector 1, each brown arrow denotes translational vector 2, blue point denotes origin  
point. The number of arrows is the number of grids set by users. Evidently, this mode enables users  
to fully control the plotting plane setting.  
5
4
3
Functions  
Mode 7 is very useful when you want to define a plotting plane cutting a bond but there is no  
proper reference atoms to use mode 4, below graph is such an instance, the purple rectangle is the  
plane you want to plot:  
To define this plane, you should select mode 7, and then input 3,5 to use these two atoms to define  
the axis that the plotting will be parallel to, and then input 2,3,10 (or 2,5,10 etc.) to use them to  
define a plane that the plotting plane will be normal to. After that you need to input the length of X  
and Y axes, e.g. 10 Bohr and 7 Bohr, respectively.  
3
.5.3 Options in post-processing interface  
After plotting the graph, you will see a menu, in which there are a lot of options used to adjust  
or improve the quality of the graph. Since many of them have already been introduced above and  
some of them will be mentioned in next sections, and lots of them are self explanatory, only a few  
will be mentioned here.  
-9 Only plot the data around certain atoms: Sometimes in the graph only a few regions are  
interesting; if you want to screen other regions, you may find this option useful. After selecting this  
option, assume that you input 2,4,8-10, then only the real space function around atoms 2,4,8,9,10  
will be plotted (the data to be plotted then in fact is the original plane data multiplied by the Hirshfeld  
weight of the fragment you inputted). Next time you select this option, the original data will be  
recovered.  
-
7 Multiply data by a factor: This is mainly used to scale the range of the plane data.  
6 Export the current plane data to plane.txt in current folder: After using this option to  
-
export the plane data, you can very conveniently using third-part plotting softwares such as  
Sigmaplot to redraw the data.  
5
5
 
3
Functions  
-
2 Set stepsize in X, Y (,Z) axes: This option determines the spacing between the labels in the  
coordinate axes. If axis labels are not shown, that means you need to decrease the stepsizes.  
1 Show the graph again: After adjusting plotting parameters, choose this option to replot the  
graph to check the effect.  
-
0
Save the graph to a file: Export the graph to a graphic file in current folder. See Section 2.8  
on how to determine the graphic format and size.  
3
.5.4 Setting up contour lines  
For graph types 1, 2, 6 and 7, the contour lines can be plotted (if not shown, select "2 Enable  
showing contour lines" in the post-processing menu). There is also an option “Change setting of  
contour lines” in the post-processing menu. In this interface, values of current contour lines are first  
listed and you can modify them by using below suboptions:  
Option 1: Save current setting and return to upper menu. Then if you select “Show the graph  
again”, the graph with new isovalue setting will appears.  
Option 2: Input a new value to replace old value of a contour line.  
Option 3: Add a new contour line and input the isovalue for it.  
Option 4: Delete some contour lines.  
Option 6: Export current isovalue setting to a plain text file, you can use this function to save  
multiple sets of your favourite isovalue settings for different systems and real space functions.  
Option 7: Load isovalue setting from external file, the format should be identical to the file  
outputted by subfunction 6.  
Option 8: Generate isovalues according to arithmetic sequence, user need to input initial value,  
step size and total number. For plotting ELF/LOL, I suggest user input 0,0.05,21 to generate  
isovalues in the range 0.0~1.0 with step size 0.05. You can choose if cleaning existing contour lines,  
if you select n, then new contour lines will be appended to old ones.  
Option 9: Like function 8, but according to geometric series.  
Option 10: Some contour lines can be bolded with this function, by default no line is bolded.  
To bold some lines, select this function and input how many lines you want to bold, then input  
indices of them in turn. If there are some lines already been bolded, selecting this function will  
unbold all of them.  
Option 11: Set color for positive contour lines, you need to input a color index.  
Option 12: Set line style for positive contour lines, you need to input two integer number, the  
first one denotes the length of line segment, the second one denotes the length of interstice between  
line segment. For example 10,15 means positive contour lines are composed of line segments with  
length of 10 and spaces with length of 15 alternatively.  
Option 13, 14: Like option 11 and 12, but for negative part.  
Option 15: If this option is selected, the positive and negative lines will be set to "crimson,  
width=6, solid line" and "blue, width=6, long dashed line", respectively. Then the saved picture will  
be very suitable for publication; as you can see in the resulting graphical file, the two kinds of lines  
are clear and can be distinguished easily.  
5
6
 
3
Functions  
3
.5.5 Plot critical points, paths and interbasin paths on plane graph  
CPs and paths can be plotted on color-filled map, contour line map, gradient line map and  
vector field map. Below is a typical electron density gradient line map containing critical points,  
topology paths and interbasin paths.  
In order to append the CPs and paths on plane map, before drawing the plane graph using main  
function 4, you need to enter topology analysis module (main function 2), then search CPs and  
generate paths. After that, return to main menu and draw plane graph as usual, you will find that the  
CPs and paths have appeared on the graph. In the graph, brown, blue, orange, green dots denote (3,-  
3
), (3,-1), (3,+1), (3,+3) critical points, respectively. Bold dark brown lines depict bond paths.  
In the option “4 Set details of plotting critical points and paths” at post-processing menu, you  
can choose which types of CPs are allowed to be shown, and you can set size of markers, thickness,  
distance threshold and color of path lines. By default, if the vertical distance between a CP or a point  
in a path and the plotting plane exceeds 0.5 Bohr, the CP or path point will not be shown, the  
thresholds can be altered by “8 Set distance threshold for showing CPs” and “9 Set distance  
threshold for showing paths”.  
Interbasin paths (deep blue lines in above graph) are derived from (3,-1) CPs, these paths  
dissect the whole space into individual atomic basins. You can also append the interbasin paths on  
contour line map, gradient line map and vector field map. In order to draw interbasin paths, you  
should first confirm that at least one (3,-1) CP has been found in topology analysis module and it is  
close enough to current plotting plane (smaller than "disshowlabel" in settings.ini), then you can  
find a option "Generate and show interbasin paths" in post-processing stage, choose it, wait until  
5
7
 
3
Functions  
the generation of interbasin paths is completed, then replot the plane graph again, you will find these  
interbasin paths have already presented.  
If you hope the interbasin paths become shorter or longer, choose option "Set stepsize and  
maximal iteration for interbasin path generation" in post-processing stage before generating  
interbasin paths, you will be prompted to input stepsize and the number of iterations, the maximum  
length of yielded interbasin paths equals to product of the two values. Note that if distance between  
a point in interbasin path and the plotting plane exceeds the "disshowlabel" in settings.ini,  
corrsponding points in the interbasin path will not be shown on the plane graph.  
Information needed: GTFs (depending on the choice of real space function), atom coordinates  
3
.6 Outputting and plotting specific property within a  
spatial region (5)  
The main purpose of this function is calculating grid data or generating Gaussian-type cube  
file (.cub) for specific real space function. The .cub file is supported by a lot of chemistry  
visualization softwares, such as VMD, GaussView, ChemCraft and Molekel. The isosurface of  
generated grid data can be viewed directly in Multiwfn too. This function can also be used to  
calculate function values for a set of points recorded in an plain text file.  
The basic procedure of using this function is:  
(
(
(
1) Select a real space function  
2) Set up grid  
3) Use post-processing options to visualize isosurfaces, modify and export data  
In the real space function selection menu, if you select option 111 (a hidden option), then the real space function  
to be calculated will be Becke weight of an atom or Becke overlap weight between two atoms. If you select option  
112 (another hidden option), Hirshfeld weight of a given atom or fragment will be calculated.  
Setting up grid  
Multiwfn provides many modes for setting up grid point:  
Mode 1: Low quality grid, about 125000 points in total (corresponding to 50*50*50 grid,  
assuming the spatial region is cubic), this mode is recommended for previewing purpose.  
Mode 2: Medium quality grid, about 512000 points in total (corresponding to 80*80*80 grid,  
assuming the spatial region is cubic). For small molecular, this quality is enough for most analysis.  
Mode 3: High quality grid, about 1728000 points in total (corresponding to 120*120*120 grid,  
assuming the spatial region is cubic).  
For modes 1, 2 and 3, the actual number of points in each direction is automatically determined  
by Multiwfn so that grid spacing in each direction are nearly equal. The method of determining  
spatial scope of grid data is illustrated below in two-dimension case.  
5
8
 
3
Functions  
First, Multiwfn sets up a box (red dashed line) to just enclose the entire molecule, and then the  
box is suitably extended in each dimension to avoid truncating boundary part of isosurfaces, the  
green rectangle in below graph is the actual spatial scope of grid data. If the extension distance is  
inappropriate, you can customly set the value by using option “-10 Set extension distance of grid  
range", or directly set default value by modifying “Aug3D” in settings.ini.  
The so-called “Low quality”, “Medium quality” and “High quality” are only relative to small  
system. If spatial range of the grid data is wide, then density of grid points of mode 3 will not be  
high and should be called “Medium quality”, and mode 2 should be called “Low quality” at this  
time. While for very small system, the density of mode 1 is already adequate for general purposes.  
Mode 4: Specify the number of grid points or grid spacing in X, Y and Z directions by yourself,  
the spatial scope is determined automatically as shown above.  
Mode 5: Specify all details of grid setting by user, including the number of points in X, Y and  
Z directions, initial point, translation vectors. This mode is useful for experienced users.  
Mode 6: Specify the center coordinate, number of points and extension distance in X, Y and Z  
directions. For example, the center coordinate you inputted is 2.3,1.0,5.5, the extension distance in  
X, Y and Z is k,k,m, then the coordinates of two most distant endpoints are (2.3-k,1.0-k,5.5-m) and  
(2.3+k,1.0+k,5.5+m). This mode is useful for analyzing local properties.  
Mode 7: Like function 6, but inputting indices of two atoms instead of inputting center  
coordinate, the midpoint between the two nuclei will be set as center. This mode is very useful for  
weak interaction analysis by RDG function. For examples, we want to study the weak interaction  
region between the dimer shown below, and we found C1 and C14 may enclose this region, so we  
input 1,14. see Section 3.23.1 for example. If the two atom indices are identical, then the nuclear  
coordinate will be set as center.  
5
9
3
Functions  
Mode 8 Use grid setting (origin, number of points and grid spacing) of an existing cube file.  
You will be prompted to input the file name. This mode is useful to generate multiple cube files with  
exactly identical grid setting.  
Mode 10 Set up the grid data in a GUI window. This mode is quite convenient, the box is  
clearly visible in the graphic window, and you can directly change box length, box center and grid  
sapcing by dragging corresponding scale bars (the X,Y,Z directions share the same grid spacing).  
The total number of grids under present grid setting can be directly seen at the right bottom side of  
the window.  
6
0
3
Functions  
Notice that the more grid points you set, the finer the isosurface graph you will get, however  
the more time is needed for calculating grid data and generating isosurface graph. The increase of  
calculation time with the number of points is nearly linear.  
After setting grid points, the program starts to calculate grid data, once the calculation is  
finished, the minimum/maximum and corresponding coordinate, the sum of all/positive/negative  
data multiplied by differential element are printed on screen immediately. If what you calculated is  
electron density, the molecular dipole moment evaluated based on grid data is also printed out. Then  
you will see post-processing menu.  
Post-processing options  
In the post-processing menu if the option “-1 Show isosurface graph” is selected, a GUI  
window will pop up, which shows the isosurface of grid data, all widgets are self explanatory, you  
can change isosurface value by both dragging slide bar (upper and lower limit are -5 and +5  
respectively) or inputting precise value in text box (then press “Enter” button in you keyboard); if  
“Show data range” is selected, the spatial scope will be marked by a blue frame as the one in above  
picture (if spatial scope exceeds the range of coordinate axis, the frame will no be displayed). The  
isosurfaces with the same and reverse sign of current isovalue are in green and blue respectively.  
Option 1 can export isosurface graph to graphic file in current directory. Option 2 can export  
grid data to .cub file in current directory. By selecting option 3 the grid data will be exported to plain  
text file output.txt in current directory. Using option 4 you can set isovalue without entering GUI  
window and dragging slide bar, it is useful for batch process and in command-line environment.  
With options 5~8, you can perform addition, subtraction, multiplication and division operations on  
the grid data, respectively.  
Special note: Calculate data for a set of arbitrarily distributed points  
If you want to use Multiwfn to calculate real space function value for a set of points (may be  
arbitrarily distributed), in the interface for setting up grid, you should choose "100 Load a set of  
points from external file" and then input the path of the plain text file recording the points. In the  
file the first line should be the number of points recorded, and followed by X/Y/Z coordinates of all  
points. For example  
1
902  
-
-
-
-
-
3.3790050 -2.0484700  
0.0274117  
3.3844930 -1.9472468 -0.2500274  
3.4064601 -1.9221635 -0.1287148  
3.4118258 -1.9232203 -0.0003350  
3.4059106 -1.9218280  
0.1351179  
.
...  
The coordinates must be given in Bohr. The format is in free format, and can have more than four  
columns of data, but the columns after the fourth one will be simply ignored.  
Multiwfn will load coordinates of the points from this file, and then calculate function value  
for them. Finally, the X/Y/Z coordinate and function value of all points will be outputted to a plain  
text file, whose path is specified by users.  
Information needed: Atom coordinates, GTFs (depends on the choice of real space function)  
6
1
3
Functions  
3
.7 Custom operation, promolecular and deformation  
properties (subfunction 0, -1, -2 in main function 3, 4, 5)  
3
.7.1 Custom operation for multiple wavefunctions (0)  
In main function 3, 4 and 5, there is a subfunction allow you to set custom operation for  
multiple wavefunctions. Supported operators include + (add),  (minus), * (multiply), / (divide),  
there is no upper limit of the number of wavefunctions involved in custom operation. For example,  
if the first loaded wavefunction after booting up Multiwfn is a.wfn, then in the setting step of custom  
operation you inputted 2 (viz. there are two wavefunctions will be put into “custom operation list”  
and thus will be operated with a.wfn in turn), then you inputted -,b.wfn and *,c.wfn, the property  
finally you get will be [(property of a.wfn) - (property of b.wfn)] * (property of c.wfn). If you are  
confused, you can consult the example in Sections 4.5.4 and 4.5.5.  
Sometimes the molecular structure in the first loaded file and that in the subsequently loaded  
files are not identical, the grid points you set will be for the first loaded file, all of the other files will  
share the same grid setting.  
Avoid using custom operation in conjunction with main functions -4, -3 and 6, otherwise you  
may get absurd result.  
3
.7.2 Promolecular and deformation properties (-1, -2)  
If you selected subfunction -1 in main functions 3, 4 or 5 before choosing a property (viz. a  
real space function), what you finally get will be promolecular property. Promolecular property is  
the superposition property of atoms in their free-states  
pro  
free  
A
P (r) = P (r  R )  
A
A
If the property you chose is electron density, then the promolecular property is generally  
referred to as promolecular density  
pro  
free  
A
(r) =  
(r  R )  
A
A
This is an artificial density that corresponds to the state when molecule has formed but the density  
has not relaxed.  
Deformation property is the difference between actual property and promolecular property of  
a molecule under the same geometry  
def  
mol  
pro  
P (r) = P (r)  P (r)  
If the property is chosen as electron density, then the deformation property is generally called  
deformation density or known as electronic bonding charge distributions (BCD), which is very  
useful for analyzing charge transfer and bonding nature. Application example of deformation  
density can be found from my paper Acta Phys. -Chim. Sin., 34, 503 (2018).  
6
2
 
 
 
3
Functions  
3
.7.3 Generation of atomic wavefunctions  
Evaluation of promolecular and deformation properties and some functions in Multiwfn  
request atomic wavefunction files, such as calculating Hirshfeld, VDD and ADCH charges, fuzzy  
atomic space analysis and orbital composition analysis based on Hirshfeld partition, etc. The process  
of generating atomic .wfn files are exactly the same.  
After you select subfunctions -1 or -2 to study promolecular and deformation properties,  
Multiwfn checks whether .wfn files of all elements involved in present system have been presented  
in “atomwfn” subdirectory of current directory, if not, Multiwfn automatically invokes Gaussian to  
generate the missing element .wfn files and sphericalizes their densities. If the path of Gaussian  
executable file (“gaupath” parameter in settings.ini) is incorrect or has not been defined, Multiwfn  
will ask you to input the path of Gaussian executable file. The basis set for generating the element  
wavefunctions can be arbitrarily set by user, however it is suggested to use the same basis set as the  
molecular wavefunction.  
The newly generated element wavefunction files or those taken from “atomwfn” directory are  
stored in “wfntmp” subdirectory in current directory. They will be translated to actual position of  
the atoms in present system, meanwhile atomic indices will be added to the .wfn filename (e.g. "Cr  
3
0.wfn"). These are the files will directly be used to calculate promolecular and deformation  
properties.  
Details and skills  
If you want to avoid the step of generating element wavefunctions every time, you can move  
the.wfn files that without number suffix (such as C .wfn) from “wfntmp” directory to “atomwfn”  
directory (if “atomwfn” directory is non-existing, build it by yourself), next time if Multiwfn  
detected that all needed element .wfn files have already been presented in“atomwfn” folder, then  
Multiwfn will directly use them. Multiwfn only invokes Gaussian to calculate the missing  
element .wfn files.  
“atomwfn” subdirectory in “examples” directory contains element wavefunction files of all  
first four rows, they were generated under 6-31G*, and they have been sphericalized. If you want  
to use them, simply copy the "atomwfn" directory to current folder.  
There is  
a quick way to generate all first four-rows element wavefunction files: the file  
examples\genatmwfn.pdb” contains all first four-rows atoms, load it into Multiwfn and generate promolecular  
property, after the calculation of element wavefunctions is finished, copy the .wfn files that without suffix in “wfntmp”  
directory to “atomwfn” directory.  
If your system involves elements heavier than Kr, Multiwfn is unable to generate atom  
wavefunction files by invoking Gaussian and sphericalize their density automatically; in that cases  
you have to calculate and sphericalize atom wavefunctions manually, and then put them into  
“atomwfn” directory, Multiwfn will directly use them.  
The default theoretical method for generating wavefunction for main group elements in first  
four-rows (index from 1 to 20 and 31 to 36) is ROHF, for the transition metals in the fourth row,  
UB3LYP is used. In general, the promolecular and deformation properties are insensitive to  
theoretical method. If you want to specify theoretical method by yourself, you can input theoretical  
method and basis set at the same time with slash as separator, for example BLYP/6-311G*. Do not  
add “RO” or “U” prefix since they will be added automatically. If error occurs during generation of  
atom wavefunctions, please check Gaussian input and output files in “wfntmp” directory carefully.  
6
3
 
3
Functions  
Notice that the maximum character length of the path of .wfn file permitted by Gaussian is  
only 60! The path will be truncated and cause error if the length exceeded this threshold. So do not  
put Multiwfn in the directory with too long path!  
3
.7.4 Sphericalization of atom wavefunction  
The main purpose of Multiwfn supporting promolecular and deformation property is for  
generating promolecular and deformation density, however, electron density of most elements in  
free and ground state is not in spherical symmetry, hence will lead to orientation dependence  
problem. To tackle it, atomic electron density must be sphericalized. However, there is no unique  
way to do this. In Multiwfn, atom electron density is sphericalized by modifying atom wavefunction  
artificially, here I describe the detail. If you want to skip the sphericalization step, simply set the  
“ispheratm” in settings.ini to 0.  
3
2 2  
For elements in IV A group, Multiwfn uses sp configuration to replace s p ground state by  
3
default. This treatment is reasonable, since in most molecules these atoms are in sp hybridization.  
For VI A, VII A and Fe, Co, Ni, Multiwfn equalizes the occupation number of orbitals within the  
same shell; for example, oxygen has two singly occupied 2p orbitals and one doubly occupied 2p  
orbitals in ground state, the number of electrons in this shell is 4, so Multiwfn sets the occupation  
number of all the three orbitals to 4/3. This method works because the shape of occupied orbitals  
are always nearly identical, regardless of the original occupation number is one or two. However,  
the difference between virtual orbital and occupied orbital is remarkable, thus Multiwfn uses another  
method to sphericalize electron density of elements in III A group, as well as Sc, Ti and V. In this  
method, the singly occupied orbitals are duplicated and rotated. Taking boron as example, assume  
that the singly occupied 2p orbital is directing along Z-axis, Multiwfn replicates this orbital twice  
and turn them toward X-axis and Y-axis respectively, finally the occupation numbers of the three  
orbitals are set to 1/3. (Users needn’t to check the orientation of singly occupied orbital by  
themselves). If you hope that Multiwfn sphericalizes atoms in IV A group in such manner instead  
3
of using sp configuration, set “SpherIVgroup” in settings.ini to 1.  
Notice that the sphericalization methods used in Multiwfn are closely related to wavefunction  
type, the methods fail if unrestricted wavefunction is used for main group elements or restricted  
open-shell wavefunction is used for transition metals. These methods also fail if Hartree-Fock  
method is used for transition metals, because orbital order produced by HF is different from most  
DFT cases (the HF’s order is wrong, 4s is higher than 3d).  
3
.8 Checking & Modifying wavefunction (6)  
This function provides a lot of subfunctions for checking and modifying loaded wavefunction,  
all subfunctions take effect immediately, so after modification you can print related information to  
check if your operations are correct. Once you finished all modifications of wavefunction, you can  
save current wavefunction to “new.wfn” file or return to main menu, all following tasks which make  
use of wavefunction information will be affected. The title in this interface shows the number of  
GTFs, orbitals, atoms and alpha/beta electrons of current wavefunction.  
6
4
 
 
3
Functions  
Below is explanation of each subfunction in this catagory.  
Subfunction -1: Return to main menu.  
Subfunction -3 and -4: Defining molecular fragment. In -3 you directly define fragment by  
inputting atomic indices; while in -4 you should input the indices of the atoms to be excluded, the  
remaining atoms will constitute the fragment. The GTFs whose centers do not belong to this  
fragment will be discarded (can be imagined as corresponding GTF coefficients in all orbitals are  
set to zero). This function affects all the following tasks which make use of GTF information, in  
particular, the calculations involving real space functions.  
When use these two functions? For large molecules, what you are interested in may be only a  
small region, by discarding atoms in other region, the calculation speed of time-consuming task  
such as generating grid data can be increased evidently. Besides, sometimes you may only want to  
obtain real space function contributed by certain atoms, these two functions can fulfill your purpose.  
This function can be safely used together with main function 1~6. For other tasks, DO NOT  
use this function if you do not understand what you are exactly doing, otherwise you may obtain  
wrong or meaningless results. Notice that this function is irreversible, the discarded GTFs cannot  
be recovered, unless you reboot the program and reload the wavefunction file.  
Subfunction 0: Save current modified wavefunction to new.wfn file in current directory.  
Multiwfn can be used as an .mwfn/.fch/.molden...wfn format converter through this function.  
Notice that the orbitals with zero occupation number and the atoms do not have GTFs will be  
automatically discarded during saving.  
Subfunction 1: Print information of all GTFs, including the centers they are belonging to, GTF  
types and exponents.  
Subfunction 2: Print information of all basis functions, including the shells/centers they  
attributed to, types, and corresponding GTF index ranges.  
Subfunction 3: Print basic information of all orbitals, including energies, occupation numbers,  
orbital types (Alpha, beta or alpha+beta).  
Subfunction 4: Print detail information of an orbital, including the expansion coefficients with  
respect to GTFs (along with GTF information), note that the coefficients include GTF normalization  
constants.  
Subfunction 5: Print coefficient matrix in basis function (not the coefficients with respect to  
GTFs), only available when the input file contains basis function information.  
Subfunction 6: Print one-particle density matrix in basis functions, only available when the  
input file contains basis function information.  
Subfunction 7: Print various kinds of integral matrix between basis functions, including  
overlap integrals, electric/magnetic dipole moment integrals, kinetic energy integrals, velocity  
integrals, electric quadrupole and octopole integrals. For overlap matrix, eigenvalues are printed  
together, which are useful for checking linear dependency. Only available when the input file  
contains basis function information.  
Subfunction 11: Swap centers or types or exponents or orbital expansion coefficients of two  
GTFs, or swap all information of two GTFs at once (identical to swap record order of two GTFs,  
thus does not affect any analysis result)  
Subfunction 21 to 24: Set the center, type, exponent and expansion coefficient of a specific  
GTF in an orbital respectively.  
Subfunction 25: Set the expansion coefficients of some GTFs that satisfied certain conditions  
6
5
3
Functions  
in some orbitals. The conditions you can set for GTFs include: Index range of GTFs, index range of  
atoms, GTF types (you can input such as YZ, XXZ). The selected GTFs are intersection of these  
conditions. When program is asking you for inputting range, you can input such as 3,8 to select  
those from 3 to 8, input 6,6 to select only 6, especially, input 0,0 to select all.  
If the input file also contains basis function information, by this option you can also set  
expansion coefficients of basis functions.  
Subfunction 26: Set occupation number of some orbitals. You can directly set them to a  
specific value, or add, minus, multiply, divide them by a given value. This function is very useful  
for shielding the contributions from certain orbitals to real space functions, namely setting their  
occupation numbers to zero before calculating real space functions.  
Subfunction 27: Set orbital type of some orbitals, then wavefunction type will be  
automatically updated, please check the prompts shown on the screen.  
Subfunction 28: Set energy of some orbitals. You can directly set them to a specific value, or  
add, minus, multiply, divide them by a given value. This function is useful when you want to rectify  
the orbital energies using a given relationship (e.g. J. Am. Chem. Soc., 121, 3414 (1999)) before  
plotting density-of-states (DOS) map.  
Subfunction 31: Translate the whole wavefunction and all atom coordinates of current system  
by inputting translation vectors and their units.  
Subfunction 32: Translate and duplicate the whole wavefunction and all atom coordinates of  
current system, users need to input translation vectors, their units and how many times the system  
will be translated and duplicated according to the translation vectors. This function is useful for  
extending the primitive cell wavefunction outputted by Gaussian PBC function to supercell  
wavefunction, of course you can calculate supercell wavefunction directly by Gaussian, but much  
more computational time will be consumed. Notice that constructing wavefunction of supercell by  
this way is only an approximation, because the mix between orbitals of neighbouring primitive cell  
to new supercell orbitals is completely ignored.  
Subfunction 33: Rotate wavefunction, namely XY, YZ, ZX  
Subfunction 34: Set occupation number of all inner molecular orbitals in present system to  
zero, namely only contribution from valence orbitals will be reserved for following studies. The  
number of inner MOs is automatically determined, howver, the atoms using pseudo-potential are  
not taken into account.  
Subfunction 35: This function is very useful if you want to discard contribution of orbitals  
with certain irreducible representation (IRREP) in all kinds of analyses. After you enter this  
subfunction, IRREP of all occupied orbitals will be shown, the "N_orb" denotes the number of  
occupied orbitals belonging to the corresponding IRREP. If you want to discard contribution of  
some IRREPs in the succeeding analyses, you can select option 1 and input the index of the IRREPs,  
then the occupation number of corresponding orbitals will be set to zero and thus their contributions  
are eliminated, and you will also see their status are changed from "Normal" to "discarded". Then  
you can choose option 0 to save wavefunction and quit. You can also choose option 2 to recover the  
original occupation number of all orbitals, or choose 3 to reverse the status of every IRREP between  
"Normal" and "Discarded". Note that this subfunction only works for .mwfn, .molden and .gms files,  
because only these files record orbital IRREPs (beware that the IRREPs in the .molden file produced  
by many quantum chemistry programs are missing or incorrect). Besides, only restricted and  
unrestricted SCF wavefunctions are supported.  
6
6
3
Functions  
Subfunction 36: Invert phase of some orbitals (i.e. replacing expansion coefficients of basis  
functions and GTFs of these orbitals with their negative values).  
Information needed: Basis function (only for subfunction 2, 5, 6, 7), GTFs, atom coordinates  
3
.9 Population analysis and atomic charges (7)  
This module is used to calculate population number of basis functions, shells, atoms, fragments,  
or atomic charges. There are some points should be noted:  
Regardless of which subfunction you choose, if you want to evaluate fragment  
charge/population (the sum of charge/population of the atoms in a fragment), you should select  
option "-1 Define fragment" first and input atom indices to define the fragment. Then once the  
calculation of atomic charges is finished, fragment charge will be printed along with atomic charges.  
After atomic charge calculation, you can choose to output atomic coordinates with calculated  
charges to [name of loaded file].chg file in current directory, see Section 2.5 for detail about .chg  
format.  
If the file loaded when Multiwfn boots up is .chg format, you can use option "-2 Calculate  
interaction energy between fragments based on atomic charges" in present function to evaluate  
interfragment electrostatic interaction energy between two given fragments by classic Coulomb  
formula (see below) using the atomic charges in this .chg file.  
q q  
A
B
ECoulint  
=
   
|
R  R |  
Afrag1 Bfrag 2  
A
B
This feature is useful for studying electrostatic interaction component in total molecular interaction  
energy, as well as evaluating intermolecular exciton coupling energy based on atomic transition  
charges (see Section 4.A.9 on how to derive them).  
3
.9.1 Hirshfeld atomic charge (1)  
Hirshfeld is a very popular atomic population method based on deformation density partition,  
Hirshfeld charge is defined as (Theor. Chim. Acta (Berl.), 44, 129 (1977))  
Hirsh  
q = − w (r) (r)dr  
A
A
def  
where  
def  
pro  
pro  
(r) = (r)   (r)  
free  
(r) =  
(r  R )  
A
A
A
free  
A
(r  R )  
Hirsh  
A
wA (r) =  
pro  
(r)  
The advantages of Hirshfeld population are:  
. Result is qualitatively consistent with general chemical concepts such as electronegativity  
1
6
7
 
 
3
Functions  
rule.  
2
3
. The weighting function w for space partition has clear physical meaning.  
. Unlike the methods based on integrating electron density such as AIM charge, what the  
Hirshfeld charge reflects is the amount of transfered electron density during molecule formation,  
the density not transfered is not involved.  
4
5
. Insensitive to the quality of wavefunction.  
. Although calculating Hirshfeld charge needs integration in real space, due to the smooth  
integrand, sophisticated density functional theory (DFT) grid-based integration schemes can be  
directly used, so Hirshfeld population is high-efficient.  
6
. The wide application field. Deformation density data can also be obtained by X-ray  
crystallography experiments. Moreover, the applicability of Hirshfeld population is not constrained  
by the type of wavefunction, the method can be directly applied to solid system, where the  
wavefunction generally be described by plane-wave functions.  
The disadvantages of Hirshfeld population are the charge is always too small and the poor  
reproducibility of observable quantities, such as molecular dipole moment and ESP, the reason is  
Hirshfeld population completely ignores atomic dipole moments.  
After calculation, if the printed sum of all Hirshfeld charges is very close to integer, that means  
the quadrature is accurate; if not, that means the outputted Hirshfeld charges are unreliable, you  
need to increase the density of integration points by setting “radpot” and “sphpot” to larger value  
and calculate again. For balancing computational time and accuracy, the default value of “radpot”  
and “sphpot” are 75 and 434, respectively, you can set them to 100 and 590 respectively to obtain  
more accurate results.  
An example is given in Section 4.7.1.  
Information needed: GTFs, atom coordinates  
3
.9.2 Voronoi deformation density (VDD) atom population (2)  
The only difference between VDD and Hirshfeld population is the weighting function w. In  
VDD population, the Voronoi cell-like partition is used, each cell corresponds to an atom, see J.  
Comput. Chem., 25, 189 (2004) for details.  
The results of VDD population are similar to Hirshfeld population in common, because the  
magnitude of deformation density is always small, so there is no significant change in charges when  
different weighting functions are used. The outputted terms are identical to Hirshfeld population.  
Personally, I suggest you use Hirshfeld population instead of VDD.  
Note that if the sum of VDD atomic charge deviates from molecular net charge evidently, that  
means the numerical integration accuracy is not satisfactory, and hence you should enlarge "sphpot"  
parameter in settings.ini to improve the result. "radpot" parameter also influences the result, but not  
so significantly as "sphpot".  
Information needed: GTFs, atom coordinates  
6
8
 
3
Functions  
3
.9.3 Mulliken atom & basis function population analysis (5)  
Theory  
Mulliken analysis is the oldest population method based on orbital wavefunction, supported by  
almost all quantum chemistry packages.  
2
Orthonormality condition of spin orbital wavefunction entails 1= (r) dr , if we assume  
that the orbital is real type and insert the linear combination equation  (r) = C  (r) into  
i
a,i  
a
a
it, we get  
2
2
2
a,i  
1
=  C  (r) dr = C +  
C C S  
=
C + 2  
C C S  
a,i  
a
a,i  a,i b,i a,b  
 a,i b,i a,b  
a
a
a
ba  
a
a ba  
where Sa,b =  (r) (r)dr, the normality of basis functions are used in derivation. The first  
a
b
term is “local term”, denotes the net population of each basis function in orbital i, the second term  
is “cross term”, denotes the shared electrons between basis function pairs in orbital i. Certainly the  
local terms should be completely attributed to corresponding basis functions, however for cross  
terms the partition method is not unique. Mulliken defined the population of basis function a in spin  
orbital i as  
2
i,a = C + C C S  
a,i  
a,i b,i a,b  
ba  
That is each cross term 2C C S  
is equally partitioned to corresponding two basis functions.  
a,i b,i a,b  
The population number of atom A is simply the sum of population numbers of all basis  
functions attributed to atom A in all orbitals. Mulliken atomic charge is defined as  
q = Z −  
ni,A = Z −  
i  
i,a  
A
A
A
   
i
i
aA  
where  is orbital occupation number, ni,A is the contribution from orbital i.  
Mulliken analysis is not ideal for practical application due to these shortcomings:  
1
2
3
. Poor reproducibility of observable properties such as molecular dipole moment  
. The “equal partition” of cross term has no strict physical meaning  
. Very high basis set dependence. In particular, diffuse function must not be presented,  
otherwise the result will be misleading.  
. Occasionally, meaningless result occurs (population number is negative).  
4
Usage  
Since amount of outputted information is huge for large systems, before selecting below  
subfunctions, you can use option -1 to change the default output destination from screen to a specific  
plain text file.  
·
Subfunction 1 (Output Mulliken population and atomic charges): Population of basis  
6
9
 
3
Functions  
functions, population of basis function shells, population of each angular moment of atomic orbitals,  
as well as atomic charges are printed.  
·
Subfunction 2 (Output gross atomic population matrix and decompose it): Gross atom  
population matrix is printed, from which you can get local terms of each atom (diagonal element)  
and cross terms between each atom pair (non-diagonal element multiplies 2). The matrix is defined  
as  
i
A,B  
=
=
i  
C C S  
A,B  
 a,i b,i a,b  
i
i
aA bB  
Note that the last row of outputted matrix is the sum of corresponding column elements, that  
is the total population number of corresponding atom. You can also choose to decompose the matrix  
i
to contribution of each occupied orbital, the  
Ω
matrices will be outputted to groatmdcp.txt in  
current directory.  
i
By the way, the quantity 2  
is just the Mulliken bond order between atom A and B  
A,B  
contributed from orbital i, as we will see in Section 3.11.4.  
Subfunction 3 (Output gross basis function population matrix and decompose it): Gross  
·
basis function population matrix can be outputted by this option for further analyzing detail of  
electron distribution, the matrix element is defined as  
i
a,b  
=
a,b  
=
 C C S  
i
a,i b,i a,b  
i
i
Likewise in subfunction 2, the last row of the outputted matrix is total population number of  
corresponding basis function. You can also select to output contribution of each occupied orbital,  
i
namely  
, to grobasdcp.txt in current directory (notice that this file is extremely large even for  
a,b  
medium-sized system).  
·
Subfunction 4 (Output orbital contributions to atomic populations to atmpopdcp.txt): This  
option is used to output contributions of occupied orbitals to atomic populations, namely all  
i i,a terms, to atmpopdcp.txt in current folder.  
i
aA  
An example of Mulliken population analysis is given in Section 4.7.0.  
Information needed: Basis functions  
3
.9.4 Löwdin atom & basis function population (6)  
The only difference between Löwdin and Mulliken population analysis is whether Löwdin  
orthogonalization is performed first. In Löwdin orthogonalization, the transformation matrix is  
0.5  
H
X = Us U  
where U is eigenvector matrix of overlap matrix, matrix s is diag(1, 2...), where {} is eigenvalue  
set of overlap matrix. After Löwdin orthogonalization, the overlap matrix becomes identity matrix,  
7
0
 
3
Functions  
1  
and new coefficient matrix is X C  
.
Ostensibly, Löwdin population avoids the partition for cross terms since they have become  
zero, actually, the partition step is no more than hidden in the orthogonalization. Since Löwdin  
orthogonalization still has no strong physical meaning, it cannot make conclusion that Löwdin  
population is better than Mulliken. In view of practical results, one also found Löwdin charges have  
no any evident advantages relative to Mulliken charges, though some people argued that Löwdin  
charges have better basis set stability and reproducibility of molecular dipole moment. Besides,  
Mayer et. al. found Löwdin population has rotation dependence to some extent when cartesian type  
Gaussian basis functions are used, however the dependency can be safely ignored in generally, for  
detail please see Chem. Phys. Lett., 393, 209 (1968) and Int. J. Quantum Chem., 106, 2065 (2006).  
Information needed: Basis functions  
3
.9.5 Modified Mulliken atom population defined by Ros & Schuit  
(SCPA) (7)  
Some people had proposed several different partition methods of cross term to improve  
Mulliken analysis, they are generally called as modified Mulliken population analysis (MMPA). In  
the method proposed by Ros and Schuit (Theo. Chim. Acta, 4, 1 (1966)), the composition of basis  
function a in orbital i is defined as  
2
a,i  
C
i,a  
=
2
b,i  
C
b
only the square of coefficients are presented in the formula, so this method is also called C-squared  
Population Analysis (SCPA). By inserting the identity  
2
1
=
C +  
C C S  
a,i  a,i b,i a,b  
a
a ba  
into the right most of above formula, can be rewritten as  
2
a,i  
C
2
a,i  
i,a = C +  
C C S  
2
b,i  
 a,i b,i a,b  
C
a ba  
b
It is clear that when calculating composition of basis function a in orbital i, what is partitioned is  
not the cross terms between atom a and other atoms, but the total cross term of all atom pairs. The  
SCPA atomic charges can be calculated in the same manner as Mulliken charges by using the newly  
defined . Relative to Mulliken population, the advantage of SCPA is that negative value of  
population number never occurs.  
Information needed: Basis functions  
7
1
 
3
Functions  
3
.9.6 Modified Mulliken atom population defined by Stout & Politzer  
(
8)  
Stout and Politzer defined the as (Theoret. Chim. Acta, 12, 379 (1968))  
2
a,i  
C
2
a,i  
i,a = C +  
2C C S  
a,i b,i a,b  
2
a,i  
2
b,i  
C + C  
ba  
That is cross terms are partitioned according to the ratio of the squares of corresponding coefficients.  
Ostensibly, this definition has more consideration on the unbalanced nature of cross term, however  
in practical applications the results are even worse than Mulliken, therefore this method is rarely  
used now. Besides, Grabenstetter and Whitehead had pointed out that this MMPA definition has  
unitary transformation dependence, so if the molecule is rotated the results changed (the dependence  
is remarkable and cannot be ignored).  
Information needed: Basis functions  
3
.9.7 Modified Mulliken atom population defined by Bickelhaupt (9)  
The population number of a basis function defined in Organometallics, 15, 2923 (1996) is  
2
a  
=
 C + wa,b 2 C C S  
i
a,i    
i
a,i b,i a,b  
i
ba  
i
where the weight of basis function a for partitioning the total cross term between a and b in all  
orbitals is  
2
a,k  
k  
C
k
2
wa,b  
=
2
b, j  
iC +  C  
a,i  
j
i
j
Essentially, it is equivalent to define as  
2
i,a = C + w 2C C S  
a,i  
a,b  
a,i b,i a,b  
ba  
This method is similar to the MMPA defined by Stout and Politzer, the difference is in the latter  
the weight wa,b is only related to local terms of basis functions a and b in current orbital, while in  
present method the weight is related to total local terms of basis functions a and b.  
Information needed: Basis functions  
3
.9.8 Becke atomic charge with atomic dipole moment correction (10)  
In the paper J. Chem. Phys., 88, 2547 (1988), Becke proposed a weighting function for  
converting whole space integral to multiple single-center spherical integrals, although the weighting  
function is not intend for population analysis, Multiwfn still makes an attempt to use this weighting  
function as atomic space to obtain atomic charges. The Becke charge can be defined as  
7
2
 
 
 
3
Functions  
q = Z  w (r)(r)dr  
A
A
A
The radii used for evaluating the Becke weighting function (or say Becke atomic space) can be  
controlled by uses, see corresponding options shown on screen. For details about Becke weighting  
function please see J. Chem. Phys., 88, 2547 or Section 3.18.0. According to my experiences, by  
using the default "modified CSD" radii, Becke charge is reasonable for typical organic systems, but  
not very appropriate for ionic systems. For detail about "modified CSD" radii, see the end of Section  
3
.18.0.  
After the Becke charges are calculated, atomic dipole moment correction will be performed  
automatically. The correction process is identical to the one used for correcting Hirshfeld charge  
see next section). After the correction the charges will have better electrostatic potential  
(
reproducibility and can exactly reproduce molecular dipole moment.  
Information needed: GTFs, atom coordinates  
3
.9.9 Atomic dipole moment corrected Hirshfeld atomic charges  
(
ADCH, 11)  
Basic characteristic and usage  
The main reason why Hirshfeld charges are too small and have poor reproducibility of  
observable quantity is that atomic dipole moments are completely neglected. In the ADCH method  
proposed by me (J. Theor. Comput. Chem., 11, 163 (2012)), atomic dipole moment of each atom is  
expanded to correction charges placed at neighbour atoms, then ADCH charge is just the sum of  
original Hirshfeld charge and correction charge. ADCH atomic charges are very reasonable in  
chemical sense, molecular dipole moment is exactly reproduced, the reproducibility of ESP is close  
to the atomic charges obtained from fitting ESP. Compared to another method that try to improve  
Hirshfeld charges, namely Hirshfeld-I (see Section 3.9.13), the computational cost of ADCH charge  
is negligible. Owing to its many advantages, ADCH is a highly recommended atomic charge model.  
For an extensive comparison of atomic charge models, see Acta Phys. -Chim. Sin, 28, 1 (2012).  
Before doing ADCH correction, Hirshfeld charge will be calculated first. In the summary field,  
“corrected” and “before” correspond to ADCH charge and Hirshfeld charge respectively. At final  
stage, the “Error” means the the difference between molecular dipole moment produced by ADCH  
charges and the one produced by actual electron density, “Error” is always equals to or very close  
to zero, because ADCH charges in principle exactly reproduce molecular dipole moment.  
If you would like to obtain the detail of charge transfer between atoms in the atomic dipole  
moment correction process, you can set “ishowchgtrans” in settings.ini to 1.  
Algorithm detail about expanding atomic dipole moment  
Full details of ADCH charge can be found from its original paper, here I only mention how the  
atomic dipole moment correction (ADC) is realized.  
Assume that we want to expand atomic dipole moment of atom A as correction charges, clearly,  
the sum of all correction charges should be zero, and the dipole moment evaluated based on the  
correction charges should be exactly equal to atomic dipole moment, namely below conditions  
should be satisfied  
7
3
 
3
Functions  
qAB = 0  
B
μ = qABRB  
A
B
where qAB is transferred charge from atom A to B, in other words, it is the correction charge on  
atom B due to A. The index B cycles all atoms in the system. RB is relative coordinate (column  
vector) of atom B with respect to atom A  
The correction charges are expected to be distributed only around atoms neighouring to A, this  
could be realized by minimizing function F:  
2
(
qAB )  
F =  
+ qAB + (μ  qABR )  
A
B
AB  
B
B
B
where  and  are Lagrangian multipliers used to satisfy the two constraint conditions, the AB is a  
function decreases rapidly as increase of distance between A and B, and its detailed form is  
dependent of atomic radii of A and B, see original paper of ADCH for more information. Obviously,  
this design of F suppresses occurrence of large correction charge on the atoms far away from atom  
A.  
It is shown that after some manipulations, the working equation of evaluating qAB is  
AB  
T
1  
qAB  
=
[(R  R )  Λ μ ]  
B
B
A
AB  
B
where superscript "T" is sign of transpose, and  
T
T
Λ = R (R )  R RB  
B
B
AB RB  
B
T
 R (R )  
AB  
B
B
B
T
B
RB  
=
,
R (R )  
=
B
B
AB  
AB  
B
B
If the atom A is in local planar region, the  matrix will be exactly or almost singular matrix,  
in this case inversed matrix of  obviously cannot be obtained. Notice that the solution to this  
problem in current implementation is slightly different to the one introduced in the ADCH original  
paper. In current Multiwfn, the  matrix is first diagonalized, the eigenvalues with absolute value  
-5  
less than 10 will be simply set to zero (the corresponding eigenvector typically perpendicular to  
the local plane of atom A), and remaining eigenvalues are inversed, now this matrix has  
-1  
corresponded to the  in the new local coordinate. Then R  R  
and  
μ
are transformed  
A
B
B
to the new local coordinate by doing left multiplication of transpose of eigenvector matrix of  on  
them. Finally, the qAB is obtained using above formula.  
An example of calculating ADCH charges is given in Section 4.7.2.  
Information needed: GTFs, atom coordinates  
7
4
3
Functions  
3
.9.10 CHELPG (Charges from electrostatic potentials using a grid  
based method) ESP fitting atomic charge (12)  
Theory  
CHELPG (J. Comput. Chem., 11, 361 (1990)) is one of most widely used electrostatic  
potentials (ESP) fitting charge models. Compared to CHELP and Merz-Kollman methods, CHELPG  
charges have better rotational invariance, mostly due to the fitting points are distributed in cubic  
grid manner.  
In CHELPG model, a box is defined first to enclose the whole molecule, extension distance in  
each side is 2.8 Å, see the red box in the following picture  
Fitting points are evenly distributed in the box, the default spacing is 0.3 Å. For any fitting  
point, if the distance between the point and any nucleus is smaller than vdW radius of the atom, or  
the distances between the point and all nuclei are larger than 2.8 Å, then the fitting point will be  
discarded. The purple dots shown above are finally used fitting points.  
Like other ESP fitting methods, in CHELPG, the deviation function shown below is minimized  
to make the ESP calculated by atomic charges (Vq) close to the ESP calculated based on  
wavefunction (V) as good as possible.  
2
F(q ,q ...q ) = [V (r ) V(r )]  
1
2
N
q
i
i
i
where ri is coordinate of fitting point i. {q} are fitted point charges, their positions are referred to as  
fitting centers. Notice that q does not necessarily correspond to atomic charge, the fitting centers  
can be defined at arbitrary positions.  
It can be shown that the minimization of F could be formulated to below matrix equation  
Aq = B  
which can be further explicitly written as  
A
A
A  
1 q   B   
1
1
1
12  
1N  
1
1
  
1 q  
  
A
A
A  
B2  
2
22  
2N  
2
1   =     
  
1 q  
  
  
A
A
A  
B
N
N1  
N 2  
NN  
N
1
1
1
1
0   q   
tot  
7
5
 
3
Functions  
with  
1
V(r )  
i
A
=
B =  
q = qA  
A,B  
A
tot  
r r  
r
iA  
i
iA iB  
i
A
where A and B are indices of fitting centers and N is total number of fitting centers. The column  
vector q is what we need, its first N elements correspond to charges of the fitting centers. The q  
-1  
could be easily evaluated as q=A B.  
Usage  
In the interface there are many options, which are introduced below.  
Option 1: If selecting this option, Multiwfn will start to calculate ESP value at each fitting  
point, then fitted atomic charges of all fitting centers will be outputted on screen. RMSE and  
RRMSE are also outputted automatically, they measure quality of fitting, the smaller value suggests  
that the fitted charges have better ESP reproducibility. RMSE and RRMSE are defined as (where N  
is the number of fitting points)  
2
[
V (r ) V (r )]  
q
i
i
i
RMSE =  
N
2
[
V (r ) V (r )]  
q
i
i
i
RRMSE =  
2
V (r )  
i
i
Options 2~4: These options are used to set parameters for distributing fitting points. The  
default values are reasonable and should not be changed without special reasons.  
Option 4: If you hope fitting points only distribute over certain fragment, you can select this  
option and input atom indices, then a fitting point will be taken into account only if the atom closest  
to it belongs to the given atom list.  
Option 5: During the ESP fitting, three kinds of ESP can be calculated and used, namely  
"Nuclear + Electronic" (default), "Electronic" and "Transition electronic". Commonly you should  
not change this option. The "Transition electronic" should be chosen if you want to evaluate the so-  
called TrEsp (transition charge from electrostatic potential), please check Section 4.A.9 for details.  
Option 6: If you have chosen this option once to switch its status to "Yes", then after  
calculation, coordinates with ESP values of all fitting points can be exported to ESPfitpt.txt or  
ESPfitpt.pqr in current folder, the former is more readable, while the latter can be directly loaded  
into VMD program to visualize the fitting points (and can be colored according to the "charge"  
column, which records ESP values). In addition, fitting points with absolute difference between  
exact ESP and the ESP evaluated based on atomic charges can be exported to ESPerr.pqr so that  
ESP reproduction error in various molecular regions can be visualized in VMD. See Section 4.7.8  
for illustration.  
Option 10: Choose the atomic radii used in fitting. The atomic radii employed in fitting affects  
the distribution of fitting points, and thus influence the resulting charges. There are three modes can  
be chosen to set the radii:  
(1) This is default mode, the radii defined in original paper of CHELPG are used. However,  
only the elements in the first three rows are defined, if your system contains other elements,  
Multiwfn will ask you to input their vdW radii in turn. If you do not have proper radii in hand, you  
7
6
3
Functions  
can directly press ENTER button, then vdW radius of UFF forcefield of corresponding element  
multiplied by 1/1.2 will be used, which is commonly a reasonable choice.  
(
2) Employing the UFF radii scaled by 1/1.2 for all elements. The UFF radii can be find in  
Table 1 of UFF original paper J. Am. Chem. Soc., 114, 10024 (1992).  
3) Load radii of all elements involved in present system from external file. Multiwfn will ask  
(
you to input the file path during fitting, the format of the file should like follows, the unit of the radii  
should be in Å, all elements in the system must be defined:  
H 1.2  
O 1.8  
Cu 2.2  
Option -1: For flexibility consideration, by using this option, coordinates of fitting points are  
allowed to be read from external file to replace the CHELPG fitting points. The format of the file  
should be  
numdata  
X
X
Y
Y
Z
Z
[ESPval]  
[ESPval]  
For fitting point 1  
For fitting point 2  
.
..  
where the ESPval is an optional term, which denotes precalculated ESP value at corresponding point.  
If numdata is a negative value, then the ESP values used in charge fitting will be read from the  
fourth column rather than calculated by Multiwfn.  
Option -2: If you have special reasons (e.g. you want to place additional fitting centers at lone  
pair or -hole region to enhance description of ESP around corresponding region), then coordinates  
of additional fitting centers can be read from external file by using this option. The format of the  
file should be  
numdata  
X
X
Y
Y
Z
Z
For additional fitting center 1  
For additional fitting center 2  
.
..  
where numdata denotes how many entries are in this file. X, Y, Z are coordinates (in Å).  
Option -3: If you simply want to examine reproducibility for ESP at the fitting points of given  
atomic charges, then you can use this option to load atomic charges from specific .chg file. Then  
when you select option 1 to start the ESP fitting process, no ESP fitting charges will be yielded, only  
the RMSE and RRMSE of the given atomic charges will be outputted (note that if you have chosen  
option -2 to load additional fitting centers, then the number of charges in the loaded .chg file should  
be identical to the total number of fitting centers). If you only want to study reproducibility of ESP  
for the fitting points around specific fragment, you can choose option 4 and input the atom indices.  
An example is given in Section 4.7.1.  
Information needed: GTFs, atom coordinates  
3
.9.11 Merz-Kollmann (MK) ESP fitting atomic charge (13)  
Merz-Kollmann (MK) charge is another well known charge model derived from ESP fitting,  
7
7
 
3
Functions  
see J. Comput. Chem., 11, 431 (1990). The only difference between MK and CHELPG is grid setting.  
In MK, the fitting points are evenly distributed on the layers of 1.4, 1.6, 1.8 and 2.0 times the vdW  
radii of each atoms, if distance between a fitting point and any atom is smaller than 1.4 times of its  
vdW radius, then this fitting points will be discarded.  
2
In the MK module of Multiwfn, the density of points per Å on the MK layers can be set by  
option 2, the number of layers and the scale factor of atomic vdW radii used to define the layers can  
be set by option 3, the atoms used to construct the MK fittings points can be set by option 4. For  
description of other options and outputs, see last section.  
Like the CHELPG module, in the MK module you can also choose the mode for determining  
atomic radii used in the fitting by option 10. Notice that the original paper of MK method does not  
explicitly present atomic radii. In Multiwfn, the default MK radii for the first and second rows and  
P, S, Cl are in line with those in MK code of Gaussian, while the default radii for Na~Si are defined  
as 1.57, 1.65, 1.65, 1.80 Å, respectively.  
In the example in Section 4.7.8, I exemplified how to use the MK module to investigate ESP  
reproducibility of given atom charges on all MK fitting points and on the fitting points  
corresponding to specfic atoms. In addition, the example showed how to visualize ESP reproduction  
error at various molecular regions.  
Information needed: GTFs, atom coordinates  
3
.9.12 AIM atomic charge (14)  
AIM (Atoms-in-molecules) population denotes the number of electrons in AIM basin, and  
accordingly, nuclear charge minusing AIM population yields AIM charge, which is also known as  
Bader charge. AIM charges can be calculated in basin analysis module, please check the example  
given in 4.17.1 on how to do this. Related theories and algorithms of basin analysis module are  
introduced in Section 3.20.  
Information needed: GTFs, atom coordinates  
3
.9.13 Hirshfeld-I atomic charge (15)  
Hirshfeld-I (HI) method was proposed in J. Chem. Phys., 126, 144111 (2007), it is an important  
extension of Hirshfeld method. It is believed that the atomic space defined by Hirshfeld is not quite  
ideal, because it does not respond actural molecular environment. In HI, atomic spaces are gradually  
refined via an iterative scheme. After convergence, the final HI atomic spaces are evidently more  
physically meaningful than the Hirshfeld ones.  
There are some variants of HI method, including the Hirshfeld-E proposed in J. Chem. Theory  
Comput., 9, 2221 (2013), the Hirshfeld-I proposed in J. Comput. Chem., 32, 1561 (2011) and the  
fractional occupation Hirshfeld-I (FOHI) proposed in J. Chem. Theory Comput., 7, 1328 (2011).  
Also, there is an iterative atomic space method name iterated stockholder atoms (ISA), which is  
closely related to HI, see Chem. Commun., 2008, 5909. However, since in my personal viewpoint  
7
8
 
 
3
Functions  
these variants and ISA are not quite important or have special physical meaning, they are not  
implemented in Multiwfn.  
Basic theory of HI method  
In HI method, the weighting function of atom A at iteration n is defined as  
(
A
n1)  
(n1)  
A
(r  R )  
(r  R )  
(
A
n)  
A
A
w (r  R ) =  
A
(n1)  
(n1)  
B (r  R )  
(r)  
pro  
B
B
where r and R denote spatial coordinate and position of atomic nucleus, respectively. The atomic  
density involved in HI is obtained by linear interpolation between spherically averaged free-state  
atomic density of adjacent charge states:  
(
A
n)  
(n1)  
free  
A,low  
(n1)  
free  
(r) = (qhigh  qA )  
(r) + (qA  q )  
(r)  
A,high  
low  
where qhigh and qlow are ceiling and floor integer of atomic charge of atom A at n-1 iteration, while  
free  
A,high  
free  
and  
are spherically averaged atomic density of atom A at these two charge states,  
A,low  
respectively. For example, if atom A carries 0.2 charge at n-1 step, then its radial atomic density at  
step n will be computed as  
(
A
n)  
free  
A,q=0  
free  
(r) = 0.8  
(r) + 0.2  
(r)  
A,q=+1  
Before the HI iteration, radial density of all atoms are initialized to their neutral state.  
Based on HI atomic weighting functions, HI atomic charges can be straightforwardly obtained.  
The HI iteration continues until all atomic charges converged to a given criterion.  
Note: It is clear that the HI atomic charges yielded at the first iteration are in principle identical to Hirshfeld  
charges. However, this is not exactly true in Multiwfn, because currently the rule of generating spherically averaged  
free-state atomic density involved in HI is not completely identical to that used in Hirshfeld, but the difference is  
very small and can be ignored. It is never incorrect to directly take the atomic charges printed at the first iteration of  
HI as Hirshfeld charges.  
Usage  
After entered the HI analysis module, you will find many options, you can adjust convergence  
criterion and maximum number of cycles, also you can switch the algorithm for realizing HI  
iterations (see below), and you can decide if printing atomic charges every iteration.  
If you select option 0, Multiwfn will start the HI calculation. Before this, Multiwfn first checks  
atomic radial density files (.rad) in "atmrad" folder, if they are available for all elements in the  
current system, HI calculation will directly start; if they are not available, Multiwfn will try to  
calculate atomic .wfn files by invoking Gaussian and convert them to .rad files, and then start the  
HI iterations.  
After convergence of HI iterations, HI atomic charges and fragment charge/population (if you  
have defined fragment) are printed. Note that the printed HI atomic charges have been properly  
normalized to eliminate noise of numerical integration (i.e. making sum of HI population of all  
atoms equal to total number of electrons). Finally, you can select if outputting resulting atomic  
charges as .chg file.  
There is an option "-3 Switch if speeding up calculation using distance cutoff". By default this treatment is  
enabled to significantly reduce cost for large system. If you find the HI charges are problematic or the calculation  
cannot be normally finished, you can select this option once to disable this treatment and retry. Alternatively, you  
can select it twice, then you will be prompted to input a cutoff value for this treatment, the larger the value, the more  
accurate the result and more robust the calculation will be, however, at the expense of increasing computational cost.  
The default cutoff is 2.0, which should be very safe for almost all cases.  
7
9
3
Functions  
About preparing atomic radial density files (.rad files)  
Before igniting HI iteration, atomic radial density files (.rad files) must be available for all  
elements in the systems at different charged states. There are three ways to provide them:  
Using built-in .rad files  
The easiest way of providing the .rad files is simply copying the "atmrad" folder from  
examples" directory to current folder, then Multiwfn will directly utilize the .rad files in it during  
"
HI calculation. This "atmrad" folder contains .rad file of all elements (except for lanthanides and  
actinides) of all possible charged states, therefore in this case HI charges can be directly computed  
without any additional step.  
The .rad files in this folder were carefully generated based on highly accurate densities. Specifically, elements  
of the first three rows were calculated at PBE0/def2-QZVPP level, all other main group elements were calculated by  
PBE0/ANO-RCC with DKH2 relativisitic Hamiltonian, while all transition metal atoms were calculated by  
PBE0/Sapporo-DK3-QZP-2012 with DKH2. For each element of each charged state, ground state spin multiplicity  
was employed, and meantime wavefunction stability test and wavefunction optimization were carried out to make  
sure that the wavefunction is stable and thus the resulting radial density is realistic.  
Let Multiwfn automatically invoke Gaussian to generate .rad files  
If needed .rad files are not found in "atmrad" folder, Multiwfn will invoke Gaussian to calculate  
atomic wavefunctions and generate .rad files, there are below two steps. Note that .rad file cannot  
be generated in this way for lanthanides and actinides.  
(1) Generating atomic .wfn files in "atmrad" folder: Multiwfn generates Gaussian input files  
(.gjf) in "atmrad" subdirectory in current folder and invokes Gaussian to run them to generate  
atomic .wfn files for all elements involved in present system. Charge states ranging from -2 to +2  
are taken into account, while calculation of meaningless charge states are skipped. For example, its  
meaningless to calculate -2 and +2 charge states for alkali elements, since in practical systems it is  
impossible that an alkali atom has atomic charge between -1 to -2, or between +1 to +2. The  
multiplicity of each charge state of each element is set to ground state (this cannot be well guaranteed  
for all cases, for example, ground state at different calculation levels may even be different. However,  
this is never an important problem, so please do not concern it too much). The path of Gaussian  
executable file should be set by "gaupath" in settings.ini file, if it is not properly set, you will be  
prompted to input it in the Multiwfn interface. You also need to input the keywords of Gaussian  
used to calculate the atomic .wfn files. After Gaussian calculation has finished, the atomic .wfn files  
are generated in "atmrad" folder, the file name directly corresponds to element name and charge  
state. For example, the file corresponding to -1, 0, +1 and +2 charged states of Be will be generated  
in "atmrad" folder as Be-1.wfn, Be_0.wfn, Be+1.wfn and Be+2.wfn, respectively. If corresponding  
file has already been found in the "atmrad" folder, then the file will be directly used and not be  
recalculated. If you find Gaussian calculation is failed (mostly due to SCF unconvergence problem),  
you should carefully check Gaussian output file and properly adjust the keywords used.  
(2) Converting atomic .wfn files to .rad files: As mentioned earlier, HI calculation requires  
spherically averaged atomic densities. However, the electron density corresponding to the  
atomic .wfn files generated at last step often does not meet this requirement. For example, carbon  
2
2
at its neutral ground state has s p configuration, and thus C_0.wfn corresponds to elliptical density  
distribution. To get spherically averaged representation of atomic densities, Multiwfn automatically  
loads each atomic .wfn files in "atmrad" folder, calculates spherically averaged radial density, and  
write the data as .rad file, whose name is identical to its parental .wfn file. For example, C_0.wfn  
will be converted to C_0.rad. The .rad file is a plain text file, the first line is the number of data  
points, the first and second columns respectively correspond to radial distance with respect to  
nucleus (in Bohr) and corresponding electron density. Note that if needed .rad file has already  
8
0
3
Functions  
presented in "atmrad" folder, then the conversion of .wfn.rad will be skipped.  
Note: If you are using Windows version of Multiwfn and Gaussian cannot be invoked properly, please read  
Appendix 1 to set environment variable for Gaussian.  
It is best (but never compulsory) that the atomic .wfn files are generated at the same calculation level as the  
molecule under study, so that the result has strict physical meaning. If you want to let Multiwfn regenerate all needed  
atomic .wfn/.rad files at a specific level prior to HI analysis, evidently you should clean up the "atmrad" folder before  
calculation.  
Manually generate .rad files  
It is also possible to manually calculate .rad files and put them in the "atmrad" folder, so that  
they will be used in HI calculation. At least .rad files corresponding to below charged states must  
be provided for the elements in the present system, otherwise Multiwfn will try to employ Gaussian  
to calculate missing ones.  
IA, VIIIA: -1,0,1  
IIA: -1,0,1,2  
IIIA, IVA, VA, VIA: -2,-1,0,1,2  
VIIA: -1,0,1,2  
All transition metals: -1,0,1,2  
For lanthanides and actinides, the consideration of charged states is up to you. It is suggested to  
consider -1, 0, 1 and 2.  
As an example, if you want to calculate HI charges for water, you should provide O-2.rad, O-  
1
.rad, O_0.rad, O+1.rad, O+2.rad, H-1.rad, H_0.rad and H+1.rad in "atmrad" folder of current  
directory. Generating .rad file is easy. Taking generation of O-1.rad as example, you should use  
Gaussian or other code to calculate an oxygen atom with charge of -1 and spin multiplicity of 2.  
Then load the resulting wavefunction file (e.g. wfn/molden/fch...) into Multiwfn, enter main  
function 1000 and select subfunction 14, you will immediately obtain a .rad file with same name as  
the input file.  
Note that if your system contains lanthanides or actinides, this is the only way of preparing  
corresponding .rad files and thus calculating HI charges.  
Appendix: Two numerical algorithms of HI  
Multiwfn provides below two algorithms to realize HI methods, the results are exactly the same,  
they only differ by efficiency and memory requirement.  
(1) Fast & large memory requirement (default): This algorithm computes as much as possible  
data before starting iteration. Therefore, once initialization stage is done, the HI iteration can be  
finished rapidly. The drawback of this algorithm is that large amount of memory is needed, the  
memory consumed is at least 7natmnatmnradnang, where natm is the number of total atoms, nrad and  
nang corresponds to the number of radial and angular integration grid per atom. Evidently, this  
algorithm is unable to be applied for very large systems unless you have huge physical memory.  
(2) Slow & low memory requirement: This algorithm utilizes very low amount of memory,  
however, the data needed to be calculated in each iteration is much more than algorithm (1), thus  
the total computational cost is much higher.  
For both the two algorithms, the higher number the integration grid, the more accurate the  
result. By default nrad and nang are properly set by Multiwfn. If the system only consists of first two  
rows elements, then nradnsph will be 30*170=5100. If you want to manually set nrad and nsph, you  
can set "iautointgrid" in settings.ini to 0 and change "radpot" and "sphpot" parameters.  
An example of computing HI charges is given in Section 4.7.4.  
8
1
3
Functions  
Information needed: GTFs, atom coordinates  
3
.9.14 CM5 atomic charge (16)  
CM5 charge was proposed by Truhlar et al. in J. Chem. Theory Comput., 8, 527 (2012). This  
charge is somewhat akin to the ADCH charge proposed by me, both of them are defined as applying  
additional correction to Hirshfeld charges. Unlike ADCH, which is free of empirical parameters,  
CM5 method contains global parameters as well as parameters for individual elements. The CM5  
parameters are optimized for best reproduction of highly accurate experimental or theoretical  
molecular dipole moment.  
Worthnotingly, there is a remarkable difference between the basic feature of ADCH and CM5:  
ADCH charges can exactly reproduce molecular dipole moment corresponding to present  
calculation level, that means if the level used is very high (e.g. CCSD/aug-cc-pVTZ), then the dipole  
moment calculated by the resulting ADCH charge must be very close to the molecular dipole  
moment in real world; while if the used level is poor (e.g. HF/6-31G), then the ADCH charges will  
be almost useless. In contrast, the CM5 charges do not attempt to reproduce molecular dipole  
moment at present calculation level, but to reproduce real molecular dipole moment, therefore even  
if low level such as B3LYP/6-31G* is used, which is certainly unable to give good dipole moment  
result, the CM5 charges derived at this level commonly are still able to yield molecular dipole  
moment at acceptable accuracy.  
The expression of CM5 charge is  
CM5  
Hirsh  
qi = qi  
+
T B  
ij ij  
ji  
B = exp[(r  R  R )]  
ij  
ij  
i
j
where rij is distance between atom i and j, Bij may be regarded as their Pauling bond order, Ri and  
Rj are their atomic covalent radii, which are defined as follows: For Z=1~96, the average between  
CSD radii and Pyykkö radii are used, while for Z=97~118, the Pyykkö radii are employed. The  
-1  
global parameter  equals to 2.474 Å . The Tij is defined as Dij if both i and j are attributed to H, C,  
O, N, note that Dij=0 when i and j belong to the same element and Dij=-Dji. All the involved six Dij  
parameters (H-C, H-N, H-O, C-N, C-O, N-O) are tabulated in the original paper. For other cases, Tij  
is defined as Di - Dj, the optimized D parameters for all elements through out the whole periodic  
table are provided in the supplemental material of CM5 original paper.  
Like usual Hirshfeld and ADCH calculations, after you enter this function, I suggest you select  
option 1 to use the build-in sphericalized atomic densities in free-states, since it is the most  
convenient. Then Multiwfn starts calculation of Hirshfeld charges, and then print CM5 charges. If  
you want to gain detailed information about the CM5 correction process during the calculation, you  
can set "ishowchgtrans" parameter in settings.ini to 1.  
Information needed: GTFs, atom coordinates  
8
2
 
3
Functions  
3
.9.15 Electronegativity Equalization Method (EEM) atomic charge (17)  
Theory  
The EEM method is also known as Full Equalization of Orbital Electronegativity (FEOE), it  
was firstly proposed in J. Am. Chem. Soc., 107, 829 (1985). The idea of EEM is very clear. The  
electronegativity of atom i can be written as  
q
0
i
0
i
j
i = ( +  ) + 2( +  )q +  
i
i
i
r
ji i. j  
0
0
where i and i are Sanderson electronegativity and Parr-Pearson hardness of corresponding  
element, respectively, while i and  are fitted parameters. qi denotes atomic charge of  
j
atom i, and ri,j is distance between atoms i and j. For convenience, above formula is commonly  
expressed as  
q
j
i = A + B q +  
i
i
i
r
ji i, j  
where is global parameter, A and B are element parameters. It can be seen that, atomic  
electronegativity in a chemical system is function of atomic charges.  
EEM method assumes that in a chemical system, all atoms have equal electronegativity, hence  
the EEM charges can be determined by solving linear equations according to below conditions  
1  
=  = ... =  =   
2
N
mol  
q = Q  
i
i
where Q stands for net charge of the whole system, mol is molecular electronegativity  
It is easy to show that the working matrix equation for solving EEM charges can be written as  
follows  
1,N  
B1  
1 q   − A   
r
r
1
1
1
,2  
  
   
   
2,N  
B2  
1 q2  
A2  
r
r
2
,1  
  
    =     
  
1  
  
   
   
N ,1  
B
q
A  
r
r
N
N
N
N ,2  
1
1   
1
0    Q   
 mol    
Since EEM matrix element is very simple and the above matrix equation can be solved easily, EEM  
charges could be evaluated rather rapidly even for very large systems.  
Parameters  
The result of EEM charges are directly dependent of EEM parameters , {A} and {B}. There  
is no unique way to determine the parameters, the most common way to obtain them is fitting, so  
that the resulting EEM charges are close to quantum chemistry atomic charges (e.g. NPA, CHELPG,  
Mulliken) as much as possible. Many papers presented EEM parameters fitted to various kinds of  
atomic charges calculated at different levels. In Multiwfn, below EEM parameters can be directly  
chosen:  
8
3
 
3
Functions  
Parameters fitted to Mulliken charges at HF/STO-3G, see Int. J. Mol. Sci., 8, 572-582 (2007).  
Available for H, C, N, O, S  
Parameters fitted to CHELPG charges at B3LYP/6-31G* and at HF/6-31G*, see J. Comput.  
Chem., 30, 1174 (2009). Available for H, C, N, O, F, S, Cl, Br, Zn  
Parameters fitted to NPA charges at B3LYP/6-311G*, they were extracted from SI of J.  
Cheminform., 8, 57 (2016). Available for H, C, N, O, F, P, S, Cl, Br  
Note that for some elements, their A and B parameters also depend on multiplicity, namely the  
maximal formal bond order between this atom and its neighboring atoms, so that influence of  
chemical environment can be taken into account.  
With above mentioned parameters, EEM charges have good reproducibility of target atomic  
charges for typical organic systems, but do not expect EEM method can work well for systems with  
complicated electronic structure, since common training set of EEM parameters only include  
organic systems with typical bonding.  
Usage  
Since formal bond order is involved in the EEM calculation, you must use MDL molfile (.mol)  
or .mol2 as input file, because in all file types that supported by Multiwfn, only this file contains  
connectivity information between atoms. Do not forget that there is a severe limitation of .mol  
format, namely the number of atoms cannot exceeds 999, therefore .mol2 must be used for very  
large system. The .mol/.mol2 file can be outputted by many programs, such as GaussView and  
OpenBabel. OpenBabel is recommended to use, since the format of .mol file outputted by  
OpenBabel is very standard. Do not use GaussView to generate .mol/.mol2 file if dashed bond is  
presented (e.g. for benzene, each C-C bond is described by default as a single bond with a dashed  
bond, the .mol file is unable to record such non-Lewis representation of bonding).  
After you load a .mol/.mol2 file and then enter present function, you can directly choose option  
0
to calculate EEM charges, the molecular electronegativity will also be outputted together. The  
default EEM parameters are those fitted for reproducing B3LYP/6-31G* CHELPG charges.  
Before calculation, you can choose option "1 Choose EEM parameters", present EEM  
parameters will be shown on screen, and then you can select a built-in parameter set that you want  
to use. Alternatively, you can load parameters from external file using suboption 0, the format of  
parameter file should mimic to this:  
0.302000  
H 1 2.38500 0.73700  
C 1 2.48200 0.46400  
C 2 2.46400 0.39200  
N 1 2.59500 0.46800  
N 2 2.55600 0.37700  
O 1 2.82500 0.84400  
O 2 2.78900 0.83400  
The first line is , after that, defining parameter for each element of each multiplicity. The second,  
third and fourth columns are multiplicity, A and B, respectively. Free format is used. Using  
corresponding option, the present parameters can also be exported to EEMparm.txt in current folder.  
If the system under study is an ionic system, do not forget to use option "2 Set net charge" to  
set net charge to actual status before calculation!  
Notice for GaussView users: The .mol/.mol2 file generated by GaussView, at least for version 6.0.16, is not  
completely correct when there are conjugated rings. In the connectivity field of .mol file, the aromatic ring should  
8
4
3
Functions  
be represented as alternate variation of single and double bonds, however in the .mol (.mol2) generated by  
GaussView, the multiplicity of the bonds in aromatic rings is recorded as 4 (ar), clearly it is unreasonable. This issue  
could be fixed if you use OpenBabel to convert the .mol/.mol2 to a new .mol/.mol2 file.  
An example of calculating EEM charges is given in Section 4.7.5.  
Information needed: Atom coordinates with connectivity (.mol or .mol2 file)  
3
.9.16 Restrained ElectroStatic Potential (RESP) atomic charge (18)  
This module is quite powerful and flexible, it can calculate the standard RESP charge proposed  
by Kollman and coworkers in J. Phys. Chem., 97, 10269 (1993), and can also calculate ESP fitting  
charges under various equivalence and charge constraints. In Section 3.9.16.1 I first describe basic  
ideas of RESP charge and related treatments, then in Section 3.19.16.2 the usage of this module is  
introduced. If you are not interested in relevant theories, you can skip Section 3.9.16.1. However, if  
you are not familiar with ESP fitting method, you should at least read Section 3.9.10 first to gain  
minimal knowledges.  
Some more discussions about this topic can be found in my blog article "Principle of RESP charge and its  
calculation in Multiwfn" (in Chinese, http://sobereva.com/441).  
3.9.16.1 Theory  
Theory Part 1: Conformation dependency, equivalence constraint and penalty function  
The ESP fitting charges generated by MK and CHELPG methods introduced in Section 3.19.10  
and 3.19.11 can be perfectly used for molecular modeling purpose for rigid molecules, however,  
they are not quite suitable for modeling flexible molecules, due to below reasons:  
(1) The results are highly dependent on conformation. Flexible molecules have many different  
conformations, the conformation often changes during molecular dynamics simulation, while the  
ESP fitting charges are highly sensitive to the conformation. If only one conformation is used to  
calculate the ESP fitting charges and the simulation is conducted based on these charges, the  
dynamic behavior of the molecule may be wrong and the relative energies between different  
conformations may be seriously incorrect, since single set of fixed atomic charges is unable to  
equitably well describe all relevant conformations.  
(2) The atomic charges fitted at single conformation do not faithfully reflect chemical  
equivalency of atoms. For example, three hydrogens on the methyl group of methanol are  
chemically equivalent. During molecular dynamic simulation in room temperature, the methyl  
group can rotate frequently, therefore, three hydrogens should share the same charge. However the  
calculated charges are not identical regardless of choice of conformation used in the ESP fitting  
procedure (since this system does not have triple rotational symmetry along the methyl bond axis),  
clearly this problem also brings some irrationality to the simulation phenomenon.  
(3) The quality of fitted charge of buried atoms is poor. The ESP fitting points are distributed  
in the vicinity of and outside the van der Waals surface. For atoms connected to multiple atoms  
3
(
such as sp hybridized carbon), especially the atoms inside a macromolecule, because of their far  
distances to fitting points, their atomic charges have low fitting quality and large numerical  
uncertainty. Moreover, as the conformation changes, the charge fluctuation of these buried atoms  
tends to be significant, therefore the presence of these atoms further aggravate the conformational  
8
5
 
 
3
Functions  
dependence of the ESP fitting charges.  
ESP fitting charges cannot be well used for modeling flexible molecules without solving above  
problems.  
For the above problem (1), a good solution is to simultaneously consider multiple  
conformations during the ESP fitting process. One first determines the weight of each conformation,  
then constructs A matrix and B vector using fitting points of various conformers with consideration  
of conformational weights, then the solved ESP fitting charges can at least be able to well reproduce  
the ESP of those conformations with relatively large weights. This idea has been examined in J. Am.  
Chem. Soc., 114, 9075 (1992). Of course, this way of considering multiple conformations can be  
very expensive for flexible molecules with many rotatable bonds, because the number  
conformations increases exponentially with the increase in rotatable bonds.  
For the above problem (2), equivalence constraints can be imposed on chemically equivalent  
atoms in the fitting process so that their atomic charges are the same (Another way is to calculate  
the ESP fitting charges as usual, and then average the charges of chemical equivalent atoms.  
However, the charge obtained in this way is not as ideal as employing equivalence constraints).  
For the above problem (3), the solution proposed in Kollman's RESP paper is to add a  
2
rstr  
2
A
2 1/ 2  
hyperbolic penalty function  
= a [(q + b )  b] to the function of measuring  
A
reproducibility of the ESP calculated based on wavefunction, where index A corresponds to atomic  
index of non-hydrogen atoms. The penalty function involves a tightness parameter b and a restraint  
strength parameter a. The former is generally set to 0.1, while the latter can be adjusted in the actual  
calculation. The larger the a, the stronger the tendency of the atomic charge to be pulled down, and  
meantime the worse the ESP reproducibility becomes. Obviously, the parameter a should be  
properly selected, generally a value less than or equal to 0.001 is employed. It has been found that  
introduction of this form of penalty function significantly lowers charges of buried atoms, while  
other atoms, in particular polar atoms, are not evidently affected. Kollman believes that this  
treatment also significantly reduces the conformational dependence of the ESP fitting charge. After  
introducing the hyperbolic penalty function, the ESP fitting procedure can no longer be solved in  
one step, iteration is needed until changes of all atomic charges are small enough.  
Below I give detailed derivation of the working equation used to calculate ESP fitting charges  
under above special considerations. When equivalence constraint is employed, the function to be  
minimzed using least square method in the ESP fitting procedure will be  
2
  
1
F =  
V  qA  
 +  n q  q   
i
   
A
A
tot  
r
i
A
aA ia  
  
A
where i cycles fitting points, Vi is the ESP calculated based on wavefunction at point i, {q} is the set  
of uniquely derived atomic charges, ria denotes distance between point i and atom a, which belongs  
to equivalence constraints A. nA is the number of atoms constrained to be equivalent in batch A. If  
nA=1, that means A just corresponds to an atom without equvalence constraint.  
Minimization of F with respect to variables yields  
8
6
3
Functions  
F
=
0 = n q  q  
A
A
tot  
A
F
1   
1   
 + n   
=
0 = −2  
V  qA  
i
   
r
B
qB  
r
bB ib  
i
A
aA ia  
The second equation can be further reorganized as follows, with considering the fact that the  
value of Lagrangian multiplier  is arbitrary  
F
1   
1   
 +   
=
0 =   
V  qA  
i
   
qB  
r
r
bB ib  
i
A
aA ia  
1
Vi  
qA  
+  =  
  
  
r r  
r
ib  
A
aAbB  
i
ia ib  
bB  
i
The set of linear equations can be formulated as a matrix equation  
A
A
A  
n  q   B   
1
1
1
12  
1N  
1
1
1
  
n2 q2  
  
A
A22  A  
B2  
2
2N  
    =     Aq = B  
  
  
  
A
A
A  
n
q
B
N
N1  
N 2  
NN  
N
N
n1  
n2  
nN  
0    q   
tot  
with  
1
Vi  
AA,B  
=
B =  
q = qA  
  
A
  
tot  
r r  
r
ia  
aA bB  
i
ia ib  
aA  
i
A
where A and B are atomic indices, and there are totally N atoms. Once construction of the A and B  
-1  
is completed, the charge vector can be easily obtained as q=A B.  
Now we consider the case that penalty function is added to the function F. Given that  
2
rstr  
2
A
2 1/ 2  
 /q = aq (q + b )  
A
A
by incorporating it into the above expression of F /q = 0, we finally get  
B
1
Vi  
2
A
2 1/ 2  
qA  
+ aq (q + b )  
A
+  =  
  
  
r r  
r
A
aAbB  
i
ia ib  
bB  
i
ib  
1
2
A
2
1/ 2  
The diagonal elements of A should thus be AA, A  
=
+ a(q + b )  
, while the non-  
   
r r  
ia ib  
a,bA  
i
diagonal terms of A should keep unchanged. In practical calculation, the {q} in initial A is set to  
zero, then updated {q'} is obtained by solving the matrix equation, after that {q'} is used to construct  
the A of the second iteration. The iteration is repeated until charge variation of all atoms is smaller  
than a given threshold.  
The easiest way of taking multiple conformations into the ESP fitting procedure is replacing  
the A matrix and B vector with their weighted averaged counterparts, as suggested in J. Am. Chem.  
Soc., 114, 9075 (1992):  
8
7
3
Functions  
A = w A  
B = w B  
where  is index of conformer and w is corresponding weight. The weights could be determined in  
different ways, the common way is calculating relative Gibbs free energies and then evaluating  
weights according to Boltzmann distribution.  
Theory Part 2: The standard RESP charge  
The Restrained ElectroStatic Potential (RESP) charge proposed by Kollman et al. in J. Phys.  
Chem., 97, 10269 (1993) may be the most suitable atomic charge model for molecular simulation  
of flexible molecules. It takes advantage of many aforementioned ideas and largely solves the above  
mentioned problems in MK/CHELPG charges. The fitting process of the RESP charges is divided  
into the following two steps.  
Step 1: During the charge fitting, a hyperbolic penalty function with a=0.0005 is used to  
impose a weak charge restraint on non-hydrogen atoms. Charges of all atoms are fitted, and no  
equivalence constraint is employed. This step allows atomic charges to change with the greatest  
degree of freedom to make polar atoms fit the ESP as well as possible.  
Step 2: Using the hyperbolic penalty function with a=0.001 to impose a strong restraint on  
3
non-hydrogen atoms. This step only allows charge of sp hybridized carbons, methylene carbons  
and hydrogens attached on them to be fitted, while charges of all the other atoms keep fixed at the  
value obtained at step 1. Equivalence constraint is applied to hydrogens on each CH3, =CH2,  
CH2group.  
The reason why the RESP charge fitting is divided into two steps is because the authors found  
that only by doing so, the problems of normal ESP fitting charges in modeling flexible molecules  
could be largely solved without causing too much damage on the reproducibility of ESP. Since RESP  
charge is fairly ideal for molecular dynamic modeling purpose, it has been employed by many  
famous forcefields, such as AMBER, GAFF and GLYCAM.  
Notice that although conformation dependency has been diminished to large extent in the subtly  
designed RESP fitting process, if you want to obtain a set of atomic charges that can equally well  
describe all important conformations, you still need to explicitly take multiple conformations in the  
RESP fitting procedure.  
The MK type of fitting points are employed in original paper of RESP, however, changing to  
CHELPG type of fitting points is also completely reasonable.  
Theory Part 3: ESP fitting with charge constraints  
When calculating the ESP fitting charges, various constraints can be added via the Lagrangian  
multiplier method. The most significant one should be constraint on net charge of specific fragments.  
The charge constraints can achieve many special purposes:  
(1) Biomacromolecules, polymers and other systems are all polymerized one by one. Each  
component of such a macromolecule is called residue. The atomic charges of the whole system are  
made up of that of individual residues. It is obvious that the net charge of each residue should be an  
integer. If we want to derive atomic charges of a given residue, we can cap the two terminals of the  
residue with appropriate group or fragment, and then impose charge constraint on the residue  
segment during ESP fitting process so that its net charge exactly corresponds to a desired integer.  
(2) Some force fields, such as GROMOS, use the charge-group concept to reduce the error of  
the electrostatic interaction evaluated via cut-off method. Each charge group contains several atoms,  
and all the atomic charges are summed to an integer. For example, the total charge of a carboxyl  
8
8
3
Functions  
group should be 0, and its charge should become -1 after dissociation of the proton. In order to  
obtain a set of ESP fitting charges that compatible with the charge group concept, charge constraints  
can be utilized to maintain the charge of each segment as a specified integer value.  
(3) Sometimes one wants to calculate ESP fitting charges based on wavefunction of dimer or  
multimer, and hopes that the charge of each monomer is exactly integer, this purpose could be  
realized by employing charge constraints.  
Technically, adapting charge constraint into ESP fitting in terms of Lagrangian multiplier is  
straightfoward, we only need to properly modify the form of matrix equation. For example, we want  
to add below constraints:  
q + q = 0.5  
1
N
q = −0.2  
2
Then below terms should be added to the function F, which is to be minimized:  
'
(
q + q  0.5  
)
+ ''  
(
q + 0.2  
)
1
N
2
correspondingly, two new equations appears  
F
F  
''  
=
0 = q + q  0.5  
= 0 = q  0.2  
1
N
2
'  
and  
F
F  
q1  
F  
q2  
F  
q2  
F  
qN  
F  
qN  
0
0
0
=
0 =  
+ '  
= 0 =  
+ ''  
= 0 =  
+ '  
q1  
where F0 is the function F without charge constraint. Clearly, the current ESP fitting problem in  
matrix equation form can be given as  
A
A
A  
n1 1 0 q   B   
1
1
1
12  
1N  
1
1
  
n2 0 1 q  
  
A
A
A  
B2  
2
22  
2N  
2
0 0       
  
1 0 q  
  
A
A
A  
n
=
B
N1  
N 2  
NN  
N
N
N
n1  
n2  
0
nN  
1
0
0
0
0 0    q  
tot  
  
1
0
0
1
0 0 '  
0.5  
  
  
0
0
0 0 ''  
0.2  
  
In practical programming implementation, when multiple conformations, equivalence  
constraint, charge constraint and penalty function are simultaneously taken into account, the ESP  
fitting calculation is carried out in following process: Because of introduction of the hyperbolic form  
of penalty function, the A and q should be updated alternately until convergence criterion is reached.  
In each iteration, only the first NatomNatom block of A matrix and first Natom elements of B vector  
are constructed with consideration of conformation weights and penalty function, then remainder  
parts of A and B are filled according to charge constraint. Finally, according to equivalence  
constraint, the corresponding rows of A are combined together (e.g. if atoms 3, 6, 7 are constrained  
to be equivalent, then these three rows should be summed up) to form a temporary matrix, whose  
columns are further properly combined according to equivalence constraint to form Aeqv matrix.  
Similarly, the rows of B vector are tranformed to Beqv according to equivalence constraint. After that,  
8
9
3
Functions  
-1  
solving the equation qeqv=Aeqv Beqv and correspondingly updating atomic charges according to the  
given equivalency relationship. In the next cycle, the diagonal terms of A matrix are updated using  
the atomic charges obtained in last cycle, while non-diagonal terms of A and all elements of B vector  
are not needed to be changed. Multiwfn simply uses zero as initial charges for the atoms to be fitted.  
3.9.16.2 Usage and some details  
Options in the RESP module  
Any input file carrying GTF information could be used for this modules. After loading input  
file and entering this RESP module (subfunction 18 of main function 7), you will find many options,  
as described below  
·
Option 1: If you just want to calculate the standard RESP charges defined by Kollman et al.,  
you should simply select this option, then the RESP charges will be calculated and printed. Since  
this calculation contains two steps, it will be referred to as "two-stage RESP fitting".  
·
Option 2: If you simply need to calculate normal ESP fitting charges with/without specific  
constraints, you should select this option. This process only includes one step, therefore it will be  
referred to as "one-stage ESP fitting".  
·
Option -1: In the calculation of standard RESP charges and normal ESP fitting charges  
with/without additional constraints, multiple conformations could be taken into the fitting process.  
By selecting this option, you will be asked to input path of a plain text file containing conformer  
list, each line of this file consists of file path and weight for each conformer. For example:  
D:\a\conf1.fch 0.2  
D:\a\conf2.fch 0.75  
D:\b\conf.fch 0.05  
Evidently, the sum of all weights must be exactly or very close to 1.0. After that, in the charge  
calculation, all files involved in this file will be loaded and calculated in turn (if you use this feature,  
the input file loaded when Multiwfn boots up will be unimportant, it can even only contain structure  
information of present system, therefore you can also use e.g. .pdb and .xyz as input file).  
·
Option 3: By default, MK type of fitting points is employed, if you want to change to  
CHELPG type of fitting points, or you want to modify detailed setting of distribution of fitting  
pionts (such as point density), you can use this option. Note that the density of fitting points under  
default setting is already high enough, thus it does not need to be further enhanced without special  
reason.  
·
Option 4: This option is used to set parameters of hyperbolic penalty function for non-  
hydrogen atoms. The a used in "one-stage fitting" (0.0005 is employed by default), the respective a  
parameters used in the first and second stages of the standard RESP fitting, as well as the b parameter  
can be customized. Also, this option is able to manually define maximum number of RESP iterations  
and convergence threshold of charge variation.  
·
Option 5: This option is use to set equivalence constraint. You can customize the constraint  
by providing a plain text file containing entries of equivalence constraints. For example, if the file  
content is  
4
,6,9-11  
5
,7  
Then there will be two equivalence constraints, the first one requires that atoms 4, 6, 9, 10, 11 share  
the same charge, the second one requires that atoms 5 and 7 share the same charge. The equivalence  
9
0
 
3
Functions  
constraint defined in this way take effect for both "one-stage fitting" and the first step of "two-stage  
RESP fitting".  
Note that for "one-stage fitting", by default hydrogens in each CH3 and CH2 group are  
constrained to be equivalent. You can modify or simply remove this equivalence constraint setting  
via this option.  
Suboption 10 can generate plain text file named eqvcons_H.txt containing equivalence  
constraint setting of "hydrogens in each CH3 and CH2 group are the same". You can then manually  
modify this file to meet your special requirement.  
Subfunction 11 can generate plain text file containing equivalence constraint of symmetrically  
equivalent atoms in local region or the entire system. The point group of the selected atoms will be  
detected and each class of equivalent atoms will be written to eqvcons_PG.txt in current folder. This  
feature is quite useful in certain cases.  
·
Option 6: This option is use to set charge constraint in "one-stage fitting" or the first step of  
"two-stage RESP fitting". By default no charge constraint is employed for them, however in this  
option you can provide a plain text file to customize the rule of charge constraint. For example, if  
the file content is  
4
,6,9-11 0.8  
5
,7 -0.3  
Then sum of charges of atoms 4, 6, 9, 10, 11 will be constrained to 0.8 during the fitting, while  
sum of charges of atoms 5 and 7 will be constrained to -0.3.  
·
Option 7 and details about determination of connectivity: To calculate the standard RESP  
charge, or to calculate the normal ESP fitting charges but requiring the charges of the hydrogens in  
each CH3 and CH2 group to be equivalent, interatomic connectivity is needed for automatically  
determining which atomic charges should be fitted and which hydrogens should be constrained to  
be equivalent. By default, if distance between two atoms is less than 1.15 times the sum of their  
CSD covalent radii, then they will be regarded as bonded. If you feel that the current connection  
relationship does not match your expectation, you can select option 7 to read the connectivity from  
a specific .mol file, the .mol format contains a field recording connectivity information and can be  
generated by many visualization programs such as GaussView. (Alternatively, you can modify the  
threshold for judging bonding in main function 0, in which you can gradually change the bonding  
threshold until the bonding relationship shown in the graphical window completely in line with your  
expectation, the threshold will be retained and applied to the calculation in the RESP module).  
·
Option 8: This option enables Multiwfn directly load fitting points and corresponding ESP  
values from Gaussian output file. If you have selected this option once, then during the ESP fitting  
charge calculation process, Multiwfn will no longer attempts to determine position of fitting points  
and calculate ESP values, but ask you to input path of a Gaussian output file of pop=MK or  
pop=CHELPG task in combination with IOp(6/33=2) keyword. In addition, Gaussian also has a  
2
keyword IOp(6/42=x), where x is the number of fitting points per Å for pop=MK task. x is  
recommended to set to 6, which corresponds to Multiwfn default setting. Notice that since the code  
in Multiwfn and in Gaussian for generating MK fitting points is different, the result calculated with  
and without loading Gaussian pop=MK output file must have slight deviation.  
In general, this option is not needed, but if you prefer to perform time-consuming calculations  
on server and use Multiwfn to realize analyses on a poorly configured PC, then this function will be  
useful. In addition, if you may calculate ESP fitting charges for a system many times (due to some  
9
1
3
Functions  
reasons, such as each time of calculation uses a different setting), then if Gaussian output file  
containing fitting points information is generated, calculation of ESP values in each time of ESP  
fitting can be avoided and thus a lot of time could be saved.  
Option 9: This option is used to set additional fitting centers for the RESP fitting, which may  
be used to enhance representation of ESP due to e.g. lone pairs and -holes. The coordinates are  
read from a given text file, whose format should look like  
numdata  
X Y Z  
X Y Z  
Additional fitting center 1 of conformer 1  
Additional fitting center 2 of conformer 1  
[
blank line]  
X Y Z  
X Y Z  
Additional fitting center 1 of conformer 2  
Additional fitting center 2 of conformer 2  
[
blank line]  
X Y Z  
X Y Z  
Additional fitting center 1 of conformer 3  
Additional fitting center 2 of conformer 3  
where numdata denotes the number of additional fitting centers for each conformer (the number is  
the same for all confomers). X, Y, Z denote the coordinates in Å. You can set arbitrary number of  
additional fitting centers for arbitrary number of conformers. The additional center definition  
between different conformers should be separated by a blank line, as illustrated above. Note that  
these fitting centers are regarded as polar non-hydrogen atoms in the RESP charge fitting procedure,  
however, their radii are set to zero (i.e. they do not affect number and distribution of ESP fitting  
points). An example of utilizing this feature is given as "Example 6" of Section 4.7.7.  
·
Option 10: This option is used to set the atomic radii employed in the fitting, please check  
corresponding description in the CHELPG section (Section 3.9.10) for detail. Notice that the default  
mode is "automatic", in this case, if the fitting points of MK type are employed, then MK radii will  
be adapted (see Section 3.9.11 on how the MK radii are defined in Multiwfn); if fitting points of  
CHELPG type are employed, then CHELPG radii will be adapted.  
·
Option 11: This option is used to choose the type of ESP that you want to fit. Commonly,  
this option should not be changed, the default type of ESP is the ESP defined in usual way. However,  
if you intend to use this RESP module to derive atomic transition charges, you should choose this  
option and change the ESP type to “3 Transition electronic”. Please check Section 4.A.9 for more  
information and example.  
More information about equivalence constraint and charge constraint  
In the user-provided equivalence constraint file involved in option 5, no atom can be shared by  
multiple entries. For example, if the first entry is 2~7, while the second entry is 5, 8~10, the result  
will be completely meaningless, because both of them involve atom 5.  
Intersection between different sets of charge constraints is allowed, for example, you can  
require charge of atom 5 is 0.35 while sum of charges of atoms 3~8 is 1.0.  
Charge constraint could also be used in combination with equivalence constraint; however,  
there should not be intersection between any charge constraint entry and equivalence constraint  
entry. For example, charges of atoms 2, 5, 9 are required to be identical, and meantime you constrain  
total charge of 5, 10~15, 17~19 to be 0.15, such a combination never works since both of them  
involves atom 5.  
Speeding up calculation  
9
2
3
Functions  
Since calculation of ESP on fitting points is a computationally demanding step, while  
calculation speed of ESP of internal code of Multiwfn is usually slower than the cubegen utility in  
Gaussian package, if Gaussian is available on your machine and the input file is .fch/fchk, it is  
suggested to allow Multiwfn to invoke cubegen to evaluate ESP to reduce cost of deriving ESP  
fitting charges. You simply need to set "cubegenpath" parameter in settings.ini to actual path of  
cubegen executable file in your machine. See Section 5.7 for detail.  
FAQ: Why sometimes spatially equivalent atoms have different charges?  
You may frequently find a phenomenon that spatially equivalent atoms often have marginally  
different charges. The reason is that the distribution of fitting points does not always happen to be  
coincident with molecular point group. There are two ways to relieve this problem:  
(1) Write an equivalence constraint file and use option 5 to load it to make the spatially  
equivalent atoms share exactly the same charge during fitting. Writing this file is quite easy even if  
the system is large, because by subfunction 11 of option 5 you can make Multiwfn automatically  
recognize point group of local fragment or the entire system and write corresponding equivalence  
constraint setting to eqvcons_PG.txt. This point is fully exemplified in "Example 6" in Section 4.7.7.  
(1) Choose option "3 Set method and parameters for distributing fitting points", select  
CHELPG, and then select "1 Set grid spacing", input a value much smaller than the default one. The  
smaller the grid spacing, the better the atomic charges satisfy the point group symmetry. This  
treatment does not completely solve the problem but only relieve it, and it increases computational  
cost because the number of points to be calculated is increased. Therefore way (1) is prefered over  
this way.  
Many examples of evaluating standard RESP charges and normal ESP fitting charges with  
various constraints, as well as some special skills can be found in Section 4.7.7.  
The RESP2 method is an extension of RESP method. The RESP2 charge is more suitable than  
RESP charge for molecular dynamics simulation in condensed phase since it better takes solvent  
effect into account. See Section 4.7.7.9 for instance on how to calculate RESP2 charge.  
Information needed: GTFs, atom coordinates  
3
.9.17 PEOE (Partial equalization of orbital electronegativity) or  
Gasteiger charge (19)  
Theory  
The PEOE (Partial equalization of orbital electronegativity) charge is also known as Gasteiger  
charge or Gasteiger-Marsili charge, the idea was firstly proposed by Gasteiger and Marsili in  
Tetrahedron Lett., 34, 3181 (1978), and then matured in Tetrahedron, 36, 3219 (1980). PEOE charge  
is determined according to interatomic connectivity, chemical environment and partially based on  
electronegativity equalization principle. The major advantage of PEOE method is that it is able to  
estimate atomic charges for huge system with negligible computational cost. However, there are  
several drawbacks in this method: (1) Only limited elements are supported (2) Actual electronic  
structure is not taken into account, the charges only reflect bonding types and connectivities (3) Poor  
reproducibility to many observable quantities, such as dipole moment and electrostatic potential. (4)  
9
3
 
3
Functions  
Cannot be used for charged systems. Despite that there are many shortcomings, PEOE is still very  
popular for crude estimation of atomic charges purpose, and have been widely employed in  
molecular docking and drug design fields.  
The principle of PEOE method is simple. It defines atomic electronegativity as follows  
2
A
A = a + bq + cq  
A
where qA is atomic charge of atom A, while a, b and c are parameters derived by Gasteiger et al.  
based on ionization potential and electron affinity of corresponding element at neutral and charge  
states. The parameters are dependent of atomic hybridization state, which can be determined  
according to the number and type of bonded atoms.  
PEOE charges are calculated via iterative process. In every iteration, certain amount of electron  
is transferred between each pair of bonded atoms. In iteration n, the variation of atomic charge of A  
due to its bonded atom B is calculated as:  
(
A
n)  
n
(n1)  
(n1)  
q=1  
(n1)  
(n1)  
q
q
= f [B  A ]/ A  
when B  A  
(
A
n)  
n
(n1)  
(n1)  
q=1  
(n1)  
(n1)  
= f [B  A ]/ B  
when A  B  
푞ꢁ1  
The f is damping factor, which is usually set to 0.5,   
is the electronegativity of atom A at q=1  
푞ꢁ1  
푞ꢁ1  
state, clearly  = 푎 ꢂ 푏 ꢂ 푐. However, note that, only for hydrogen, the   
is always equal  
n
to 20.02 eV. Since the f term decreases swiftly with increase of iteration number n, the flow of  
electrons between atoms is increasingly suppressed. In constrast to the EEM method described in  
Section 3.19.5, the PEOE does not finally meet electronegativity equalization condition. The main  
reason that PEOE method violates this condition is that the formula for evaluating  employed by  
PEOE method is not quite rigorous, therefore damping factor must be introduced to compensate this.  
Clearly, the total amount of charge variation of atom A in iteration n can be written as  
(
K
n1)  
(n1)  
A
(n1)  
L  
(n1)  
A
  
  
(
A
n)  
n
q  
= f  
+
  
q=1  
q=1  
K
A  
L
L  
(
K
n1)  
(n1)  
(n1)  
(n1)  
where looped atoms K and L satisfy  
A  
and A  L , respectively.  
The atomic charges at iteration n are updated as  
(
A
n)  
(n1)  
A
(n)  
+ qA  
q = q  
,
(
n)  
(n)  
then the atomic electronegativities { } are recalculated based on {q } via the aforementioned  
equation.  
The iteration stops when maximum of charge variation is smaller than a given threshold. In  
Multiwfn the threshold is set to 0.0001, in this case the iteration can usually converge after a dozen  
of cycles. In Multiwfn the f parameter is fixed to 0.5.  
(0)  
(0)  
The initial charges, namely {q }, are set to zero. However, for very few kinds of atoms the q  
are set to specific value; for example, the =O atom in sulfonyl group has q(0) of -1.  
Usage  
Calculating PEOE charges are quite easy. You only need to load a file containing geometry  
information into Multiwfn, then enter subfunction 19 of main function 7, the determined PEOE  
parameters in the currenet system as well as calculated charges will be printed immediately.  
If you want to monitor variation in atomic charges and atomic electronegativities in each cycle,  
9
4
3
Functions  
you can set "outmedinfo" in settings.ini to 1 before booting up Multiwfn.  
Currently the PEOE module of Multiwfn supports H, C, N, P, O, S, F, Cl, Br, I, most parameters  
are taken from Tetrahedron, 36, 3219 (1980), while some of them are supplemented from parameter  
file of the Antechamber utility in AmberTools.  
The interatomic connectivity involved in PEOE calculation is automatically guessed according  
to bond length and atomic covalent radii. If the input file is in .mol or .mol2 format, then the  
connectivity will be directly load from the input file.  
It is strongly encouraged to optimize the geometry at least by lowest acceptable level that can  
qualitatively represent the system, so that the actual connectivity can be correctly guessed according  
to bond lengths. In addition, the hybridization state of tri-coordinated nitrogen atoms is determined  
by the relative position to the three atoms bonded to it, thus it is even more important to provide an  
optimized geometry when the system contains nitrogens.  
Charged system is not supported by PEOE method.  
An example of evaluating PEOE charges is given in Section 4.7.9.  
Information needed: Atom coordinates  
3
.10 Orbital composition analysis (8)  
Notice that the word “orbital” here is not restricted to molecular orbital, for example, if the  
input file carries natural bond orbitals (NBO), then what will be analyzed is NBOs. There is an  
6
No matter what analysis method you choose, if you request Multiwfn to print composition of  
various atoms in an orbital, in the output you can find a value "Orbital delocalization index" (ODI).  
The lower the value, the stronger the orbital delocalization. When you intend to quantitatively  
compare extent of spatial delocalization of various orbitals, you will find this index quite useful.  
This ODI is detailedly described and illustrated in Section 4.8.5.  
3
.10.1 Output basis function, shell and atom composition in a specific  
orbital by Mulliken, Stout-Politzer and SCPA approaches (1, 2, 3)  
Mulliken, SCPA and Stout-Politzer methods support decomposing orbital to basis function,  
shell and atom compositions. Actually I have introduced the theories in Sections 3.9.5, 3.9.6 and  
3
.9.7, i,a100% is just the composition of basis function a in orbital i, if we sum up all the  
compositions of basis functions that within a shell we will get shell composition, and if we sum up  
all the compositions of shells that attributed to the same atom we will get atom composition.  
These approaches rely on basis expansion, in current Multiwfn version you must  
use .mwfn, .fch, .molden or .gms as input file.  
When you entered “Orbital composition analysis” submenu from main menu, select which  
method you want to use for decomposition, and then input the index of orbital, the result will be  
printed on screen immediately, you can also input -1 to print basic information of all orbitals to find  
9
5
 
 
3
Functions  
which one you are interested in. By default, only those terms with composition larger than 0.5%  
will be printed, this threshold can be adjusted by “compthres” in settings.ini.  
If the basis functions stored in .mwfn/.fch/.molden file are spherical harmonic type, then the  
label of basis functions printed will look like D+1, F-3 rather than XX, XYY. The labels of spherical  
harmonic basis functions used in Multiwfn are completely identical to Gaussian program, the  
conversion relationship is:  
D 0=-0.5*XX-0.5*YY+ZZ  
D+1=XZ  
D-1=YZ  
D+2=3/2*(XX-YY)  
D-2=XY  
F 0=-3/2/5*(XXZ+YYZ)+ZZZ  
F+1=-(3/8)*XXX-(3/40)*XYY+(6/5)*XZZ  
F-1=-(3/40)*XXY-(3/8)*YYY+(6/5)*YZZ  
F+2=3/2*(XXZ-YYZ)  
F-2=XYZ  
F+3=(5/8)*XXX-3/8*XYY  
F-3=3/8*XXY-(5/8)*YYY  
G 0=ZZZZ+3/8*(XXXX+YYYY)-3*(3/35)*(XXZZ+YYZZ-1/4*XXYY)  
G+1=2*(5/14)*XZZZ-3/2*(5/14)*XXXZ-3/2/14*XYYZ  
G-1=2*(5/14)*YZZZ-3/2*(5/14)*YYYZ-3/2/14*XXYZ  
G+2=3*(3/28)*(XXZZ-YYZZ)-5/4*(XXXX-YYYY)  
G-2=3/7*XYZZ-(5/28)*(XXXY+XYYY)  
G+3=(5/8)*XXXZ-3/8*XYYZ  
G-3=-(5/8)*YYYZ+3/8*XXYZ  
G+4=35/8*(XXXX+YYYY)-3/4*3*XXYY  
G-4=5/2*(XXXY-XYYY)  
H 0=ZZZZZ-5/21*(XXZZZ+YYZZZ)+5/8*(XXXXZ+YYYYZ)+(15/7)/4*XXYYZ  
H+1=  (5/3)*XZZZZ-3*  (5/28)*XXXZZ-3/  28*XYYZZ+  15/8*XXXXX+  (5/3)/8*XYYYY+ √  
(
5/7)/4*XXXYY  
H-1=  (5/3)*YZZZZ-3*  (5/28)*YYYZZ-3/  28*XXYZZ+  15/8*YYYYY+  (5/3)/8*XXXXY+ √  
5/7)/4*XXYYY  
(
H+2=5/2*(XXZZZ-YYZZZ)-(35/3)/4*(XXXXZ-YYYYZ)  
H-2=(5/3)*XYZZZ-(5/12)*(XXXYZ+XYYYZ)  
H+3=(5/6)*XXXZZ-(3/2)*XYYZZ-(35/2)/8*(XXXXX-XYYYY)+(5/6)/4*XXXYY  
H-3=-(5/6)*YYYZZ+(3/2)*XXYZZ-(35/2)/8*(XXXXY-YYYYY)-(5/6)/4*XXYYY  
H+4=35/8*(XXXXZ+YYYYZ)-3/4*3*XXYYZ  
H-4=5/2*(XXXYZ-XYYYZ)  
H+5=3/8*(7/2)*XXXXX+5/8*(7/2)*XYYYY-5/4*(3/2)*XXXYY  
H-5=3/8*(7/2)*YYYYY+5/8*(7/2)*XXXXY-5/4*(3/2)*XXYYY  
9
6
3
Functions  
An example is given in Section 4.8.1.  
Information needed: Basis functions  
3
.10.2 Define fragment 1 and 2 (-1, -2)  
Before doing composition analysis for fragments by Mulliken, Stout-Politzer and SCPA  
approachs, you have to define fragment in advance. If what you are interested in is only composition  
of one fragment rather than the composition between two fragments (cross term composition), you  
only need to define fragment 1. The content of fragment can be chosen to basis functions, shells,  
atoms or mixture of them, whatever you choose, only the indices of corresponding basis functions  
are recorded eventually. Notice that the "fragment" I referred here has no any relationship with the  
"fragment" involved in Section 3.1, the fragment defined here does not disturb wavefunction at all.  
All supported commands in the interface of defining fragment are self explanatory, so I will  
not reiterate them but only give an examples, that is define fragment as all P-shells of atom 3: First,  
type command all, information of all basis functions are listed, find out the shells that attributed to  
center 3 and contain X, Y and Z type of basis functions (viz. PX, PY and PZ). Assume that the  
indices of such shells are 3, 6 and 7, then input s 3,6,7 to add them into fragment. If you want to  
verify your operation, input all again and check if asterisks have appeared in the leftmost of  
corresponding rows, the marked basis functions are those that have been included in the fragment.  
Finally, input the letter q to save current fragment and return to last menu, the indices of basis  
functions in the fragment will be printed at the same time.  
By default, fragments do not have any content. Each time you enter the fragment definition  
interface, the status of fragment is identical to that when you leave the interface last time. So, if you  
have defined the fragment earlier and you want to completely redefine it, do not forget to use “clean”  
command to empty the fragment first.  
3
.10.3 Output composition of fragment 1 and inter-fragment  
composition by Mulliken, Stout-Politzer and SCPA approaches (4, 5, 6)  
After you defined fragment 1, the fragment composition analysis based on Mulliken, Stout-  
Politzer and SCPAapproaches is available. The fragment composition is the sum of all basis function  
compositions within the fragment, in this function the fragment compositions of all orbitals are  
printed on screen at the same time. If the analysis method you chose is Mulliken (subfunction 4) or  
Stout-Politzer (subfunction 5), below component terms are outputted together with total  
composition:  
c^2 term: The sum of square of coefficients of basis functions within fragment 1, namely  
2
a,i  
C 100%  
.
afrag1  
Int.cross: The sum of internal cross terms in fragment 1, namely  
C C S 100%  
.
a,i b,i a,b  
afrag1 bfrag2  
Ext.cross: Fragment 1 part of the total cross term between fragment 1 and all other atoms,  
9
7
 
 
3
Functions  
namely  
w 2C C S 100%  
.
a,b  
a,i b,i a,b  
afrag1 bfrag1  
It is clear that total composition of fragment 1 equals to c^2 term + Int.cross + Ext.cross.  
If the fragment 2 is also defined (you must have already defined fragment 1), in subfunction 5  
(Mulliken) or subfunction 5 (Stout-Politzer) the cross term between fragment 1 and fragment 2 in  
each orbital, namely  
2C C S 100% will be outputted too. “Frag1 part” and  
a,i b,i a,b  
afrag1 bfrag2  
Frag2 part” correspond to the components of cross term attributed to fragment 1 and fragment 2  
respectively, for Mulliken analysis the two terms are of course exactly equal due to the “equal  
partition”.  
3
.10.4 Orbital composition analysis by natural atomic orbital approach  
(
7)  
This function is used to calculate orbital composition based on natural atomic orbitals (NAOs).  
Theory  
The first step of the famous natural bond orbital (NBO) analysis is converting original basis  
functions to NAOs based on density matrix. Resulting NAOs can be classified into three categories:  
Core-type NAOs, describing inner core densities, their occupation numbers are almost equal  
to integer  
Valence-type NAOs, describing valence densities, generally they have high occupation  
numbers  
Rydberg-type NAOs, mainly displaying characteristics of polarization and delocalization of  
electrons, the occupation numbers of them are very low  
Core and valence NAOs are collectively called as minimal set, they have strong physical  
meaning and have one-to-one correspondence with "actual" atomic orbitals, so they are what we  
should be most concerned. Occupied MOs are almost exclusively contributed by minimal set NAOs.  
Rydberg NAOs do not have clear physical interpretation, their contributions can be ignored in  
occupied MOs, however they often have great contribution to virtual orbitals.  
Since NAOs is an orthonormal set, if we have MO coefficient matrix in NAO basis, we can get  
contribution from a NAO to specific MO by simply squaring corresponding expansion coefficient  
and then multiplying it by 100%. Composition of an atom can be calculated as sum of composition  
of minimal set NAOs in this center.  
This orbital composition calculation method based on NAOs has great basis set stability as  
Hirshfeld approach, it is especially suitable for analyzing composition of occupied orbitals.  
However for virtual orbitals, since contribution from Rydberg NAOs is often large, this method no  
longer works well.  
Input file  
The MO coefficient matrix in NAO basis cannot be generated by Multiwfn itself, you need to  
provide an output file of NBO program containing this matrix as Multiwfn input file. By default  
9
8
 
3
Functions  
NBO program does not output this matrix, so you need to manually add NAOMO keyword between  
NBO ... $END field in NBO input file. The NBO program we referred here may be stand-alone  
$
NBO program (also known as GENNBO), or NBO module embedded in quantum chemistry  
software, such as L607 in Gaussian.  
Options  
After loading proper input file and enter present function, you will find following options in  
the interface:  
-
1 Define fragment: This option is used to define fragment, which is needed by fragment  
contribution analysis (option 1). All commands are self explanatory.  
Show composition of an orbital: Print contribution from NAOs, shells and atoms to a  
0
specific MO. At the meantime, contributions from core, valence and Rydberg type of NAOs are  
reported respectively.  
1
Show fragment contribution to a batch of orbitals: Print contribution from the fragment  
defined by option -1 to specific orbitals.  
Select output mode: This option controls which set of terms will be printed by option 0,  
there are four modes:  
2
(
(
(
(
0) Show all terms  
1) Show non-Rydberg terms  
2) Show the terms whose contributions are larger than specific criterion  
3) Show non-Rydberg terms whose contributions are larger than specific criterion (default)  
3
Switch spin type: You can find this option if the current system is open shell. You can select  
the spin of the MOs to be analyzed.  
An example is given in Section 4.8.2.  
Information needed: MO coefficients in NAO basis  
3
.10.5 Calculate atom and fragment contributions by Hirshfeld or  
Hirshfeld-I method (8,10)  
Hirshfeld and Hirshfeld-I weighting function (see Sections 3.9.1 and 3.9.13, respectively) can  
also be used for decomposing orbital to atom and fragment compositions, the composition of atom  
2
A in orbital i is  (r)w (r)dr 100% . The composition of a fragment is simply the sum of  
i
A
the compositions of the atoms that belongs to the fragment. These methods have great basis set  
stability and are always more reliable and reasonable than Mulliken and MMPA. In fact the  
Hirshfeld partition is already good enough, the more sophisticated and computationally demanding  
Hirshfeld-I partition is not necessary.  
If you choose to use Hirshfeld partition, you will be prompted to select the way to generate  
atomic densities for constructing Hirshfeld weighting function, I strongly suggest using the built-in  
atomic densities rather than using atomic .wfn files, since the former is much more convenient. If  
you choose to use Hirshfeld-I partition, regular HI iterations will be performed first to yield  
converged atomic weighting functions (if you are confused by the operations, please consult the  
9
9
 
3
Functions  
example of computing HI charges in Section 4.7.4 and the implementation details of Hirshfeld-I  
introduced in Section 3.9.13).  
Before calculating orbital composition, data initialization is automatically carried out. Once it  
is finished, you can input the orbital index that you are interested in. Because numerical quadrature  
always introduces some errors, so the sum of all atom compositions is not exactly equals to 100%,  
the deviation might be relatively significant in rare cases, so Multiwfn normalizes results  
automatically and prints them under the title “After normalization”.  
If you want to view composition of an atom in specific range of orbitals at the same time,  
choose option -2, then input the atom index and the index range of orbitals.  
If you wish to study contribution of a fragment to orbitals, use -9 to define a fragment first,  
then when you input an orbital index, the contribution of the fragment will be outputted along with  
the contributions of all atoms. Also, you can choose -3 to calculate the contribution from the  
fragment you defined to a range of orbitals.  
If selecting option -4, program will calculate composition of every atom in every orbitals and  
then export all of them to orbcomp.txt in current folder.  
An example is given in Section 4.8.3.  
Information needed: Atom coordinates and GTFs  
3
.10.6 Calculate atom and fragment contributions by Becke method (9)  
This function is very similar to the function introduced in Section 3.10.5, the only difference  
is that Becke partition is used instead of Hirshfeld partition. For most cases, their results are in  
qualitative agreement with each other. Using Becke partition instead of Hirshfeld partition has a  
prominent advantage, namely the atomic wavefunction files are not needed, since the Becke atomic  
space can be simply constructed based on atomic radius. For more detail about Becke partition, see  
Section 3.18.0. An example is given in Section 4.8.3.  
Information needed: Atom coordinates and GTFs  
3
.10.7 Calculate atom and fragment contributions by AIM method (11)  
Multiwfn is also able to compute orbital composition based on atoms-in-molecules (AIM)  
partition of molecular space. In this partition method, each atomic basin corresponds to space of an  
atom, see Section 3.20 on detail about the concept of basin and AIM partition. To calculate orbital  
composition under AIM partition, you should use subfunction 11 of basin analysis module (main  
function 17), see Section 4.8.6 for example.  
Usually I do not recommend to calculate orbital composition in this way, because the cost is  
significantly higher than other ways while the result is not better.  
Information needed: Atom coordinates and GTFs  
1
00  
 
 
3
Functions  
3
.10.100 Evaluate oxidation state by LOBA method (100)  
This function is an implementation the LOBA method proposed in Phys. Chem. Chem. Phys.,  
1
1, 11297 (2009). LOBA (localized orbital bonding analysis) is a method used to evaluate atomic  
oxidation state based on orbital composition of localized MOs (LMOs). The idea is very simple: if  
an atom has N nuclear charges, and its composition in M occupied LMOs are larger than a threshold  
(e.g. 50%. In this case the electrons in these LMOs can be approximately viewed as completely  
attributed to the atom. If a LMO is doubly occupied, it should be counted twice), then the oxidation  
state of the atom is N-M.  
In my opinion, this idea can also be extended to define fragmental oxidation state, namely if  
the sum of nuclear charge in a fragment is N, and the fragment contribution to M LMOs are larger  
than a certain threshold, then the fragment oxidation state will be N-M.  
To use this function, you should provide .mwfn, .fch or .molden file containing LMOs (or  
NBOs). For example, if you are a Gaussian user, you can use the .fch file resulting from  
pop=saveNBO or pop=saveNLMO task as input. Alternatively, you can directly use Multiwfn to  
carry out orbital localization to generate .fch containing localized orbitals. An example is given in  
Section 4.8.4.  
The result of LOBA method somewhat depends on the choice of orbital composition analysis  
method. Multiwfn employs Hirshfeld method for LOBA analysis, it is very robust.  
Information needed: Basis functions  
3
.11 Bond order analysis (9)  
In the bond order analysis module, you can directly select an option to analyze bond order by  
corresponding method.  
If you want to obtain total bond order between atoms in two molecular fragments, you can use  
option -1 to define fragments 1 and 2 prior to bond order analysis. Then if you choose an option to  
calculate bond order, the total bond order IRS between the two fragments will be calculated as follows  
by summing up interatomic bond orders, and meantime be outputted along with two-center bond  
orders  
I =  
I
RS  AB  
AR BS  
Evidently, interfragment bond order calculation is not available for multi-center bond order analysis, orbital  
occupancy-perturbed Mayer bond order and Wiberg bond order decomposition analysis.  
3
.11.1 Mayer bond order analysis (1)  
The Mayer bond order between atom A and B is defined as (Chem. Phys. Lett, 97, 270 (1983))  
AB  
AB  
I
= I + I = 2  
[(P S) (P S) + (P S) (P S) ]  
AB  
  
ba  
ab  
ba  
ab  
aA bB  
where P and P are alpha and beta density matrix respectively, S is overlap matrix. Above formula  
P = P + P  
can be equivalently rewritten using total density matrix  
and spin density matrix  
1
01  
 
 
 
3
Functions  
S
P = P  P  
S
S
I
=
[(PS) (PS) + (P S) (P S) ]  
AB   
ba  
ab  
ba  
ab  
aA bB  
For restricted closed-shell circumstance, since spin density matrix is zero, the formula can be  
simplified to  
I
=
(PS) (PS)  
ab ba  
AB   
aA bB  
Generally, the value of Mayer bond order is in agreement with empirical bond order, for single,  
double and triple bond the value is close to 1.0, 2.0 and 3.0 respectively. For unrestricted or restricted  
open-shell wavefunction, alpha, beta and total Mayer bond orders will be outputted separately. By  
default, only the bonds whose bond order exceed 0.05 will be printed on screen, the threshold can  
be adjusted by “bndordthres” parameter in settings.ini, you can also select to export full bond order  
matrix.  
Moreover, Multiwfn outputs total and free valences, the former is defined as  
V = 2  
(
PS )aa  
(
PS ) (PS )ba  
A
  
ab  
aA  
aA bA  
The latter is defined as  
s
s
F =V −  
I
=
(P S) (P S)  
ab ba  
A
A
AB   
BA  
aA bA  
s
where P is spin density matrix, namely P minusing P .  
s
For restricted closed-shell wavefunctions free valences are zero since P =0, thus total valence  
of an atom is simply the sum of the related bond orders  
V =  
I
AB  
A
BA  
Total valence (also known as atomic valence) measures atomic bonding capacity, while free valence  
characterizes the remaining ability of forming new bonds by sharing electron pairs.  
For unrestricted or restricted open-shell system, there is another way to calculate total bond  
order rather than summing up alpha and beta bond orders, that is summing up alpha and beta density  
matrices to form total density matrix first and then calculate Mayer bond order by using restricted  
closed-shell formula, this treatment is sometimes called “generalized Wiberg bond order“, these  
total bond orders are printed following the title “Mayer bond order from mixed alpha&beta density  
matrix”.  
Similar to Mulliken population, Mayer bond order and the multi-center bond order described  
below are sensitive to basis set, so do not use the basis sets having diffuse functions, otherwise the  
bond order result will be unreliable.  
Although Mayer bond order was originally defined for single-determinant wavefunctions, for  
post-HF wavefunctions, Multiwfn calculates Mayer bond orders via exactly the same formulae as  
shown above based on corresponding post-HF density matrix. The reasonableness of this treatment  
has been validated in Chem. Phys. Lett., 544, 83 (2012).  
Some applications of Mayer bond order can be seen in J. Chem. Soc., Dalton Trans., 2001,  
2
095.  
Information needed: Basis functions  
1
02  
3
Functions  
3
.11.2 Multi-center bond order analysis (2, -2, -3)  
In main function 9 there are three options (2, -2, -3) used to calculate multi-center bond order,  
they are very similar and will be introduced below in turn. Finally, a notable point about the input  
order of atomic indices is mentioned.  
Option 2: Standard multi-center bond order  
The multi-center bond order (MCBO), which is also known as multi-center index (MCI), was  
originally proposed in Struct. Chem., 1, 423 (1990), in some sense it may be viewed as an extension  
of Mayer bond order to multi-center cases. Multiwfn supports it up to 12 centers.  
Three/four/five/six-center bond orders are defined respectively as  
I
=
(PS) (PS) (PS)  
ab bc ca  
ABC   
aA bB cC  
I
=
(PS) (PS) (PS) (PS)  
ab bc cd da  
ABCD   
aA bB cC dD  
I
=
(PS) (PS) (PS) (PS) (PS)  
ab bc cd de ea  
ABCDE   
aA bB cC dD eE  
I
=
(PS) (PS) (PS) (PS) (PS) (PS)  
ab bc cd de ef fa  
ABCDEF   
aA bB cC dD eE fF  
Similarly, infinite-center bond order can be written as  
I
=
 (PS) (PS) (PS) (PS)  
ABCDEFK    
ab  
bc  
cd  
ka  
aA bB cC kK  
For open-shell cases, there are two definitions of the MCBO, the first one is the sum of alpha  
part and beta parts:  
I
= I  
+ I  
ABCDEFK  
ABCDEFK  
ABCDEFK  
n1  
=
2
(P S) (P S) (P S) (P S)  
   
ab  
bc  
cd  
ka  
aA bB cC  
kK  
n1  
+
2
(P S) (P S) (P S) (P S)  
   
ab  
bc  
cd  
ka  
aA bB cC  
kK  
Another definition is using the mixed density matrix, this is not rigorous as above:  
mixed  
mixed  
mixed  
mixed  
I
=
(P  
S) (P  
S) (P  
S) (P  
S)ka  
ABCDEFK    
ab  
bc  
cd  
aA bB cC  
kK  
mixed  
P
= P + P  
For unrestricted or restricted open-shell wavefunction, the output of MCBO analysis consists  
of four terms, which have been explained above: (1) The result from alpha density matrix (2) The  
result from beta density matrix (3) The sum of the result of alpha and beta parts (4) The result from  
mixed alpha&beta density matrix. Commonly, if you are only interested in total MCBO, you should  
use (3).  
The computational cost for MCBO increases exponentially with the number of centers; for ring  
size larger than 12 centers the cost will be prohibitively high, so Multiwfn does not support higher  
number of centers. If you need to calculate MCBO for more than 12 centers, you have to calculate  
1
03  
 
3
Functions  
AV1245 index instead, see Section 3.11.10 for introduction.  
Notice that the MCBO for different number of centers are not directly comparable, since the  
result is not in the same magnitude. However, in Phys. Chem. Chem. Phys., 18, 11839 (2016), it was  
shown that the normalized MCBO is comparable for different ring size and can be simply calculated  
1
/n  
as MCBO , where n is the number of centers. For example, at B3LYP/6-31G* level, the MCBO  
+
for H3 , benzene (6 centers) and naphthalene (12 centers) are 0.2963, 0.0863 and 0.0080,  
respectively, while the normalized results are 0.667, 0.665 and 0.617, respectively. When MCBO is  
1
/n  
negative, the normalized value will be calculated as -|MCBO| . Commonly, if you need to compare  
MCBO between different number of centers, you should take the normalized MCBO from the  
information printed by Multiwfn, else using raw MCBO value is suggested.  
Multiwfn is able to automatically search multi-center bonds. If you input -3 when Multiwfn  
asks you to input atom combination, all three-center bond orders will be calculated, only those larger  
than the threshold you inputted will be printed. Similarly, four-, five- and six-center bonds can be  
searched by inputting -4, -5 and -6 respectively. Due to efficiency consideration, the search may be  
not exhaustive. Also note that the search is based on mixed alpha&beta density matrix for open-  
shell cases.  
There is a hidden option -3 in main function 9, it is used to calculate MCBO under Löwdin  
orthogonalized basis. The only difference between this option and the option 2 described above is  
that this option performs Löwdin orthogonalization for basis functions before calculating the MCBO.  
Since this method does not have obvious advantage over the standard MCBO definition, this option  
is rarely used and thus invisible in the interface. However, if you have interesting, you can have a  
try.  
Option -2: Multi-center bond order in natural atomic orbital (NAO) basis  
The most severe drawback of the MCBO is its high basis set dependency. In particular, if  
diffuse functions are involved, then MCBO may be completely meaningless. In order to tackle this  
problem, I proposed an alternative way (to be published) to calculate the MCBO, and the idea is  
implemented as option -2.  
Option -2 is very similar to option 2 (as introduced above), the only difference is that the  
MCBO is calculated based on natural atomic orbital (NAO) basis rather than based on the basis  
functions originally defined by the basis set. Since NAO is an orthonormal set and thus overlap  
matrix S is an identity matrix, the formula can be simplified as (using closed-shell form for example)  
I
=
P P P P  
ABCDEFK   ab bc cd  
ka  
aA bB cC  
kK  
The MCBO calculated in this manner has very good stability with respect to change in basis  
set. Even if diffuse functions are presented the result is still fully reliable. According to my  
experience, if no basis function shows diffuse character, the results given by option 2 and -2 will be  
very similar, though not exactly identical.  
In order to use option -2, the output file of NBO module embedded in Gaussian or standalone  
NBO program (namely GENNBO) should be used as input file, and DMNAO keyword must be used  
to make NBO print density matrix in NAO basis. If you are a Gaussian user, for example, you can  
use output file of below instance as input file of Multiwfn (DO NOT use .fch file for this analysis!).  
#
p PBE1PBE/6-311G** pop=nboread  
opted  
1
04  
3
Functions  
0
1
C
0.00000000  
-2.14060700  
1.38886900  
1.23588000  
0.00000000  
0.00000000  
.
.. [ignored]  
H
$
NBO DMNAO $END  
In this function, if you only input indices of two atoms, then the result is just Wiberg bond  
order under NAO basis, which is completely identical to that printed by bndidx keyword of NBO  
program.  
Influence of input order of atomic indices on the result  
Both the direction (e.g. A,B,C,D vs. D,C,B,A) and permutation (e.g. A,B,C,D vs. B,D,C,A ...)  
of the inputted atomic indices can influence the calculated MCBO, below I describe this point in  
detail.  
Input direction  
Due to the mathematical form of the original MCBO (i.e. the one calculated by option 2), the  
result of MCBO may relies on input direction. For example, the result yielded by inputting A,B,C,D  
can be different from that by inputting D,C,B,A. The reason is clear: The term corresponding to  
A,B,C,D is (PS)ab(PS)bc(PS)cd(PS)da, while if we invert the input order, the term will become  
(PS)dc(PS)cb(PS)ba(PS)ad. Although both P and S are symmetry matrices, their product PS is not  
necessarily symmetry, so the two terms are not equivalent. In my own viewpoint, in order to obtain  
more reasonable result, if in a ring the atom connectivity is A-B-C-D-E-F (A also connects to F),  
one should calculate A,B,C,D,E,F and F,E,D,C,B,A respectively and then take their average. If you  
want Multiwfn to directly prints the averaged value, you can set "iMCBOtype" in settings.ini to 1,  
in this case you do not need to manually perform the calculation twice, however, of course, the  
computational cost is doubled compared to normal case.  
An advantage of using option -2 to calculate MCBO in NAO basis and using option -3 to  
calculate it in Löwdin orthogonalized basis is that the result is irrelevant to the input direction, this  
is because in these cases the overlap matrix S is not explicitly involved and the density matrix P is  
a symmetry matrix.  
Index permutation  
Permutation of inputted atomic indices in the calculation of MCBO can significantly alter the  
result. For example, the result of inputting 1,2,3,4,5,6 may be very different to that of inputting  
2
,4,3,5,6,1, regardless of which form of MCBO is used. If your aim is to study aromaticity and  
characterize cyclic delocalization of electrons over a ring, you should input the atomic indices in  
clockwise or anti-clockwise order, or take their average as mentioned above.  
Some people advocated that it is needed to take all possible permutations into account to get a  
definitive result, see J. Phys. Org. Chem., 18, 706 (2005); that means for a region consisting of six  
atoms, the bond order of (B,C,A,D,E,F), (C,A,B,D,E,F), (D,B,C,A,F,E) and so on (6!=720 in total)  
are all required to be taken into account. An explicit definition is given below, see Eq. 9 of Phys.  
Chem. Chem. Phys., 18, 11839 (2016):  
1
perm  
I
=
I
A,B,C...  
2
n
ˆ
P( A,B,C...)  
1
05  
3
Functions  
̂
where n is the number of atoms involved in the calculation,  is permutation operator that  
generates all possible permutation sequences. The MCBO in this form is significantly more  
expensive than the one in original definition, and it is not suitable for measuring aromaticity or  
cyclic delocalization. However, it may be useful in measuring "global" electron delocalization  
among atoms in a cluster-like region.  
If you want to make Multiwfn directly print Iperm, you can set "iMCBOtype" in settings.ini to  
2
, then if you calculate MCBO as usual (via any of options 2, -2 and -3), the printed result will  
correspond to Iperm  
.
Information needed: Basis functions (options 2, -3), NBO output file with DMNAO keyword  
option -2)  
(
3
.11.3 Wiberg bond order analysis in Löwdin orthogonalized basis (3)  
Wiberg bond order is defined as follows, see footnote in Tetrahedron, 24, 1083 (1968)  
2
I
=
P
AB  ab  
aA bB  
The original definition of Wiberg bond order is only suitable for the wavefunction represented  
by orthogonal basis functions such as most of semiempirical wavefunctions, and only defined for  
restricted closed-shell system. Actually, Mayer bond order can be seen as a generalization of Wiberg  
bond order, for restricted closed-shell system and orthonormal basis functions (namely S matrix is  
identity matrix) cases their results are completely identical.  
In this function, Multiwfn first orthogonalizes basis functions by Löwdin method and then  
performs usual Mayer bond order analysis. The threshold for printing is controlled by “bndordthres”  
in settings.ini too.  
As shown in J. Mol. Struct. (THEOCHEM), 870, 1 (2008), the Wiberg bond order calculated  
in this manner, say WL, has much less sensitivity to basis set than Mayer bond order (whereas for  
small basis sets, their results are closed to each other). One should be aware that WL tends to  
overestimates bond order for polar bonds in comparison with Mayer bond order.  
Commonly, if there is not special reason, using Mayer bond order is more preferred.  
Notice that numerous literatures used NBO program to calculate Wiberg bond order, the result  
must be somewhat different to that produced by present function, because in NBO program the  
Wiberg bond orders are calculated in the basis of natural atomic orbitals (NAO), which are generated  
by OWSO orthogonalization method. Multiwfn is also possible to calculate Wiberg bond order  
under NAO basis, and furthermore, the result can be decomposed as atomic orbital pair contributions,  
see Section 3.11.8 for details.  
Information needed: Basis functions  
3
.11.4 Mulliken bond order analysis (4) and decomposition (5)  
Mulliken bond order is the oldest bond order definition, it is defined as  
1
06  
 
 
3
Functions  
I
=
i  
2C C S = 2  
P S  
AB  
 a,i b,i a,b  
 a,b a,b  
i
aA bB  
aA bB  
Mulliken bond order has low agreement with empirical bond order, it is deprecated for  
quantifying bonding strength, for which Mayer bond order always performs better. However,  
Mulliken bond order is a good qualitative indicator for bonding (positive value) and antibonding  
(
negative value). The threshold for printing results is controlled by “bndordthres” parameter in  
settings.ini.  
Mulliken bond order is easy to be decomposed to orbital contributions, the contribution from  
orbital i to bond order AB is  
i
I
=i  
2C C S  
AB  
 a,i b,i a,b  
aA bB  
From the decomposition, we can know which orbitals are favourite and unfavourite for specific  
bonding.  
Information needed: Basis functions  
3
.11.5 Orbital occupancy-perturbed Mayer bond order (6)  
Orbital occupancy-perturbed Mayer bond order was firstly proposed in J. Chem. Theory  
Comput., 8, 908 (2012). Put simply, by using this method one can obtain how large is the  
contribution from specific orbital to Mayer bond order.  
Orbital occupancy-perturbed Mayer bond order can be written as  
A,B  
,  
AB  
,  
AB  
X
X
X
X
I
= I + I = 2  
[(P S) (P S) + (P S) (P S) ]  
  
ba  
ab  
ba  
ab  
aA bB  
The only difference between this definition and Mayer bond order shown in Section 3.11.1 is that  
X
P
and  
P
have been replaced by  
P
and PX respectively. PX stands for the density  
matrix generated when occupation number of a specific orbital is set to zero. The difference between  
A,B  
I
and Mayer bond order can be regarded as a measure of contribution from the orbital to Mayer  
bond order. Bear in mind, because Mayer bond order is not a linear function of density matrix, the  
A,B  
sum of  
I
for all orbitals is not equal to Mayer bond order generally.  
A,B  
In Multiwfn, you only need to input indices of two atoms, then  
I
for all occupied orbitals  
A,B  
and the difference between  
I
and Mayer bond order will be outputted. The more negative  
(positive) the difference, the more beneficial (harmful) to the bonding due to the existence of the  
orbital.  
A,B  
You can also use another way to calculate  
I
, that is using wavefunction modification  
module (main function 6) to manually set occupation number of a specific orbital to zero, and then  
A,B  
calculate Mayer bond order as usual, but this manner may be tedious if you want to calculate  
I
1
07  
 
3
Functions  
for many orbitals.  
This kind of analysis is illustrated in Section 4.9.1 and Section 4.19.3.  
Information needed: Basis functions  
3
.11.6 Fuzzy bond order (7)  
Fuzzy bond order (FBO) was first proposed by Mayer in Chem. Phys. Lett., 383, 368 (2004):  
AB  
AB  
A
B
A
B
BAB = B + B = 2  
[(P S ) (P S ) + (P S ) (P S ) ]  
  
  
  
  
  
A
S = w (r) (r) (r)dr  
A
where S is overlap matrix of basis functions in fuzzy atomic spaces. In Multiwfn, Becke's fuzzy  
atomic space with sharpness parameter k=3 in conjunction with modified CSD radii is used for  
calculating FBO. (See Section 3.18.0 for introduction of fuzzy atomic space).  
Commonly the magnitude of FBO is close to Mayer bond order, especially for low-polar bonds,  
but much more stable with respect to the change in basis set. According to the comparison between  
FBO and delocalization index (DI) given in J. Phys. Chem. A, 109, 9904 (2005), FBO is essentially  
the DI calculated in fuzzy atomic space. See Section 3.18.5 for detail about DI.  
Calculation of FBO requires performing Becke's DFT numerical integration, due to which the  
computational cost is larger than evaluation of Mayer bond order. By default, 40 radial points and  
2
30 angular points are used for numerical integration. This setting is able to yield accurate enough  
results in general. If you want to further refine the result, you can set the number of radial and  
angular points by "radpot" and "sphpot" in settings.ini manually, and ensure that "iautointgrid" has  
been set to 0.  
The threshold for printing results is controlled by “bndordthres” parameter in settings.ini.  
Information needed: GTFs, atom coordinates  
3
.11.7 Laplacian bond order (8)  
In J. Phys. Chem. A, 117, 3100 (2013) (http://pubs.acs.org/doi/abs/10.1021/jp4010345), I  
2
proposed a novel definition of covalent bond order based on the Laplacian of electron density    
in fuzzy overlap space, called Laplacian bond order (LBO). The LBO between atom A and B can be  
simply written as  
2
LA,B = −10 w (r)w (r) (r)dr  
A
B
2
0  
where w is a smoothly varying weighting function proposed by Becke and represents fuzzy atomic  
space, hence wAwB corresponds to fuzzy overlap space between A and B. Note that the integration  
2
is only restricted to negative part of   . The physical basis of LBO is that the larger magnitude  
1
08  
 
 
3
Functions  
2
the integral of negative   in the fuzzy overlap space, the more intensive the electron density  
is concentrated in the bonding region, and therefore, the stronger the covalent bonding.  
The reasonableness and usefulness of LBO were demonstrated by applying it to a wide variety  
of molecules and by comparing it with many existing bond order definitions. It is shown that LBO  
has a direct correlation with the bond polarity, the bond dissociation energy and the bond vibrational  
frequency. The computational cost of LBO is low, also LBO is insensitive to the computational level  
used to generate electron density. In addition, since LBO is inherently independent of wavefunction,  
one can in principle obtain LBO by making use of accurate electron densities derived from X-ray  
diffraction data.  
In Multiwfn, Becke's fuzzy atomic space with sharpness parameter k=3 in conjunction with  
modified CSD radii is used for calculating LBO. (See Section 3.18.0 for detail about fuzzy atomic  
space). The threshold for printing results is controlled by “bndordthres” parameter in settings.ini.  
Note that in current implemention, LBO is particularly suitable for organic system, but not for  
ionic bonds since in these cases a better definition of atomic space should be used to faithfully  
exhibit actual atomic space. LBO is also not very appropriate for studying the bond between two  
very heavy atoms (heavier than Ar), because these bonds are often accompanied by insignificant  
charge concentration in the fuzzy overlap space, even though the bonding is doubtless covalent.  
Information needed: GTFs, atom coordinates  
3
.11.8 Decompose Wiberg bond order in NAO basis as atomic orbital  
pair contributions (9)  
Theory  
As mentioned in Section 3.11.3, Wiberg bond order is expressed as  
2
I
=
P
AB  ab  
aA bB  
The data is calculated for atom pair. Since the expression is simply a linear combination of square  
of density matrix element, it is straightfoward to decompose Wiberg bond order as basis function  
2
pair contribution (this idea is to be published). For example, Pab is simply the contribution from  
interaction between basis functions a and b. Since one-to-one correspondence between basis  
function and atomic orbital is lacking when extended basis set is used, in order to make the  
decomposition method full of physical meaning, the decomposition is best to be carried out under  
natural atomic orbitals (NAOs). Each non-Rydberg type of NAO uniquely corresponds to an atomic  
orbital, thus, by above decomposition method, Wiberg bond order at the atomic orbital scale can be  
obtained.  
In addition, contribution from interaction between atomic orbital shells i and j can be obtained  
2
ab  
as  
P
.
ashelli bshell j  
By the way, it is also possible to decompose multi-center bond order as atomic orbital  
contribution. For example, three-center bond order is expressed as  
1
09  
 
3
Functions  
I
=
P P P  
ABC  ab bc ca  
aA bB cC  
Clearly, P P P can be regarded as contribution from interacting between NAOs a, b and c.  
ab bc ca  
However, decomposition of multi-center bond order under NAO basis has not been implemented.  
Usage  
After entering this function, simply input indices of two atoms, the nonnegligible contribution  
from NAO pairs and NAO shell pairs together with total Wiberg bond will be printed.  
The input file of this function is completely identical to the option -2 described in Section  
3
.11.2, namely the output file of NBO program containing density matrix information (i.e.  
"DMNAO" keyword is required).  
An illustrative example of this decomposition analysis is given in Section 4.9.4.  
3
.11.9 Intrinsic bond strength index (IBSI) (10)  
Theory  
The intrinsic bond strength index (IBSI) was proposed in J. Phys. Chem. A, 124, 1850 (2020)  
to quantify strength of chemical bonds, it may also be used to compare strength of weak interactions.  
The IBSI is defined in the framework of independent gradient model (IGM), which is very detailedly  
described in Section 3.23.5. The IBSI is expressed as  
2
pair  
(
1/ d )  g dr  
IBSI =  
2
H
2
(
1/ d )  g dr  
H
2
where d is the distance between the two atoms for which the interaction is to be studied. The integral  
in the numerator is equivalent to the atom pair g index defined by me between the two atoms, see  
Section 3.23.6 for detail. The denominator is the data for reference system, the H and the integral  
are the bond length and atom pair g index of H2 in its equilibrium structure, respectively. In the  
original paper of IBSI, it was shown that the IBSI value is modestly positively correlated with  
strength of covalent bond. Furthermore, it was found that magnitude of IBSI of transition metal  
coordinate bond is markedly smaller than that of covalent bond, and magnitude of IBSI of weak  
interactions is even much lower, this feature of IBSI may be used to distinguish type of interaction.  
Implementation  
It is important to note that in the IBSI paper the authors calculated the IBSI using the IGM  
based on gradient-based partition (IGMGBP), however this form of IGM is not supported by  
Multiwfn. Currently Multiwfn supports the original form of IGM, namely IGM based on  
pro  
promolecular approximation (IGM ), and also supports IGM based on Hirshfeld partition of  
molecular density (IGMH), which I believe is better than IGMGBP. Different forms of IGM  
correspond to different ways of evaluating gradient of atomic density, and thus the value of the  
integral in the IBSI expression is correspondingly different. In Multiwfn, the IBSI can be computed  
based on both IGMpro and IGMH, their results are very different, I found the result based IGMpro is  
obviously closer to the original paper of IBSI.  
110  
 
3
Functions  
Usage  
To calculate IBSI, you simply need to enter main function 9 and select subfunction 10, then  
select option 0 to start calculation.  
Before calculation, Multiwfn asks you to choose quality of integration grid, evidently the better  
the grid, the higher the cost, while the more accurate the result. According to my experience, for  
pro  
IGM , "medium quality" is already able to give quantitatively accurate result; while for IGMH, at  
least "high quality" should be used if you have requirement on accuracy.  
You can choose which form of IGM will be used in the IBSI calculation by option 2. If the  
input file contains wavefunction information, by default IGMH is used, while if the input file only  
contains geometry information (e.g. .pdb, .mol, .xyz...), only IGMpro can be used. Note that IGMH  
pro  
is much more expensive than IGM , since its formule to evaluate gradient of atomic density is  
much more complicated.  
If you are only interested in the interactions in a local region, you can choose option 3 to define  
the region to be studied, only the IBSI between the atoms in the defined fragment will be evaluated  
and outputted, the cost is correspondingly lower than the IBSI calculation for the whole system,  
especially when the system is huge.  
The reference value can be set by option 4, it corresponds to the denominator of the IBSI  
formule. Of course, this value must be different for IGMpro and IGMH. The default reference values  
of both IGMpro and IGMH cases were calculated for H2 with experimental structure (0.74144 Å), in  
the latter case B3LYP/6-311G** wavefunction was employed. Commonly, the reference value is  
not needed to be changed. However, for calculating IBSI in terms of IGMH, if you want to obtain  
the reference value at your current calculation level to pursue stricter result, you can load  
wavefunction file of H2, then enter the present function, set reference value to 1.0, then use option  
0
to start to calculate IBSI, the result can be employed as reference value for studying practical  
molecules.  
In order to avoid excessive output, by default only the data for the atom pairs with separation  
smaller than 3.5 Å are printed, because IBSI should be negligible if the separation is larger. If you  
need to adjust the distance printing threshold, use option 5.  
Example of calculating IBSI is given in Section 4.9.6.  
Information needed: Atom coordinates (for IBSI based on IGM), GTF information (for IBSI  
based on IGMH)  
3
.11.10 AV1245 index (approximate multi-center bond order for large  
rings) and AVmin  
Theory  
The multi-center bond order (MCBO), as introduced in Section 3.11.2, is a very rigorous and  
popular way of characterizing aromaticity. Unfortunately, the computational cost of MCBO  
increases sharply with increase of the number of atoms involved in the ring, therefore commonly  
MCBO can only be applied to rings composed of up to 12 atoms.  
In order to quantify aromaticity for larger rings, in Phys. Chem. Chem. Phys., 18, 11839 (2016)  
111  
 
3
Functions  
the author proposed the AV1245 index. This index can be regarded as an approximation of MCBO,  
the key advantage of AV1245 over MCBO is that the computational cost of AV1245 only increases  
linearly with number of atoms, therefore AV1245 can be very easily used to characterize aromaticity  
for rings composed of dozens of atoms and may even be used for rings containing several hundreds  
of atoms.  
The definition of AV1245 in the original paper is "average all the 4c-ESI values along the ring  
that keeps a positional relationship of 1, 2, 4, 5". Here I clarify its definition. As an instance, for  
below ring,  
its AV1245 is calculated as  
AV1245=[ESI(1,2,4,5)+ESI(2,3,5,6)+ESI(3,4,6,1)+ESI(4,5,1,2)+ESI(5,6,2,3)+ESI(6,1,3,4)] / 6  
where the nc-ESI (n-center electron sharing index) can be directly obtained via the multi-center  
bond order with all possible permutations (namely I perm, see Section 3.11.2 for detail) by below  
relationship  
2
perm  
ESI =  
I
(
n 1)!  
where n is the number of atoms. Evidently, 4c-ESI = (4c-Iperm) / 3.  
The central idea of AV1245 is based on the fact that in an aromatic ring, the resonance between  
1
-2 bond and 4-5 bond is strong, as illustrated below. This feature can be captured by ESI(1,2,4,5).  
Larger value of AV1245 of a cyclic path implies stronger delocalization and thus larger  
aromaticity of the ring. Since magnitude of AV1245 is small, it is often multiplied by 1000 when  
presenting the data.  
It is worth to note that in the original paper of AV1245, the MCBO was calculated in terms of  
atomic overlap matrix under AIM partition, this way of calculation is not only expensive but  
complicated. In Multiwfn, the MCBO involved in the AV1245 is calculated in usual way, namely  
perm  
based on density matrix and overlap matrix. Since in this case the calculation of 4-center I  
is  
fairly cheap, the AV1245 can be quickly obtained even for large systems and macro-rings. However,  
due to the difference in the calculation of MCBO, the result of AV1245 produced by Multiwfn is  
smaller than that in the original paper. In addition, when directly calculating AV1256 by Multiwfn  
(in other words, calculating AV1256 in original basis functions), the employed basis set should not  
contain diffuse functions, otherwise the AV1256 will be meaningless.  
Multiwfn also supports calculating AV1245 in natural atomic orbital (NAO) basis, in this case  
reasonable result can be obtained even if diffuse functions are presented. If there is no diffuse  
function, the result calculated in original basis functions and that in NAO basis is nearly the same.  
112  
3
Functions  
The AVmin index was proposed in J. Phys. Chem. C, 121, 27118 (2017) and further discussed  
in Phys. Chem. Chem. Phys., 20, 2787 (2018). It corresponds to minimal absolute value of all 4c-  
ESIs involved in the calculation of AV1245. Unlike AV1245, AVmin quantifies lowest degree of  
conjugation in the whole pathway, therefore it has unique value in distinguishing aromaticities of  
different delocalization pathways, since according to common intuition, aromaticity of a path should  
be predominated by the local region mostly disconnecting the delocalization over the whole path.  
In other words, AVmin is able to determine the bottleneck of aromaticity of a given path.  
Usage  
Calculating AV1245 and AVmin in original basis functions  
You should enter subfunction 19 of main function 200, then input indices of the atoms in the  
ring in the order of connectivity (clockwise or counterclockwise along the ring). After that, the  
AV1245 together with its constituent 4c-ESI values as well as AVmin will be outputted  
Multiwfn provides a convenience for inputting the atomic indices for large rings. If you input d first and press  
ENTER button, then you can input the atomic indices in arbitrary order, because in this case the actual order will be  
automatically guessed according to interatomic connectivities. However, this input mode cannot be used when any  
atom in the ring connects to more than two other atoms in the ring.  
Calculating AV1245 and AVmin in NAO basis  
The operation process is the same as "Calculating AV1245 and AVmin in original basis  
functions", however, you should use output file of standalone NBO program or the NBO module  
embedded in quantum chemistry codes as input file of Multiwfn, and meantime the "DMNAO"  
keyword must be employed in the NBO analysis. Note that in this case the aforementioned "d" mode  
of index inputting is not available.  
Examples of employing AV1245 and AVmin to study aromaticity of small rings and large rings  
are given in Section 4.9.11.  
Information needed: Atom coordinates, basis functions  
3
.12 Plotting total density-of-states (DOS), partial DOS,  
overlap population DOS, local DOS and photoelectron  
spectrum (10)  
3
.12.1 Theory  
Density-of-states (DOS) is an important concept of solid physics, which represents the number  
of states in unit energy interval, since energy levels are contiguous, so DOS can be plotted as curve  
map. In isolated system (such as molecule), the energy levels are discrete, the concept of DOS is  
questionable and some people argued that DOS is completely valueless in this situation. However,  
if the discrete energy levels are broadened to curve artifically, DOS graph can be used as a valuable  
tool for analyzing the nature of electron structure.  
113  
 
 
3
Functions  
The original total DOS (TDOS) of isolated system can be written as  
TDOS(E) = (E   )  
i
i
where {} is eigenvalue set of single-particle Hamilton, is Dirac delta function. If is replaced by  
broadening function F(x), such as Gaussian, Lorentzian and pseudo-Voigt function, we get  
broadened TDOS.  
The normalized Gaussian function is defined as  
x2  
1
c2  
FWHM  
2 2ln 2  
2
G(x) =  
e
where c =  
c 2  
FWHM is acronym of “full width at half maximum”, it is an adjustable parameter in Multiwfn,  
the larger FWHM the TDOS graph looks more smooth and analysis is easier to perform, but more  
fine-structure is masked.  
The normalized Lorentzian function is defined as  
FWHM  
1
L(x) =  
2
2
2  
x + 0.25 FWHM  
Pseudo-Voigt function is weighted linear combination of Gaussian function and Lorentzian  
function:  
P(x) = wGaussG(x) +(1wGauss)L(x)  
Obviously, if G(x) and L(x) are normalized, normalization condition for P(x) always holds  
regardless of the select of wGauss.  
The curve map of broadened partial DOS (PDOS) and overlap DOS (OPDOS) are very  
valuable for visual study of orbital composition. PDOS of fragment A is defined as  
PDOS (E) =  F(E  )  
A
i,A  
i
i
where i,A is the composition of fragment A in orbital i. Note that the word "projected DOS" used  
in some literatures is essentially equivalent to the partial DOS. The OPDOS between fragment A  
and B is defined as  
i
OPDOS (E) =  F(E  )  
A,B  
A,B  
i
i
i
where  
is the composition of total cross term between fragment A and B in orbital i. I have  
A,B  
discussed how to calculate and in Section 3.10.3.  
The local DOS is a special kind of DOS, which will be introduced in Section 3.12.4. Since the  
TDOS is closely related to photoelectron spectra (PES), present module is also able to PES, this  
point will be introduced in Section 3.12.5.  
Example of DOS: Ferrocene  
Below is DOS map of a typical molecule ferrocene, Lanl2DZ basis set in combination with  
Lanl pseudopotential is used for iron, 6-31G* is employed for other elements. In this system Z-axis  
is perpendicular to cyclopentadienyl groups.  
114  
3
Functions  
The graph clearly exhibits orbital characteristics in different energy ranges, each discrete lines  
corresponds to a MO. The curves are yielded by applying broadening function to the discrete lines.  
The left and right Y-axes correspond to the curves and discrete lines, respectively. Notice that only  
relative height rather than absolute height of curves is meaningful. It is obvious that the major  
contribution from s, px and py atomic orbitals of carbon (magneta curve) is due to low-lying MOs  
rather than frontier MOs. The major composition of MOs around -0.25 a.u. comes from pz orbital  
of carbon (blue curve) and iron atom (red curve). Inspection of the green OPDOS curve, which  
corresponds to the bonding between carbon pz and iron atom, suggests that carbon pz orbitals are  
very important for stablization of ferrocene, since OPDOS has large positive value in these ranges.  
HOMO is almost purely contributed by iron orbitals, however its slight overlap with carbon pz  
orbitals is still beneficial to bonding. For all virtual MOs, OPDOS curve is in negative region and  
shows antibonding characteristic, this is due to the unfavorable overlapping in orbital phase, as can  
been seen from LUMO isosurface.  
3
.12.2 Input file  
.
mwfn/.fch/.molden/.gms files can be used as input. You can also use output file of single point  
task of Gaussian program as input (pop=full keyword must be specified). For generality, Multiwfn  
supports plain text file as input too, the format is free, there is no upper limit of the number of  
orbitals. The format of the file should be  
nmo inp  
energy occ [strength] [FWHM]  
energy occ [strength] [FWHM]  
energy occ [strength] [FWHM]  
For orbital 1  
For orbital 2  
For orbital 3  
.
..  
energy occ [strength] [FWHM]  
For orbital nmo  
where energy and occ denote orbital energy and occupation number, respectively. nmo is the number  
of orbitals recorded in this file. inp is input type, there four cases:  
115  
 
3
Functions  
1: Only energies (in a.u.) and occupation numbers will be loaded, while strengths and FWHMs  
of all orbitals will be automatically set to 1.0 and 0.25 a.u., respectively  
2: The same as 1, but you also have to specify strength and FWHM for each orbital as columns  
3
and 4 because in this case they will also be loaded. If the strength of an orbital is set to k,  
then the broadened curve from this orbital will be normalized to k rather than 1 (default value)  
3: The same as 1, but energy unit is eV.  
4: The same as 2, but energy unit is eV.  
3
.12.3 Options for plotting DOS and basic usage  
When you entered the interface of plotting DOS, you will see following options. Notice that  
options -1 and 7 only appear when the input file contains basis function information, that is if you  
want to draw PDOS and OPDOS graph, you have to use .mwfn/.fch/.molden/.gms file as input.  
Also note that in this interface, you can input s to save current status (plotting settings, fragment  
definition and orbital information) to a specific file, and you can input l to load status from a specific  
file, so that you can quickly replot a map without redoing the settings.  
-5 Customize energy levels, occupations, strengths and FWHMs for specific MOs: By this  
option, you can manually set energies, occupations, strengths and FWHMs for specific orbitals. For  
example, if you would like only to plot DOS for a few MOs, you can set strengths of the other MOs  
to zero (by default, strengths for all MOs are 1.0).  
-4 Show all orbital information: Print information of all orbitals on screen.  
-3 Export energy levels, strengths, FWHMs to plain text file: Export energy, strength and  
FWHM of each orbital to orginfo.txt in current directory, this file complies the format introduced in  
last section, so can be directly used as input file.  
-2 Define MO fragments for MO-PDOS: The "MO-PDOS" is a special kind of PDOS, which  
is used to reveal DOS contributed by different sets of MOs (rather than atoms or basis functions),  
the DOS curves and discrete lines corresponding to different sets of MOs are drawn using different  
colors. This option is used to define different sets of MOs involved in the "MO-PDOS" plot. See  
Section 4.10.5 for example.  
-1 Define fragments for PDOS/OPDOS: You can define up to 10 fragments in this option.  
After you entered this option, the information of present fragments are shown on screen. You can  
input x to define fragment x, and input -x to unset fragment x, or input i,j to exchange the definition  
of fragment i and j. To leave this interface, input 0. The PDOS will be plotted for all of the fragments  
defined in this option. OPDOS will be drawn only when both fragments 1 and 2 have been defined.  
DOS graph will contain the line and curve of “PDOS frag 1” only when fragment 1 is defined.  
0
Draw TDOS graph!: After selecting this, TDOS map will be immediately shown on screen.  
If any fragment has been defined, the texts in this option will become “TDOS+PDOS”; if both  
fragments 1 and 2 have been defined, the texts will become “TDOS+PDOS+OPDOS”.  
1
Select broadening function: Select which broadening function will be used, you can select  
Lorentzian, Gaussian or Pseudo-Voigt function. Default is Gaussian.  
Set energy range: This option is used to set the lower limit, upper limit and step between  
labels of X-axis.  
2
3
4
Set full width at half maximum (FWHM): As the title says.  
Set scale ratio for DOS curve: If this option is set to k, then height of all curves will multiply  
116  
 
3
Functions  
k (in full energy range).  
Set Gaussian-weighting coefficient: This option sets wgauss, which is mentioned in last  
section. This option only appears when Pseudo-Voigt function is chosen.  
Choose orbital spin: This option appears only when the loaded file contains basis function  
5
6
information and the wavefunction is unrestricted. This option determines which set of orbitals (alpha,  
beta, or both alpha and beta) will be taken into account.  
7
Set the method for calculating PDOS: Mulliken (default), SCPA, Hirshfeld and Becke  
methods are supported for calculating orbital compositions used in plotting PDOS, via this option  
you can select one of them. Hirshfeld and Becke methods are more robust than Mulliken and SCPA  
methods, especially for unoccupied MOs, unfortunately they are more expensive, and in this case  
OPDOS cannot be plotted (i.e. the fragments can only be defined as a set of atoms). It is very  
important to note that when diffuse functions are presented, the PDOS maps plotted based on  
Mulliken or SCPA methods will be meaningless! If you diffuse functions cannot be ignored due to  
special reasons, Hirshfeld or Becke method have to be employed.  
8
Switch unit between a.u. and eV: You can switch the unit for X-axis of the DOS map via  
this option. eV is more commonly used.  
Toggle using line height to show orbital degeneracy: If you want to show degeneracy of  
9
orbitals in the DOS map, you can choose this option to enable this effect, then you will be asked to  
input threshold of energy difference for determining degeneracy. This feature can be used when  
plotting TDOS and MO-PDOS, but cannot be utilized when plotting PDOS.  
Once you choose option 0 in the DOS module, Multiwfn starts to calculate data and then DOS  
graph pops up. You can see there is a vertical dash line, which highlights position of HOMO level.  
Note that some people believe this is Fermi energy, which, however is an ill-defined concept for  
isolated systems, any energy that  EHOMO and < ELUMO may be regarded as "Fermi energy".  
After closing the graph, a post-processing menu appears on the screen, it contains many options,  
which are self-explanatory and can be used to adjust various plotting parameters. When the  
parameters have been changed, you can choose "1 Show graph again" to check the effect.  
Worthnotingly, there is an option named “Set scale factor of Y-axis for OPDOS”, if the value is set  
to k and the range of left-axis (for TDOS/PDOS) is set to e.g. [-3.5, 2.0], then the range of right-axis  
(for OPDOS) will become [-3.5*k, 2.0*k]. The reason why Multiwfn uses double axis is because  
the magnitude of OPDOS is generally much smaller than TDOS and PDOS. You can also choose to  
export the DOS map as graphical file in current folder, or export X-Y data set of DOS to plain text  
files so that you can reproduce the graph by third-part softwares, such as Origin. By choosing option  
0
you can return to last interface, the quality of DOS graph can be gradually improved by repeating  
the adjustments until you are satisfied.  
The absolute value of the DOS curves does not have evident practical meaning, only relative  
height of the curves at different energy regions is interesting. Hence, after you have properly set  
each plotting parameter, you can choose "13 Toggle showing labels and ticks on Y-axis" in the post-  
processing menu to switch its status to "No".  
Very detailed examples of plotting TDOS, PDOS and OPDOS are given in Section 4.10.1,  
while Section 4.10.3 illustrates how to plot DOS for open-shell systems via Multiwfn in combination  
with Origin software to get better effect.  
117  
3
Functions  
3
.12.4 Local DOS  
There is a special kind of DOS named local DOS (LDOS), which is also known as spatial DOS.  
LDOS curve for a given point r is evaluated as follows:  
2
LDOS(r,E) =  (r) f (E  )  
i
i
i
It is worth to note that in some first-principle books and literatures, the word "Local DOS" in fact refers to the  
PDOS introduced in Section 3.12.1, do not be confused!  
To plot LDOS map, choose option "10 Draw local DOS for a point" after you entered main  
function 10, you will be prompted to input the coordinate of the point r.  
One can also plot LDOS for a set of points placed evenly in a line as color-filled map, the X-  
axis correspond to energy, while the Y-axis corresponds to coordinate in the line relative to starting  
point. To plot this kind of LDOS map, choose "11 Draw local DOS along a line", you will be  
prompted to input the coordinate of starting point and end point defining the line, as well as the  
number of points consisting of the line.  
In the DOS module, the options controlling FWHM, energy unit, energy range and scale ratio  
affect the resulting LDOS graphs.  
Note that fragment definition does not affect the result of LDOS, i.e. the LDOS always  
corresponds to total DOS. However, if you want to separate angular moment contribution to LDOS,  
you can use subfunction 25 of main function 6 to set coefficient of unwanted GTF in all MOs to  
zero, then they will not contribute to LDOS.  
An example of plotting LDOS can be found in Section 4.10.2.  
3
.12.4 Photoelectron spectrum  
The plotting of photoelectron spectrum (PES) spectrum based on (generalized) Koopmans'  
theorem) is closely related to plotting TDOS. Since PES is a kind of spectrum under frequent studies,  
a special interface in the DOS module is provided for easily generating theoretically simulated PES  
spectrum.  
Theory  
The position of the peaks in the PES spectrum reflects the energy difference between various  
N-1 states and the original N-electron state. If a system is neutral, the system is usually in vibrational  
ground state of neutral electonic state. After ionization of an electrons, the system can be in different  
vibrational states of the cationic state. Therefore, the PES has a fine structure, which reflects the  
vibration coupling effect. However, in order to simplify the problem, we often ignore the quantum  
effect of nuclear motion, and the ionization is assumed to be a vertical process starting from  
minimum point of potential energy surface of initial state. At this time, the peak positions in the PES  
are equivalent to the vertical ionization energy (VIP) of the electrons of different shells of present  
system. Clearly, as long as we optimize the system and then calculate the VIPs, we can simulate the  
PES.  
The 1st VIP corresponds to the energy needed for ionizing out the electron of outermost shell,  
118  
 
 
3
Functions  
it is usually calculated as E(N-1) - E(N) for a system containing N electrons at minimum point  
geometry of potential energy surface of the N-electron state; the E signifies electronic energy. The  
VIP corresponding to inner electrons can also be theoretically calculated, but special methods are  
needed, such as OVGF, IP-EOM-CC, ADC and so on.  
The easiest way to plot PES is based on the Koopmans' theorem, which stated that the  
ionization energy of an electron is equal to the negative value of orbital energy of corresponding  
shell. Note that this is only an approximate relationship, it fully ignores the electron correlation and  
orbital relaxation effect. Under the Koopmans' theorem, the simulated PES simply corresponds to  
the TDOS curve broadened by all occupied MOs, however before the broadening the sign of orbital  
energies should be reversed (corresponding to "electronic binding energy").  
Because of the fact that Koopmans' theorem does not work well for most popular DFT  
functionals (except for some special ones, such as QTP17), the negative values of MO energies  
deviate from actual VIP evidently, leading to poor PES compared to the experimental one.  
Fortunately, there is a so-called generalized Koopmans' theorem, if it is applied to theoretical  
simulation of PES, it essentially corresponds to adding a shift value to all electronic binding energies  
before PES plotting, the shift value is defined as 1st VIP + E(HOMO). After taking the shift into  
account, the first peak of simulated PES will exactly correspond to the 1st VIP, which does not  
deviate from the first peak of experimental PES evidently as long as the DFT functionals and basis  
set are properly chosen, the geometry has been substantially optimized, and the electronic state to  
be computed corresponds to actual ground state.  
Usage  
The PES plotting interface is embedded in the DOS module as option 12, it allows user to  
extremely easily plot PES spectrum based on (generalized) Koopmans' theorem. Any kind of input  
files that used for plotting DOS can also be employed for PES plotting purpose.  
If you want to plot the PES based on Koopmans' theorem, simply select option 1 after entering  
the PES plotting interface. If you want to adapt generalized Koopmans' theorem, you should choose  
option 3 to set a shift value before plotting.  
There are many parameters and options in the PES plotting interface similar to those in the  
DOS plotting interface, such as range and step of X and Y axes, FWHM, if showing discrete lines  
and so on, however most parameters are not shared by the two interfaces. Note that only eV unit  
and Gaussian broadening function can be employed for PES plotting. If present wavefunction is an  
unrestricted open-shell one, the type of orbital spin is not distinguished.  
If you want to adjust relative height between the PES curve and the discrete lines corresponding  
to various binding energy levels, you can use "11 Set scale ratio for PES curve" to set a scale ratio.  
The smaller the ratio, the lower the curve.  
If nothing is shown after choosing option 1 to plot the PES spectrum, you should:  
Select option "-2 Show all binding energy level information" and then check if values of  
binding energies are correct.  
Check if range of X-axis has been properly set. To plot PES, there must be at least one  
binding energy occurs within the current range of X-axis.  
By default, all orbitals have identical strength (1.0) and FWHM (0.2 eV), the latter can be  
directly set in the PES interface via option 6. If you want to adjust strength and FWHM for individual  
orbitals, you can select "-3 Export occupied MO energies, strengths and FWHMs to plain text file",  
then a file PESinfo.txt in a format as described in Section 3.12.2 will be exported to current folder.  
119  
3
Functions  
You can then manually adjust strengths and FWHMs of certain orbitals in this file, and then use this  
file as input file to plot PES, so that the simulated PES could be more close to the experimental one.  
The absolute value of the PES curve does not have practical meaning. Hence, after you have  
properly set range of Y-axis, you can choose "13 Toggle showing labels and ticks on Y-axis" to  
switch its status to "No".  
An example of plotting PES is given in Section 4.10.4.  
Information needed: For PDOS, OPDOS and local DOS, see Section 3.12.2. For TDOS and  
PES spectrum, use .mwfn/.fch/.molden/.gms file, or Gaussian output file with pop=full, or plain text  
file in a format as described in Section 3.12.2.  
3
.13 Plotting IR, Raman, UV-Vis, ECD, VCD, ROA and  
NMR spectra (11)  
Although spectrum plotting is beyond the scope of wavefunction analysis, due to this function  
is very useful for theoretical spectrum research, the spectrum plotting function is also included in  
Multiwfn. Multiwfn is able to plot IR (Infrared), normal Raman / Pre-resonance Raman, UV-Vis  
(ultraviolet-visible), ECD (electronic circular dichroism), VCD (vibrational circular dichroism) and  
Raman optical activity (ROA) spectra, see Sections 3.13.1~3.13.4. Many examples of plotting  
various kinds of spectra are given in Section 4.11.  
Multiwfn is also able to plot NMR spectrum, see Section 3.13.5 for introduction and Section  
4
.11.10 for examples.  
3
.13.1 Theory  
For comparing theoretical results with experimental spectrum, the discrete lines corresponding  
to each transition mode have to be broadened to emulate the situation in real world, the commonly  
used broadening function for vibrational spectra (IR, Raman, VCD and ROA) is Lorentzian function,  
while for electronic spectra (UV-Vis and ECD), Gaussian function is often used, see Section 3.12.1  
for details. Unlike DOS graph, in which the strengths for each energy level are always simply set to  
1
.0 (namely broadened curves from each energy level are normalized to 1.0), the strengths of  
transitions are very important data for plotting spectrum.  
The unit of transition energy of IR, Raman, VCD and ROA spectra is cm in common, for UV-  
-1  
-1  
-1  
Vis and ECD spectra all of eV (1 eV=8.06551000 cm ), nm and 1000 cm are common units. The  
strength data of each transition mode outputted by quantum chemistry programs is proportional to  
the area under the broadened curve. Below we discuss some details of the six types of spectra  
supported by Multiwfn respectively.  
-1  
IR: The frequently used unit of molar absorptivity , namely L(molcm) , can be rewritten as  
3
2
L
1000cm  
1000cm  
mol  
=
=
mol cm mol cm  
1
20  
 
 
3
Functions  
Since IR intensity  = ( )d , where  is transition frequency, the unit of  should be  
2
1
000 cm  
1000 cm 0.01km  
1  
(
cm ) =  
=
mol  
mol  
mol  
However km/mol is the more commonly used unit for IR intensity, therefore if IR intensity of a  
vibrational mode is p km/mol, then the broadened curve from which should be normalized to 100*p  
2
2
(
in the other words, the area under the curve is 100*p). Sometimes the unit esu cm is used for IR  
2
2
intensity, the relationship with km/mol is 1 esu cm = 2.5066 km/mol.  
Below is an example of IR spectrum plotted by Multiwfn. Notice that the left axis corresponds  
to the curve (artificially broadened data), the right axis corresponds to the discrete lines (original  
transition data).  
7
6
5
5
4
3
2
2
1
480.21  
707.25  
934.30  
161.34  
388.39  
615.43  
842.48  
069.52  
296.57  
473.59  
424.65  
375.72  
326.78  
277.84  
228.90  
179.96  
131.03  
82.09  
5
23.61  
33.15  
-
249.34  
-15.79  
0
.00  
401.37 802.74 1204.12 1605.49 2006.86 2408.23 2809.60 3210.98 3612.35 4013.72  
Frequencies (cm**-1)  
Raman (normal or pre-resonance): Raman spectrum measures intensity of scattered light.  
Beware that for a specific vibration mode i, its Raman activity Si and Raman intensity Ii are two  
different quantities. Raman activity is a intrinsic property of each molecular vibrational mode, while  
Raman intensity is directly related to experimental Raman spectrum, and its value is dependent of  
the choice of wavenumber of incident light 0 as well as temperature. The conversion relationship  
can be found in some literatures, e.g. J. Mol. Struct., 702, 9 (2004):  
4
C(  v ) S  
 hc   
0
i
i
i
I =  
B = 1 exp−  
i
i
Bi  
kT  
i
where C is a suitably chosen common normalization factor for all peak intensities, i is vibrational  
frequency. Only the Raman spectrum broadened based on Raman intensities is strictly comparable  
to the experimental one; however, as the peak position of Raman activity and intensity are identical,  
and for a specific vibrational mode its intensity is proportional to its activity, the Raman spectrum  
broadened from Raman activities is also useful in some sense.  
Almost all quantum chemistry codes only output Raman activities, therefore by default,  
1
21  
3
Functions  
Multiwfn emulates the Raman spectrum in terms of broadening Raman activities. However you can  
also let Multiwfn to first convert the activities to intensities via option 19 (v0 and T are provided by  
users) based on above formula, then the Raman spectrum will be obtained by broadening Raman  
intensities. The normalization coefficient C is fixed to 10-12 in Multiwfn (which is unimportant since  
what we are interested in is the shape rather than the absolute height of Raman spectrum). The  
integral of the peak broadened by one unit of Raman activity or intensity is equal to 1.  
UV-Vis: In theoretical chemistry field, oscillator strength is always used for representing  
transition strength in UV-Vis spectrum, however this is a dimensionless quantity and the precise  
relationship with molar absorptivity have not been built. However, there is a well-known relation  
-1  
between theoretical data and experimental spectra: If the unit 1000 cm and L/mol/cm are used for  
X-axis and Y-axis respectively, then the area under the curve that broadened from per unit oscillator  
6
strength should be 1/4.32*10 . Equivalently, if eV is used as X-axis unit, the value should be  
6
1
/4.32/8.0655*10 =28700. By this relation, UV-Vis spectrum can be simulated by theoretical data.  
Fluorescence (or phosphorescence, as long as you can obtain oscillator strength by means of  
spin-orbit coupling calculation) spectrum can also be plotted with exactly the same manner as UV-  
Vis, the only difference is that according to Kasha's rule, you should only take the first singlet excited  
state into account.  
ECDThe significance of rotatory strengths in ECD spectrum is analogous to oscillator  
strengths in UV-Vis spectrum, each electron transition mode corresponds to a rotatory strength. If  
the rotatory strengths are broadened, after somewhat scaling and shifting, the resultant curve will be  
comparable to experimental ECD spectrum. The integral of the peak broadened by one unit of  
rotatory strength is equal to 1. In quantum chemistry programs, such as Gaussian, rotatory strengths  
can be calculated in length representation or in velocity representation, in the former case the  
strengths are origin-dependent, while in the latter case the strengths are origin-independent. For  
complete basis set situation, the results in the two representations converge to the same values.  
Commonly velocity representation is recommended to be used.  
VCD: VCD is akin to ECD, each vibrational mode has a rotatory strength. The integral area  
under the curve ∆휀 = 휀 ꢄ 휀R corresponding to a vibrational mode is proportional to its rotatory  
L
strength. Therefore after broadening rotatory strengths, the curve shape will be comparable to  
experimental VCD spectrum.  
ROA: The ROA spectum measures the difference between scattering intensity of right and left  
circularly polarized light  
4
(
  v ) A  
 hc   
R
i
L
i
0
i
i
i
ROA intensity  I  I   
B =1 exp−  
i
iBi  
kT   
The ROA strength data outputted by Gaussian ROA task in fact is the Ai term, which should be  
converted to actual ROA intensity according to above equation. The Ai term is dependent of  
frequency of incident light. The integral of the peak broadened by one unit of ROAintensity/strength  
is equal to 1. There are several different forms of ROA, including ROA SCP(180), ROA SCP(90),  
ROA DCP(180). The 90 and 180 denote the angle between incident light and scattered light. The  
SCP (scattered circular polarization) means the incident light is linearly polarized light while the  
scattered light is circularly polarized light; DCP (dual circular polarization) corresponds to the case  
that both incident and scattered lights are circularly polarized light. The ROA SCP(180) is  
commonly employed, and it is also known as SCP backscattered ROA.  
1
22  
3
Functions  
The ROA task of Gaussian also simultaneously outputs frequency-dependent Raman strength,  
which corresponds to the Ri term of below equation  
4
(
  v ) R  
 hc   
R
i
L
i
0
i
i
i
Raman intensity  I + I   
B =1 exp−  
i
iBi  
kT   
correspondingly, there are also Raman SCP(180), Raman SCP(90) and Raman DCP(180) data.  
Since the current used incident light should be far from electron excitation energy, such Raman  
spectrum is called as far from resonance Raman.  
3
.13.2 Input file  
Only the input files mentioned in this section are supported by Multiwfn for plotting spectrum  
purpose. DO NOT use such as .fch, .molden and .wfn as input file, evidently the data needed for  
plotting spectrum are not recorded in these files.  
1
Gaussian output file  
IR spectrum: Use output file of freq task as input. If you use Gaussian 09 D.01 or later  
revisions and meantime freq=anharm keyword was specified to carry out anharmonic analysis,  
Multiwfn will prompt you to choose if loading anharmonic frequencies and IR intensities instead of  
the harmonic ones.  
Raman spectrum: Use output file of freq=raman task as input. If you would like to plot pre-  
resonance Raman spectrum, you should at the same time use CPHF=rdfreq keyword and write the  
frequencies of the incident lights after a blank line under the geometry specification, e.g. 300nm  
4
00nm 500nm. If you hope to plot anharmonic Raman spectrum, use freq(raman,anharm) keywords,  
then Multiwfn will prompt you to choose if loading anharmonic frequencies and Raman activities  
instead of the harmonic ones.  
VCD spectrum: Use output file of freq=VCD task as input. If you hope to plot anharmonic  
Raman spectrum (supported by Gaussian since G16), use freq(VCD,anharm) keywords, then  
Multiwfn will prompt you to choose if loading anharmonic frequencies and rotatory strengths  
instead of the harmonic ones.  
For anharmonic IR, Raman and VCD spectra, you can choose if only loading anharmonic  
fundamental data, or simultaneously loading anharmonic overtone band or combination band data.  
UV-Vis or ECD spectrum: Use output file of TDDFT, TDHF, CIS, ZINDO or EOM-CCSD  
task as input, no any additional keywords are required. The rotatory strengths in both length and  
velocity representation (the data under "R(length)" and "R(velocity)", respectively) can be chosen  
to be loaded by Multiwfn. Output file of optimization task for excited state can also be used, only  
the last output for transition information will be loaded by Multiwfn, therefore the resulting  
spectrum corresponds to final geometry.  
ROA spectrum: Use output file of freq=ROA task as input. The frequencies of incident lights  
should be specified after a blank line under the geometry specification, e.g. 0.02, 0.03, 0.04, 0.05,  
the unit is default to a.u.; or write e.g. 500nm 520nm 550nm.  
2
!
ORCA output file  
IR spectrum: Use freq keyword.  
Raman spectrum: Use keywords like below  
b3lyp def2-SVP numfreq  
1
23  
 
3
Functions  
%
elprop Polar 1 end  
UV-Vis and ECD spectrum: Use keywords like below (CIS, TDHF and ZINDO calculations  
are also supported)  
b3lyp def2-SVP  
tddft  
!
%
nroots 20  
TDA false  
end  
Notice that for TDDFT calculation, ORCA by default uses Tamm-Dancoff Approximation  
TDA), in this case the oscillator strength and rotatory strengths are evidently not as good as that  
(
produced by TDDFT, therefore in above example TDA false is used to make ORCA use standard  
TDDFT formalism. Also it is worth noting that ORCA employs length representation for rotatory  
strengths in ECD.  
Output file of sTDA or sTD-DFT task of ORCA (see below for details) is also supported by  
Multiwfn for plotting UV-Vis or ECD spectrum purpose. Below is example keywords:  
!
PBE0 def2-SVP def2/J RIJCOSX  
%maxcore 6000  
%pal nprocs 36 end  
%tddft  
Mode sTDDFT  
Ethresh 10.0  
maxcore 6000  
end  
Since ORCA 4.1 spin-orbit coupling (SOC) effect can be taken into account during TDDFT  
calculation, and all data needed for plotting SOC corrected UV-Vis and ECD spectra are  
automatically outputted. Therefore, when output file of SOC-TDDFT task is loaded into Multiwfn,  
when you enter UV-Vis and ECD plotting option, you can select if loading SOC corrected data  
instead of the one without SOC consideration. It is very easy to conduct SOC-TDDFT, simply  
adding dosoc true in %tddft section, for example:  
%tddft nroots=40 TDA false dosoc true end  
VCD and ROA spectra: Currently not supported by ORCA.  
3
Grimme's sTDA output file  
The sTDA proposed by Grimme in J. Chem. Phys., 138, 244104 (2013) is a method  
approximately solve the TDDFT equation and thus reduces the computational cost of the electron  
excitation part of TDDFT calculation by about two or three orders of magnitude. The correpsonding  
Although the Grimme's sTDA code has already been implanted into ORCA program, the  
tda.dat file outputted by standalone sTDAcode can also be used as input file of Multiwfn for plotting  
UV-Vis or ECD purpose.  
When ECD is to be plotted, you can choose which representation of rotatory strength will be  
used. The length and velocity representations have been mentioned above, while the mixed-form of  
representation, which is recommended in the sTDA original paper, is defined as RM= RV  fL / fV,  
where fL and fV are length and velocity representations of oscillator, respectively, and RV is the  
1
24  
3
Functions  
velocity representation of rotatory strength.  
Grimme's xtb output file  
4
The xtb program written by Grimme is mainly used to carry out GFN-xTB calculation (J. Chem.  
Theory Comput., 13, 1989 (2017) and J. Chem. Theory Comput., 15, 1652 (2019)), which may be  
viewed as a semiempirical variant of DFT method. It is not only robust but also rather fast, it can be  
conveniently applied to systems consisted of hundreds of atoms. Note that although the accuracy of  
xtb frequency has been verified to be basically reasonable, the quality of IR intensities outputted by  
By using following command, xtb will optimize the structure in test.xyz and then perform  
frequency analysis: xtb test.xyz -ohess |tee test.out. Then the output file test.out will contain  
harmonic frequencies and IR intensities, it can be used as input file of Multiwfn for plotting IR  
spectrum purpose.  
Note that xtb outputs 3N modes, where N is the number of atoms. When plotting spectrum,  
Multiwfn will ask you how many lowest modes will be removed to discard the overall movement  
modes, you should input 5 and 6 for linear and non-linear system, respectively.  
5
Plain text file  
For generality, Multiwfn supports plain text file as input, you can extract transition data from  
output files of quantum chemistry packages other than Gaussian/ORCA/sTDA, and then fill them  
into a file according to the format shown below  
numdata inptype  
energy strength [FWHM]  
energy strength [FWHM]  
energy strength [FWHM]  
For transition 1  
For transition 2  
For transition 3  
.
..  
energy strength [FWHM]  
For transition numdata  
where numdata denotes how many entries in this file. If inptype is set to 1, then only energy and  
strength will be read, and FWHMs for all transitions will be automatically set. If inptype is set to 2,  
then FWHMs will be read too. The transitions should be sorted according to the energies from low  
-
1
to high. The unit of both energy and FWHM should be in cm for IR, Raman, VCD and ROAspectra,  
4
-40  
in eV for UV-Vis and ECD spectra. The unit of strength should be in km/mol, Å /amu, cgs (10  
erg-esu-cm/Gauss), 10-44 esu cm , 10 K for IR, Raman, ECD, VCD, ROA spectra, respectively  
2
2
4
(oscillator strength of UV-Vis is dimensionless).  
An example of the plain text file is shown below (for IR)  
6
2
8
1.32920  
0.72170  
3.58980  
21.06430  
41.33960  
91.47940  
2.94480  
8.0  
8.0  
8.0  
8.0  
8.0  
8.0  
4
17.97970  
44.67320  
83.12940  
78.66900  
67.37410  
5
5
6
8
1
25  
3
Functions  
3
.13.3 Usage and options  
After boot up Multiwfn, first input path of Gaussian/ORCA/sTDA/xtb output file or the plain  
text file containing transition data, then enter main function 11, and you will be asked to select the  
type of spectrum (for pre-resonance Raman and ROA, you also need to choose the frequency of  
interest), after that you will see below options. The meaning of some options may be different for  
various types of spectra.  
Note that in this interface you can input s anytime to save current plotting settings to a file, or  
input l to load plotting settings from a file, so that you can quickly recover plotting status.  
-
4 Set format of saving graphical file: This is used to choose the format of the graphical file  
exported by option 1. Commonly, using vector format such as ps, pdf and svg is recommended.  
2 Export transition data to plain text file: Output energies, intensities and FWHMs of all  
-
transitions to transinfo.txt in current directory, this file fully complies with the format introduced in  
last section, so it can be directly used as input file.  
-
1 Show transition data: Print energy and intensity data of all transitions on screen.  
Plot spectrum: Plot spectrum right now! The spectrum will be shown on screen, and  
meantime the minima and maxima of the spectrum curve will be shown in console window.  
0
1
2
Save graphical file of the spectrum in current folder: As the title says.  
Export X-Y data set of lines and curves to plain text file: Export X-Y data set of lines and  
broadened spectrum to spectrum_line.txt and spectrum_curve.txt in current directory, respectively,  
you can replot the curve and discrete line graph directly by the two files via external program, such  
as Origin.  
3
Set lower and upper limit of X-axis: As the title says. The stepsize between ticks also needs  
to be inputted. By default the range of X-axis is adjusted automatically according to minimum and  
maximum transition energies.  
4
Set left Y-axis: Set starting value, ending value and step size for left Y-axis. By default the  
range of Y-axis is adjusted automatically according to the maximum peak.  
Set right Y-axis: Like option 4, but for right Y-axis.  
5
In many cases, after you adjusting setting for Y-axis at one side, the position of zero point of  
this Y-axis deviates from that of Y-axis at another side, which makes the graph weird; To address  
this problem, options 4 and 5 enable you to choose if correspondingly adjusting range of Y-axis at  
another side. If you input y, then lower/upper limit and stepsize of Y-axis at another side will be  
proportionally scaled to make zero point of left and right Y-axes are in the same horizontal line.  
6
Select broadening function: Gaussian, Lorentzian and Pseudo-Voigt function can be  
selected for broadening discrete lines as curves.  
Set scale ratio for curve: If the value is set to k, then the height of curve will multiply k in  
7
full range. For Raman, ECD, VCD and ROA spectra the default value is 1.0, for IR the value is 100,  
for UV-Vis spectrum an empirical value 28700.0 is used when energy unit is eV or nm, when unit  
-1  
-6  
is 1000 cm the value 1/(4.32*10 ) is used.  
8
9
Input full width at half maximum (FWHM): As the title says.  
Toggle showing discrete lines: Choose if show the discrete lines corresponding to transitions  
on the spectrum graph.  
1
0 Switch the unit of infrared intensity / Set the unit of excitation energy: For IR spectrum,  
2
2
switch the unit of IR intensities between km/mol (default) and esu *cm . For UV-Vis and ECD  
1
26  
 
3
Functions  
-1  
spectra, choose the unit of energies between eV, nm and 1000 cm .  
1 Set Gaussian-weighting coefficient: Sets wgauss, which is mentioned in Section 3.12.1, this  
option only appears when Pseudo-Voigt function is chosen.  
2 Set shift value in X: If the value is set to k, then the final curve and discrete lines will be  
shifted by k in X direction.  
1
1
1
1
3 Set colors of curve and discrete lines: As the title says.  
4 Set scale factor for transition energies (or vibrational frequenices): The selected  
transition energies (or vibrational frequencies) will be scaled by a given factor when drawing  
spectrum. This is option is mainly used to apply frequency scaling factor onto the theoretically  
calculated harmonic frequencies.  
1
5 Output contribution of individual transitions to the spectrum: If select this option, user  
will be prompted to input a criterion (e.g. k), then not only the total spectrum (as option 2), but also  
the contributions from the individual transitions whose absolute value of strength larger than k will  
be outputted to spectrum_curve.txt in current folder. This feature is particularly useful for identifying  
the nature of total spectrum.  
1
6 Set status of showing labels of spectrum minima and maxima: You will enter an interface,  
in which there are many options used to set how to show spectrum minima and maxima on the  
plotted map, they are self-explanatory.  
1
7 Other plotting settings: Contains various trivial plotting settings, such as if showing  
dashed grid lines, if showing labels on axes, etc.  
1
1
8 Toggle weighting spectrum of each system: See explanation in next section.  
9 Convert Raman (or ROA) activities to intensities: As mentioned earlier, this option is  
used to convert Raman (or ROA) activities to intensities. After that, the Raman (or ROA) spectrum  
plotted by option 0 will be the one broadened based on Raman (or ROA) intensities rather than  
Raman (or ROA) activities. The wavenumber of incident light and temperature are inputted by users.  
2
0 Modify strengths: You can select some transitions and change their strengths (depending  
on spectrum type) to specific value. This option is very useful if you would like to plot fluorescence  
spectrum, in this case you need to set oscillator strength of all transitions except for the lowest  
singlet excitation to zero (Kasha's rule).  
2
1 Set status of showing weighted curve and curves of individual systems: As shown in the  
next section, Multiwfn is able to plot weighted spectrum according to given weights of multiple  
systems. This option controls if plotting weighted curves and curves of various systems.  
2
2
2 Set thickness of curves/lines/texts/axes: As the title says.  
3 Set status of showing spikes to indicate transition levels: Via this option, you can plot  
one or multiple sets of spikes at bottom of the spectrum to indicate position of different sets of  
transitions. If some transitions are degenerate, the height of spikes can be used to reflect degree of  
degenerate. See Section 4.11.9 for illustration of this option. This option is not available when  
multiple systems are considered in the plotting simultaneously.  
Note that the actual number of points constituting the spectrum is controlled by "num1Dpoints"  
parameter in settings.ini. The default value is commonly large enough and thus need not to be  
adjusted.  
1
27  
3
Functions  
3
.13.4 Plotting multiple systems together and weighted spectrum  
In Multiwfn, it is possible to simultaneously plot spectrum for multiple files, and meantime  
taking weights into account. This feature is quite useful for obtaining actual spectrum of flexible  
molecule with many thermally accessible conformations.  
For example, there is a molecule containing four accessible conformations, their distribution  
ratio have been determined according to Boltzmann's method based on calculated free energies. If  
you want to plot its weighted spectrum and spectrum of each conformation, you should write a plain  
text file named multiple.txt (other file name cannot be recognized by Multiwfn), the content is:  
boltz\Excit\a.out 0.6046  
boltz\Excit\b.out 0.1950  
boltz\Excit\c.out 0.1686  
boltz\Excit\d.out 0.0317  
where the first and second column correspond to path of input file and weight of each conformation.  
Different type of input file can be presented together in this file. If you use this file as input file,  
after you entered spectrum plotting module, Multiwfn will load data from these files in turn. When  
plotting spectrum, spectrum of all the four conformations will be separately calculated and drawn  
with different colors. In addition, the weighted spectrum is plotted on the graph as thick red curve,  
it is simply evaluated as follows:  
weighted spectrum = 0.6046a + 0.1950b + 0.1686c + 0.0317d  
In the graph you can also observe many black discrete lines, these are collection of discrete lines  
corresponding to different conformations. Notice that their heights have already been multiplied by  
corresponding weights.  
If before plotting spectrum you have chosen option 18 once, then the spectrum of various  
conformations shown on graph are the weighted ones; in other words, these curves represent  
contribution of each conformation to actual spectrum (thick red curve). In this case, the color of  
weighted discrete lines are no longer all black but in accordance with color of curves, so that user  
can easily recognize correspondence between curve and discrete among different systems.  
If you simply want to simultaneously plot spectrum for multiple systems but do not want to  
draw weighted spectrum, then the second column of multiple.txt should not be weights, but  
customized legends, for example  
boltz\Excit\a.out Molecular A  
boltz\Excit\b.out Molecular B  
boltz\Excit\c.out Molecular C  
boltz\Excit\d.out Molecular D  
Then plot spectrum as usual, curve of all the four systems will be shown together, and the legends  
will be "Molecular A", "Molecular B", etc.  
When the legend is completely composed of numbers, the legend will be regarded as weight. If the legend have  
to be a number, you should add $ in front of the legend to let Multiwfn know it is legend rather than weight. For  
example, $50 will be recognized as legend of “50”.  
If you are using Linux platform and some file paths in the multiple.txt contains / symbol or  
space, you should add double quotation marks at the two ends of the file path, so that the path could  
be properly loaded.  
1
28  
 
3
Functions  
3
.13.5 Plotting NMR spectrum  
Theory  
Many quantum chemistry programs are able to compute magnetic shielding tensors at nuclei,  
usually only the average of its diagonal terms, namely isotropic magnetic shielding value iso, is of  
interest, because NMR spectrum is commonly determined in solvent environment and the solute is  
able to freely rotate.  
The chemical shift is calculated as follows  
ref  
1
  
ref  
=
  
ref  
  
where ref is shielding value of reference substance (tetramethylsilane for C and H NMR), while  
the  is shielding value of the sample to be determined. The two values should be evaluated at  
exactly the same calculation setting (theoretical method, basis set, solvation model...).  
Another way of determining chemical shift is scaling method, see http://cheshirenmr.info for  
detail. Briefly speaking, this method evaluate in a very simple way:  
13  
1
= a+b  
where the a and b are prefitted slope and intercept parameters based on a training set for specific  
calculation level. For example, if the optimization is conducted under vaccum using B3LYP/6-31G*  
while shielding value is calculated using B3LYP/6-31G* under chloroform environment represented  
1
by SMD solvation model, then a = -1.0157 and b = 32.2109 for H NMR, while a = -0.9449 and b  
1
3
=
188.4418 for C NMR.  
If there are methyl groups in the system, the of its three hydrogens should be averaged before  
generating NMR spectrum, since methyl groups can freely rotate in actual environment due to its  
extremely low rotation barrier. In addition, if there are multiple thermally accessible conformers and  
they can interconvert with each other easily, the weighted average shielding value should be  
calculated for each atom based on weights of the conformers:  
A
A
=
pi  
i
i
where i is conformer index and A is atom index. pi stands for weight of conformer i, which can be  
calculated according to Boltzmann distribution based on relative free energies between the  
conformers.  
With  of all atoms in hand, one can plot discrete line map of NMR, the X-axis of the spikes  
in the map corresponds to while Y-axis corresponds to degeneracy, which is N if maximal spacing  
between N chemical shifts is less than specific threshold (e.g. 0.05 ppm), for other cases the  
degeneracy is 1.0.  
Actual NMR spectrum with finite peak width can be generated by broadening the spikes by  
Lorentzian function, the full width at half maximum (FWHM) is a key parameter of controlling peak  
shape. In this curve map, the peak height corresponds to strength of NMR signal.  
Input file  
Output file of NMR task of Gaussian and ORCA programs are directly supported as input file  
for plotting NMR spectrum.  
Example of NMR task of Gaussian  
#
B972/def2tzvp scrf=solvent=chloroform NMR  
1
29  
 
3
Functions  
Title Card Required  
0
1
N
-0.14557000  
-1.18363600  
1.69364200  
1.59873700  
0.17479300  
0.51496300  
H
[
...ignored]  
Example of NMR task of ORCA  
!
B3LYP/G 6-31G* NMR cpcm(chloroform) RIJK autoaux  
*
xyz 0 1  
C
0.  
0.  
1.14218 0.72212  
1.19872 -0.67302  
C
[
...ignored]  
Plain text file recording atom names and shielding values can also be used as input file for  
plotting NMR spectrum, see examples\spectra\NMR\general.txt for example. Thus in principle  
Multiwfn can plot NMR for any program that can yield shielding values.  
Usage  
After loading input file, entering main function 11 and selecting NMR, you will see the NMR  
plotting interface. Then if you select option 0, NMR spectrum will be displayed, and raw data will  
be shown on console window. Since most options in this interface are self-explanatory, only a few  
noteworthy options are mentioned below.  
-2 Export NMR data to a plain text file: This option exports shielding values to  
NMRdata.txt in current folder. If you have used option 7 to convert shielding values to chemical  
shifts, then both of them will be exported.  
6 Choose the element considered in plotting: Via this option you can choose the element  
1
to be considered. For example, if you want to plot H NMR spectrum or examine relevant data, you  
should select this option and input H.  
7 Set how to determine chemical shifts: By default, the X-axis in the plotted NMR spectrum  
corresponds to magnetic shielding value, while if want to make chemical shift  as X-axis, you  
should select this option prior to plotting. In this option you can select the way of determine :  
(
1) Taking difference between shielding value of current system and reference system. You can  
manually input reference value or directly use built-in data.  
2) Using scaling method to determine the . you can manually input the fitted slope and  
(
intercept, or directly use built-in data.  
There are several sets of built-in data, they correspond to the levels very suitable for calculating  
.  
10 Average shielding values of specific atoms: For example, usually the of the hydrogens  
in the same methyl group should be averaged, you can use this function to realize this purpose.  
11 Set strength of specific atoms: By default, every atom has strength of 1.0, namely  
contributes to degeneracy by 1.0. You can use this option to modify strength of specific atoms. For  
example, if you set strength of atoms 3, 6, 7 to 0, then these atoms will disappear in the plotted  
spectrum.  
16 Change setting of labelling atoms: In order to distinguish the atoms in the NMR spectrum,  
Multiwfn labels atomic indices on the plotted peaks. You can use this option to control details of  
1
30  
3
Functions  
labelling, such as position, size, color, content of the labels and so on.  
Plotting conformation weighted spectrum and spectrum containing multiple systems  
Conformation weighted NMR spectrum can be plotted by using plain text file as input (the  
name must contain "multiple", for example, valine_multiple.txt is a valid name), each line contains  
path of an input file and corresponding conformation weight, for example:  
D:\valine\conf1.out 0.43  
D:\valine\conf2.out 0.25  
D:\valine\conf3.out 0.32  
If you simply want to plot NMR spectrum of multiple systems together, specifying file path  
and legend in each line, for example  
/
lovelive/nico.out Isomer 1  
/
lovelive/nozomi.out Isomer 2  
Then after entering NMR plotting interface, you can plot the spectrum via exactly the same  
steps as plotting single system. Note that all systems must have the same number of atoms.  
Special notes  
To save the NMR spectrum as graphical file, you can choose option 1. It is highly suggested to  
use pdf format, because it is a vectorial format, the spectrum can be losslessly zoomed in and out,  
and the lines and texts look very smooth. The format can be chosen by option -3, and the default  
format can be changed by "graphformat" in settings.ini.  
After adjusting various plotting settings, you can input s in the interface to save plotting settings  
to a specific text file, so that when you want to replot the NMR spectrum with exactly the same  
effect in the future, you can input l to directly restore plotting settings from the text file. Note that  
any operation on plotted data must be manually redone everytime (e.g. averaging shielding values,  
converting shielding values to chemical shifts, etc.).  
Some examples of plotting NMR spectrum are given in Section 4.11.10.  
3
.14 Topology analysis (2)  
3
.14.1 Theory  
The topology analysis module of Multiwfn is quite flexible, powerful and general, it can be  
applied to any real space function supported by Multiwfn as long as the the variation of the function  
is smooth and thus its gradient is contiguous. All commonly studied functions, such as electron  
density, its Laplacian, orbital wavefunction, spin density, ELF, LOL, ESP... can be analyzed by this  
function. The default real space function to be studied is electron density, it can be altered by option  
-11. Notice that once option -11 is chosen, all previous topology analysis results will be clean.  
The topology analysis technique proposed by Bader was firstly used for analyzing electron  
density in "atoms in molecules" (AIM) theory, which is also known as "the quantum theory of atoms  
in molecules" (QTAIM), this technique has also been extended to other real space functions, e.g. the  
first topology analysis research of ELF for small molecules is given by Silvi and Savin, see Nature,  
3
71, 683 (1994). In topology analysis language, the points at where gradient norm of function value  
1
31  
 
 
3
Functions  
is zero (except at infinity) are called as critical points (CPs), CPs can be classified into four types  
according to how many eigenvalues of Hessian matrix of real space function are negative.  
(3,-3): All three eigenvalues of Hessian matrix of function are negative, namely the local  
maximum. For electron density analysis and for heavy atoms, the position of (3,-3) are nearly  
identical to nuclear positions, hence (3,-3) is also called nuclear critical point (NCP). Generally the  
number of (3,-3) is equal to the number of atoms, only in rarely cases the former can be more than  
+
(
e.g. Li2) or less than (e.g. KrH ) the latter.  
(3,-1): Two eigenvalues of Hessian matrix of function are negative, namely the second-order  
saddle point. For electron density analysis, (3,-1) generally appears between attractive atom pairs  
and hence commonly called as bond critical point (BCP). The value of real space functions at BCP  
2
have great significance, for example the value of  and the sign of ∇ ꢀ at BCP are closely related  
to bonding strength and bonding type respectively for analogous bonds (The Quantum Theory of  
Atoms in Molecules-From Solid State to DNA and Drug Design, p11); I have demonstrated that the  
2
at BCP can be reliably used to predict hydrogen bond binding energies (J. Comput. Chem, 40,  
868 (2019)); local information entropy at BCP is a good indicator of aromaticity (Phys. Chem.  
Chem. Phys., 12, 4742 (2020)).  
3,+1): Only one eigenvalue of Hessian matrix of function is negative, namely first-order  
(
saddle point (like transition state in potential energy surface). For electron density analysis, (3,+1)  
generally appears in the center of ring system and displays steric effect, hence (3,+1) is often named  
as ring critical point (RCP).  
(3,+3): None of eigenvalues of Hessian matrix of function are negative, namely the local  
minimum. For electron density analysis, (3,+3) generally appears in the center of cage system (e.g.  
pyramid P4 molecule), hence is often referred to as cage critical point (CCP).  
The positions of CPs are searched by Newton method, one need to assign an initial guess point,  
then the Newton iteration always converge to the CP that is closest to the guess point. By assigning  
different guesses and doing iteration for each of them, all CPs could be found. Once searches of CPs  
are finished, one should use Poincaré-Hopf relationship to verify if all CPs may have been found,  
the relationship states that (for isolated system)  
n(3,-3)  n(3,-1) + n(3,+1)  n(3,+3) = 1  
If the relationship is unsatisfied, then some of CPs must be missing, you may need to try to  
search those CPs by different guesses. However even if the relationship is satisfied, it does not  
necessarily mean that all CPs have been found. Notice that the function spaces of ELF/LOL and  
Laplacian of are much more complex than , it is very difficult to locate all CPs for these functions,  
especially for middle and large system, so, you can stop trying for searching CPs once all CPs that  
you are interested in have been found.  
The maximal gradient path linking BCP and associated two local maxima of density is termed  
as “bond path”, which reveals atomic interaction path for all kinds of bonding. The collection of  
bond paths is known as molecular graph, which provides an unambiguous definition of molecular  
structure. Bond path can be straight line or curve, obviously for the latter case the length of bond  
path is longer than the sum of the distances between BCP and associated two (3,-3) CPs.  
Let us see an example. In the complex shown below, the imidazole plane is vertical to  
magnesium porphyrin plane, the nitrogen in imidazole coordinated to magnesium. Magenta, orange  
and yellow spheres correspond to (3,-3), (3,-1) and (3,+1) critical points, brown lines denote bond  
paths.  
1
32  
3
Functions  
The topology paths for other real space functions can be generated too in Multiwfn, they are  
very helpful to clarify intrinsic relationship between CPs.  
About degenerate CP  
Appearance of degenerate CPs in general system is very rare, so I mention it in the final of this  
section. The so-called degenerate CP is the CP have one or two zero eigenvalues of Hessian matrix.  
These CPs are very instable, slight perturbation of molecular geometry can break them into other  
type CPs. However, degenerate CPs are commonly occur in axisymmetric system. For example, in  
fluorine atom at groundstate, one of p orbital is singly occupied while other two are doubly occupied,  
topology analysis on LOL gives below picture:  
The two (3,-3) correspond to the two valves of the singly occupied p orbital, while the locally  
maximum of electron localization arise from the other two p orbitals are represented by a circle of  
CPs. Ostensibly, the CPs in the circle are either (3,-1) or (3,+1) type, but in fact they are the same  
type degenerate CP, in which one eigenvalue is zero. Simply because the reasons of numerical  
convergence of the eigenvalue, they are formally recorded as different CP types in Multiwfn.  
3
.14.2 Search critical points  
Searching modes  
In Multiwfn, several modes are provided to assign guessing points for searching CPs:  
1
33  
 
3
Functions  
(1) Search CPs from given starting points: If you already know approximate position of CPs  
or you are able to reasonably guess where CPs may appear, then this mode is very suitable for you,  
the Newton iteration will start from the provided coordinates. In this mode, you can directly input  
coordinate of a starting point, or input two atomic indices, then their midpoint will be taken as  
starting point. You can also provide a .pdb or .pqr file, the atom coordinates in it will be treated as  
starting points in turn. In addition, a .txt file containing all starting points can also be provided, the  
format should look like follows, each line cooresponds to X, Y, Z coordinate of a starting point in  
Bohr, the format is free  
1
0
-
.
.2 3.10 -0.4  
.477 5.2 5.92  
3.26 3.3 0.5  
..  
(2) Search CPs from nuclear positions: This mode uses all nuclear positions in turn as starting  
points, this mode is very suitable for searching all (3,-3) for , and those (3,-3) CPs in innermost  
region of atom for ELF/LOL and Laplacian of . For electron density analysis, if you located n CPs  
after using this mode while there are more than n atoms in your system, it generally implies that  
Newton method has missed some (3,-3) CPs.  
(3) Search CPs from midpoint of atom pairs: This mode uses midpoint of all atom pairs in  
turn as starting points. This mode is very suitable for searching all (3,-1) CPs for .  
(4) Search CPs from triangle center of three atoms: Like mode 3, but use triangle center of  
all combinations of three atoms in your system. Suitable for searching all (3,+1).  
(5) Search CPs from pyramid center of four atoms: Like mode 3, but use pyramid center of  
all combinations of four atoms in your system. For electron density analysis, if you have tried mode  
and mode 3 but still cannot find certain (3,+3), this mode is worth to try. This mode is more  
expensive than mode 3 since more combinations will be considered.  
(6) Search CPs from a batch of points within a sphere: You need to set sphere center, radius  
2
and the number of points first, then select option 0, the specified number (not the exact number you  
have set) of points will randomly distributed in the sphere as starting points for Newton method.  
The sphere center can be defined in very flexible way by option 2~6. If you choose option -1, then  
the search starts and each atom center will be taken as sphere center in turn, assume that there are n  
atoms and the number of points in sphere you set is m, then about n*m points will be used as initial  
guesses. If you choose option -2, then you will be prompted to input indices of atoms, the nuclei of  
these atoms will be used as sphere center in turn.  
This mode is very appropriate for searching the CPs that are difficult to be located by other  
modes. For ELF, LOL and Laplacian, it is highly recommended to use option -1 in this mode  
to try to locate all possible CPs. Note that each time you carry out the search the positions of  
starting points are different, if some interesting CPs were not found in previous searches, try to  
launch the search again and again to locate missing CPs.  
Beware that the index of the CPs located by searching mode 6 may be different in each time of  
execution!  
CP searching parameters  
The default searching parameters are appropriate for most systems, however in some cases you  
have to adjust parameters manually to ensure expected CPs could be found. These parameters can  
be set in the option "-1 Set CP searching parameters".  
1
34  
3
Functions  
(1) Set maximal iterations: If the number of Newton iteration exceeds this value before  
converged to a CP or before Hessian matrix became singular (that is the iteration cannot continue),  
then the Newton iteration will be terminated.  
(
2) Set scale factor of stepsize: The default value is 1.0, that is using original form of Newton  
method. Sometimes reduce the stepsize is benefit for locate CPs. For example the Uracil.wfn in  
example" folder, by using mode 2 with default parameter the BCP linking N6 and H12 cannot be  
found, if you reduce the stepsize to 0.5, then the problem will be solved.  
3)/(4) Set criteria for gradient norm / displacement convergence: If both gradient norm in  
"
(
current position and displacement in last step is smaller than the two values, then the iteration will  
stop and current position will be regarded as a critical point.  
Notice that for searching mode 2, which is usually employed for locating NCPs, the convergence criterion of  
gradient norm is temporarily removed, since electron density peak is quite sharp at nuclear position for very heavy  
atoms, the iteration can hardly converge if gradient norm criterion is taken into account.  
(5) Minimal distance between CPs: If an iteration converged to a CP, however the distance  
between this CP and any CP that has been found is smaller than this value, then the CP just found  
will not be considered as a new CP, and hence discarded.  
(6) Skip search if distance between atoms is longer than the sum of their vdW radius multiplied  
by: In CP searching mode 3, 4 and 5, if the distance of any two atoms that involved in the  
combination is longer than the sum of their vdW radii multiplied this value then current search will  
be skipped. The purpose of this option is to reduce the number of searches and hence computational  
cost of huge system. For example the imidazole--magnesium porphyrin complex mentioned earlier,  
there are 49*48/2=1176 atom pairs, hence if this cutoff strategy is not employed when you choose  
searching mode 2, Multiwfn will try as many as 1176 searches. While if this strategy is used, since  
only closely related atom pairs will be considered, only 274 searches are needed be performed, it  
can be found that their results are identical.  
(7) If print details of CP searching procedure: This option is present only in serial mode. User  
can select output level of details of CP searching procedure. This option is mainly used for  
debugging.  
(8) Criteria for determining if Hessian matrix is singular: If the absolute value of determinant  
of Hessian matrix is lower than this value, then the Hessian matrix will be regarded as singular and  
terminate search. Too large of this value may lead some CPs be ommitted, while too small of this  
value may cause numerical instability and occurence of CPs in the regions far from system. Default  
value is appropriate for most cases.  
(9) Set value range for reserving CPs: By making use of this option, during the CP searching,  
only the CP with value within user-defined range will be reserved, and thus unnecessary CPs could  
be ignored. By default all CPs are reserved. Via this option you can for example only search the CPs  
in weak interaction region (corresponding to low electron density).  
(10) Set the atoms to be considered in searching modes 2, 3, 4, 5: If you only want to search  
CPs in a local molecular region, you can use this option to define the fragment, then only the atoms  
in this fragment will be taken into account when using searching modes 2, 3, 4, 5.  
3
.14.3 Generate topology paths  
Path generating methods  
Once CPs have been found, you can choose to generate topology paths, which connect various  
CPs. In Multiwfn, the paths are essentially represented as a bunch of points evenly distributed in a  
1
35  
 
3
Functions  
curve. Using options 8 and 9, two kinds of paths can be generated:  
1) Generate the paths connecting (3,-3) and (3,-1) CPs: Arithmetically, firstly displacing the  
(
coordinate of each (3,-1) forward and backward respectively along the eigenvector that corresponds  
to the positive eigenvalue of Hessian, and then go uphill following the gradient vector until  
encounter a (3,-3), the resulting trajectories constitute the bond paths.  
(2) Generate the paths connecting (3,+1) and (3,+3) CPs: Like above, the difference is that the  
starting points are (3,+1), and their coordinates are firstly moved forward and backward along the  
eigenvector corresponding to the negative eigenvalue of Hessian, and then go downhill following  
the gradient vector.  
Path generating parameters  
In the option "-2 Set path generating parameters", there are some suboptions used to adjust  
parameters for generating paths.  
(1) Maximum number of points of a path: In the generation of each path, if the number of steps  
reached this value before encountering a CP, then the trajectory will be discarded. For generating  
very long paths, default value may need to be enlarged.  
(2) Stepsize: The space between neighbour points that constitutes the paths. For paths with  
large curvature, sometimes they cannot be generated under default stepsize, you need to properly  
decrease the stepsize and try to regenerate paths. If you set maximum number of points and stepsize  
of paths as m and n respectively, then the maximum length of paths will not longer than mn.  
(3) Stop generation if distance to any CP is smaller than: During the generation of paths, if the  
distance between current point and a located CP is found to be smaller than this value, then the path  
will be regarded as connected to the CP.  
3
.14.4 Generate interbasin surfaces  
The interbasin surfaces (IBS) generated by Multiwfn actually consist of a bunch of paths  
derived from (3,-1) CPs, these surfaces divide the whole space into respective region for each (3,-  
3
) CPs. By the function "10 Add or delete interbasin surfaces", you can generate, delete and check  
interbasin surfaces. Notice that before generating IBS, generation of CPs should be completed first,  
and at lease one (3,-1) must be found.  
If you want to generate the IBS from the (3,-1) CP with index of 15, then simply input 15 (you  
will find it is useful to visualize CPs by function 0 first to get the CP index). To delete this surface,  
input -15 (negative sign means "delete"). If there is no IBS presented and you hope to generate all  
IBSs, input 0. To delete all already generated IBS, also input 0. A list of generated IBS can be printed  
by inputting the letter l If you need to export the paths of a specific IBS (e.g. corresponding to the  
(3,-1) CP with index of 4) to external file, input o 4, then the coordinates of all paths derived from  
the CP4 will be saved to surpath.txt in current folder. Input letter q can return to upper level menu.  
Parameters for generating IBSs can be adjusted by the option "-3 Set interbasin surface  
generating parameters". Enlarging number of paths in each IBS or lowering stepsize will make IBSs  
looks more smooth. The length of paths in IBSs, or say the area of IBSs, is proportional to product  
of stepsize and number of points in each IBS path. Notice that once the parameters are changed, all  
generated IBSs will be lost.  
There are three ways to portray IBSs in Multiwfn, which can be controlled by "isurfstyle" in  
settings.ini. Way 1 represents the IBS directly by the paths derived from corresponding (3,-1) CP;  
1
36  
 
3
Functions  
By Way 2 IBSs are shown by solid surfaces, this is default style; Way 3 is uncommonly used, you  
can try it by yourself.  
3
.14.5 Visualize, analyze, modify and export results  
Visualize results (option 0)  
If you select the function “0 Print and visualize all generated CPs, paths and interbasin  
surfaces”, a GUI will pop up, you can control if showing each type of CPs, paths, interbasin surfaces,  
molecular structure, labels etc. Meanwhile, a summary of found CPs and paths are printed in the  
command-line window. The satisfaction of Poincaré-Hopf relationship is also checked.  
Evaluate CP properties (option 7)  
You can obtain values of all real space functions supported by Multiwfn (as well as gradient  
and Hessian matrix of the selected real space function) at a given CP or at all CPs by function “7  
Show real space function values at specific CP or all CPs”. Note that electrostatic potential is the  
most expensive one among all of the real space functions, if you are not interested in it, you can set  
"ishowptESP" parameter in settings.ini to 0 to skip calculation of electrostatic potential.  
In this function, you can also decompose a selected real space function at a given CP into  
contributions from a range of orbitals. See corresponding example in Section 4.2.4.  
Measure geometry (option -9)  
Distance, angle and dihedral angle between atoms and CPs can be conveniently measured by  
using the option "-9 Measure distances, angles and dihedral angles between CPs or atoms".  
Manipulate CPs (option -4)  
In the option “-4 Modify or export CPs”, you can print, add, delete and export CPs. In the  
suboption 2, the CPs can be deleted according to various condition, including: (1) CP type (2) CP  
index range (3) Distance to specific molecular fragment (thus you can remove CPs in irrelevant  
regions) (4) Range of electron density (using this feature you can solely delete CPs with low density  
and thus remove the CPs in weak interaction regions, or delete CPs with high density and thus  
remove those in the chemical bond regions).  
The positions and types of all found CPs can be saved to a formatted text file CPs.txt in current  
folder by suboption 4. The information of CPs can also be loaded from an external formatted text  
file by suboption 5 (the found CP at current session will be clean), notice that the file format must  
be identical to the one outputted by suboption 4.  
All CPs can be exported as .pdb file by suboption 6, so that CPs can be conveniently visualized  
1
37  
 
3
Functions  
by external visualization softwares such as VMD. In this file, element C/N/O/F correspond to (3,-  
3
)/(3,-1)/(3,+1)/(3,+3) respectively.  
Manipulate topology paths (option -5)  
In the option “-5 Modify or print detail or export paths, or plot property along a path”, you can  
print summary of generated paths and print coordinate of all points in a specific path via suboptions  
1
and 2, respectively.  
By suboption 4 you can export out the detail information of all paths to paths.txt in current  
folder. By suboption 5, the paths can be imported from an external file, the file format must be  
identical to the one outputted by suboption 4.  
By suboption 6, all points in all paths can be exported to a pdb file in current folder, so that  
paths can be conveniently visualized by external visualization softwares.  
By suboption 7, value of real space functions along selected topology paths can be plotted as  
curve map or exported as plain text file. You can also take the data correpsonding to "Dist." and  
"Value" column as X and Y axes respectively to plot curve graph by third-part plotting softwares.  
Paths can be manually deleted via suboption 3 by directly inputting their indices. Suboption 8  
is also used to delete paths, it is designed for only retaining bond paths (and corresponding BCPs)  
connecting two fragments but removing all other bond paths, so that one can more easily study  
interfragment interactions via AIM method. The usefulness of this option will be illustrated in the  
example in Section 4.2.6.  
3
.14.6 Calculate the aromaticity indices based on topology properties  
of electron density  
If the real space function you selected is electron density, options 20 and 21 will be visible,  
they are utilities used to analyze aromaticity.  
Shannon aromaticity index  
Option 20 is used to calculate Shannon aromaticity (SA) index, see Phys. Chem. Chem. Phys.,  
1
2, 4742 (2010) for detail. The formula can be briefly written as  
N
(rBCPi )  
SA = ln(N)  (p ln p ) p =  
N
i
i
i
i
(rBCPi  
)
i
In above formula, N is the total number of the BCPs in the ring you want to study aromaticity, rBCP  
is the position of BCP. In option 20, you need to input N and the index of these CPs in turn, then  
Shannon aromaticity index will be printed immediately. The smaller the SA index, the more  
aromatic is the molecule. The range of 0.003 < SA < 0.005 is chosen as the boundary of  
aromaticity/antiaromaticity in original paper.  
Curvature of electron density perpendicular to ring plane at RCP  
In Can. J. Chem., 75, 1174 (1997), the authors showed that electron density at RCP is closely  
related to aromaticity of corresponding ring. The larger the density, the stronger the aromaticity.  
They also pointed out that the curvature of electron density perpendicular to the ring plane at the  
1
38  
 
3
Functions  
RCP has more significant correlation with the ring aromaticity. The more negative the curvature, the  
stronger the aromaticity. Assume that the ring is strictly perpendicular to a Cartesian axis, for  
example, a ring perpendicular to Z axis (viz. the ring is in XY plane), then the curvature is just ZZ  
component of Hessian matrix of electron density at the RCP, which can be directly obtained by using  
option 7 to print out properties of a given RCP. However, if the ring is distorted, or is not exactly  
perpendicular to any Cartesian axis, you should use option 21 to calculate the curvature. In option  
2
1, you need to input the index of the RCP (or directly input coordinate of a point), and then input  
indices of three atoms, their nuclei position will be used to define the ring plane. Then, the electron  
density, the gradient and the curvature of electron density perpendicular to the ring plane at the RCP  
will be outputted on screen. In addition, unit normal vector, the coordinates of the two points above  
and below 1 Å of the RCP in normal direction will be outputted together, which can be taken as the  
point used to calculate NICS(1).  
Examples of various kinds of topology analysis can be found in Section 4.2.  
Information needed: GTFs, atom coordinates  
3
.15 Quantitative analysis of molecular surface (12)  
Quantitative analysis of molecular surface is a powerful tool, it has a lot of practical  
applications, such as predicting reactive sites, predicting molecular properties, interpreting  
intermolecular weak interaction. The theory and numerical algorithm involved in present module  
have been detailedly described in my paper J. Mol. Graph. Model., 38, 314 (2012). In the next two  
sections, these two aspects will only be briefly introduced.  
3
.15.1 Theory  
In Multiwfn, in principle, distribution of any real space function on molecular surface (or the  
surface defined by isosurface of a certain function) can be quantitatively studied. Electrostatic  
potential and average local ionization energy on molecular vdW surface are particularly useful,  
therefore they will be discussed detailed in this section. Same kind of quantitative analyses could  
also be applied to other real space functions, such as user-defined functions, electron delocalization  
range function (EDR) and even Fukui function and dual descriptor.  
(1) Electrostatic potential on vdW surface  
Molecular electrostatic potential (ESP), V(r), has been widely used for prediction of  
nucleophilic and electrophilic sites, as well as molecular recognition mode for a long time, the  
theoretical basis is that molecules always tend to approach each other in a complementary manner  
of ESP. These analyses of ESP are common performed on molecular van der Waals (vdW) surface.  
Although the definition of such a surface is arbitrary, most people prone to take the 0.001 a.u.  
isosurface of electron density as vdW surface, since this definition reflects specific electron structure  
features of a molecule, such as lone pairs and π electrons, this is also what the definition used in our  
analyses.  
The analysis of ESP on vdW surface has been further quantified to extract more information.  
1
39  
 
 
3
Functions  
It is shown that the strength and orientation of weak interaction, including such as hydrogen bonding,  
dihydrogen bonding and halogen bonding, can be well predicted and explained by analyzing the  
magnitude and positions of minima and maxima on the surface. Politzer and coworkers (J. Mol.  
Struct. (THEOCHEM), 307, 55 (1994)) have defined a set of molecular descriptors based on ESP  
on vdW surface, which are taken as independent variables of general interaction properties function  
(GIPF). GIPF successfully connects distribution of ESP on vdW surface and many condensed phase  
properties, including density, boiling point, surface tension, heats of vaporization and sublimation,  
LogP, impact sensitivity, diffusion constant, viscosity, solubility, solvation energy and so on. Below  
I enumerate and brief these descriptors.  
+
A and A indicate the surface area in which the ESP has positive and negative value,  
respectively. Total surface area A is the sum of them.  
+
S
S
V
and  
V
denote average of positive and negative ESP on vdW surface respectively  
m
n
+
V
S
= (1/ m) V(r )  
V
S
= (1/ n) V(r )  
i
j
i=1  
j=1  
where i and j are indices of sampling points in positive and negative regions respectively. The S  
subscript means "Surface". The average of ESP over the entire surface is  
t
V = (1/ t) V(r )  
S
k
k=1  
is the average deviation over the surface, which is viewed as an indicator of internal charge  
separation:  
t
= (1/t) V(r ) V  
S
k
k =1  
The total ESP variance can be written as the sum of positive and negative parts:  
m
n
+
S
S
2
tot  
2
+
2
2
2
=  + = (1/ m) [V(r ) V  
] + (1/ n) [V(r ) V  
]
i
j
i=1  
j=1  
2
2
The variance reflects the variability of ESP. The larger the + and  , the more tendency that the  
molecule interacts with other molecules by positive and negative ESP regions respectively.  
Degree of charge balance is defined as  
2
+
2
2
2
(
=
)  
tot  
2
2
When + equals to  ,  attains its maximum value of 0.250. The closer the  is to 0.250, the  
more possible that the molecule can interact to others through positive and negative region with  
similar extent.  
The product of 2 and  is a very useful quantity too, a large value of 2 is an indicative  
tot  
tot  
of a molecule that has relatively strong tendencies to interact with others of its own kind  
electrostatically.  
In order to quantify molecular polarity, I defined a quantity named "molecular polarity index"  
(MPI), which is closely related to the index.  
1
40  
3
Functions  
t
MPI = (1/ t) V(r )  (1/ A) |V(r) |d S  
k
k=1  
S
where S denotes molecular surface. My test for some representative molecules showed that MPI is  
a quite reliable index of measuring molecular polarity, the larger the index, the higher the polarity.  
In Multiwfn, above mentioned surface descriptors can be calculated not only on the whole vdW  
surface, but also on the subregions corresponding to atoms or user-defined fragments. The detail of  
the theory is to be published, and thus not documented here at the moment. In addition, these surface  
descriptors can be calculated for other kinds of real space functions.  
(2) Some practical applications of GIPF descriptors  
·
Predicting heat of vaporization and heat of sublimation  
A practical application of above GIPF descriptors is presented in J. Phys. Chem. A, 110, 1005  
(2006). The authors showed that for a series of molecules containing C, H, N and O elements, the  
heat of vaporization can be well evaluated as  
2
tot  
Hvap = a A + b  + c  
with least-squares fit coefficients a = 2.130, b = 0.930 and c = -17.844. The heat of sublimation can  
be predicted as  
2
2
tot  
Hsub = aA + b  + c  
2
with a = 0.000267, b = 1.650087 and c = 2.966078. In above equations the surface area A is in Å ,  
Hsub is in kcal/mol, 2 is in (kcal/mol) . Note that the coefficients are more or less dependent on  
2
tot  
the calculation level used. The author used B3LYP/6-31G* to optimize geometry and B3LYP/6-  
3
11++G(2df,2p) to calculate ESP.  
In Int. J. Quantum Chem., 105, 341 (2005), Politzer et al. proposed another equations for  
predicting Hvap and Hsub in standard state, their equations can be used for molecules containing  
C, H, O, N, F, Cl, S:  
2
tot  
Hvap =1.3556 A +1.1760  10.4331  
4  
2
2
tot  
Hsub = 4.430710 A + 2.0599   2.4825  
2
2
2
The Hvap and Hsub are in kcal/mol, A is in Å and  is in (kcal/mol) . B3PW91/6-31G** was  
tot  
employed in their study. The mean absolute error of Hvap and Hsub were found to be 2.0 kcal/mol  
and 2.8 kcal/mol, respectively.  
·
Predicting density of molecular crystal  
Another typical application of statistical data of ESP on vdW surface is predicting crystal  
density of organic molecules containing C, H, N and O elements. The crystal density is a crucial  
property of energetic compounds. In J. Phys. Chem. A, 111, 10874 (2007), it was shown that the  
density can be estimated by  = M / Vm, where M is molecular mass and Vm is molecular vdW  
volume defined by  = 0.001 a.u. isosurface; for ionic crystal (e.g. ammonium azide), M and Vm  
correspond the sum of mass and volume of the cation and anion comprising a formula unit of the  
compound. Although the relationship is quite simple, it indeed works well for most neutral species,  
but the error is evidently larger for ionic species. In order to improve the prediction accuracy for  
neutral ones, in Mol. Phys., 107, 2095 (2009), the authors introduced GIPF descriptors into the  
formula:  
1
41  
3
Functions  
M
2
tot  
=   
+ ( ) +   
Vm  
At B3PW91/6-31G** level, the fitted coefficients are  = 0.9183,  = 0.0028 and  = 0.0443. This  
formula has proven to have improved accuracy, because intermolecular electrostatic interaction is  
somewhat effectively taken into considered. In a succeeding paper Mol. Phys., 108, 1391 (2010),  
the author showed that the crystal density of ionic compounds can be estimated much better than   
=
M / Vm if GIPF descriptors are introduced:  
+
M
V
S(cation)  
V
S(anion)  
=   
+   
+   
+   
+
Vm  
A
(cation)  
A
(anion)  
with least-squares fit coefficients = 1.0260, = 0.0514, = 0.0419 and = 0.0227 at B3PW91/6-  
+
+
(
+
S
+
3
1G** level. In the equation,  
V
S(cation) and  
A
denote the  
cation)  
V
and  
A
of the cation;  
(
S
V
S(anion) and  
A
denote the  
anion)  
V
and  
A
of the anion. For 30 test cases, the average  
3
absolute error is merely 0.033 g/cm .  
Noticed that above relationships are only appropriate for small organic compounds containing  
C, H, N, O elements, the error are significantly larger for other kinds of systems.  
·
Predicting boiling point  
In J. Phys. Chem., 97, 9369 (1993), it is shown that boiling point can be predicted as  
2
T = A+   +  
bp  
tot  
where = 2.736, = 33.31, = -72.05 were fitted at HF/STO-5G*//HF/STO-3G* level. This paper  
also showed equations for predicting critical temperature, volume and pressure.  
·
Predicting solvation free energy  
In J. Phys. Chem. A, 103, 1853 (1999), the prediction equation for solvation free energy is  
presented as (Vmin denotes the ESP value at its global minimum in the whole space):  
5  
3
G (kJ/mol) = 0.17201Vmin  2.6412 10 (V  
VS,min )  
solv  
S,max  
S
+
0.051892A V  
+ 9704.2 /( A V ) + 46.827  
S
·
Predicting pKb  
In J. Chem. Inf. Model. (2020) DOI: 10.1021/acs.jcim.9b01173, the authors showed that pKb  
of amino groups can be nicely estimated by fitting equation, for example, primary amine cases:  
pK = 0.4952VS,min + 24.5880  
b
where VS,min is in kcal/mol and should be calculated at B97XD/cc-pVDZ level. Prediction accuracy  
2
of this equation is fairly satisfactory, the R is as high as 0.9519 with mean absolute error of merely  
0
.12. Similar fitted equations are also available for secondary amines, tertiary amines and tertiary  
amines.  
·
Predicting other properties  
In addition, the equations used to predict heat of fusion, surface tension and crystal/liquid  
density can be found in J. Phys. Chem., 99, 12081 (1995), the equations used to predict lattice energy  
+
+
+
for ionic crystal containing NH4 , K and Na are given in J. Phys. Chem. A, 102, 1018 (1998). More  
1
42  
3
Functions  
formulae used to predict physical properties of organic molecules based on GIPF descriptors are  
summarized in Table 3 of J. Mol. Struct. (THEOCHEM), 425, 107 (1998). GIPF also has many  
important uses in study of biochemical systems, see Int. J. Quantum Chem., 85, 676 (2001) for a  
review.  
(
3) Other mapped functions: Average local ionization energy and so on  
̅
Average local ionization energy, , has attracted more and more attentions, see corresponding  
part of Section 2.6 for brief introduction. This function has many uses, for example, reproducing  
atomic shell structure, measuring electronegativity, quantifying local polarizability and hardness.  
However, the most important use maybe the prediction of reactivity according to function value on  
̅
̅
vdW surface,  . Lower value of  indicates that the electron at r are more weakly bounded,  
therefore more likely r is the site of electrophilic or radical attack. Many studies have shown that  
̅
the global minimum of  on vdW surface exactly locates the experimental reaction site, while  
̅
relative magnitude of  at corresponding reaction site in homologues correlates well with relative  
reactivity. The interested users are recommended to take a look at J. Mol. Model, 16, 1731 (2010)  
and Chapter 8 of the book Theoretical Aspects of Chemical Reactivity (2007).  
̅
Local electron affinity EAL is a quantity very similar to , the only difference is that the MOs  
under consideration is not all occupied ones, but all unoccupied ones. It was shown that EAL on  
molecular surface is useful for analyzing nuclophilic attacking, for detail see J. Mol. Model., 9, 342  
(2003).  
Quantitative analysis on molecular surface for Fukui function and orbital overlap distance  
function D(r) have also been proven to be fairly useful, see Sections 4.12.4 and 4.12.8 for example,  
respectively.  
3
.15.2 Numerical algorithm  
3.15.2.1 Analysis on the whole molecular surface  
In summary, in the common task of quantitative analysis of molecular surface, what we need  
to obtain are minima and maxima of a selected real space function (i.e. mapped function) on vdW  
+
surface (or isosurface of a specific real space function), as well as quantitative indices such as  
V
S
,
S
2
+
2
V
,
V
S
,
,
,
and so on. Here I briefly describe how these properties are computed in  
Multiwfn, the basic steps are given below.  
. Grid data of electron density enclosed the entire molecular space is compute. The smaller  
1
the grid spacing is used, the more accurate result you will get, however the more vertices will be  
generated in next step and therefore you will wait longer time in step 3.  
2
. Marching Tetrahedra algorithm is performed by making use of the grid data generated above,  
this step generally does not cost much computational time. The volume enclosed by the isosurface  
is computed at the same time. This step generates vertices representing the isosurface, along with  
their connectivity. Each neighbouring three vertices constitute a triangle (will be referred to as facet  
below). Below example is a water molecule, vertices (red points) and connectivity (black lines) are  
portrayed:  
1
43  
 
 
3
Functions  
3
. Since computing ESP is time consuming, in order too cut down overall computational time,  
Multiwfn eliminates redundant points automatically. Specifically, if the distance between two points  
is smaller than a specific value, one of the points will be eliminated, and the other point will be  
moved to their average position. In above graph, the aggregated points such as those inside blue  
circles will be finally merged to one point.  
̅
. Calculate mapped function (ESP,  and so on) at each vertex on the isosurface. For ESP,  
4
̅
this is the most time consuming step; however for such as  and EAL, this step can be finished  
immediately.  
5
. Locate and then output minima and maxima of the mapped function on the surface by  
making use of connectivity. If the mapped function value at a vertex is both lower (larger) than that  
at its first-shell neighbours and second-shell neighbours, then this vertex will be regarded as surface  
minimum (maximum).  
+
S
S
2
+
2
2
tot  
2
tot  
6
. Compute and output  
V
,
V
,
V
S
,
,
,
,
, ,  , P, as well as vdW  
volume, area of total vdW surface, the area where the mapped function is positive and where is  
negative. As an example, is computed as  
V
S
N
V = (1/ A ) A F  
S
tot  
i
i
i=1  
where N is the total number of facets, Atot is the sum of area of all facets, Ai is the area of facet i, Fi  
is the ESP value (or value of other kind of mapped function) of facet i, which is calculated as the  
average of ESP at the three vertices composing the facet.  
3.15.2.2 Analysis on local molecular surface  
In order to unveil more chemically useful information from distribution of mapped functionon  
vdW surface, Multiwfn supports three kinds of analyses for local vdW surface, as described below.  
1
44  
 
3
Functions  
(1) Analysis of local molecular surface corresponding to various atoms  
In this mode the whole molecular surface will be first decomposed to local surfaces  
corresponding to individual atoms, and then all surface properties are calculated for these atomic  
surfaces. This function is very helpful to study atomic properties. See Section 4.12.3 for example.  
Note that atomic local regions on molecular surface cannot be uniquely defined. The rule  
employed by Multiwfn is shown as follows, which is simple and has clear physical meaning. For  
any given point r on the molecular surface, Multiwfn calculates weight w for all atoms via  
|
r  r |  
RA  
A
w =1−  
A
where A denotes atomic index, rA and RA are coordinate and radius of atom A, respectively. The  
surface point r is attributed to the atom that has the maximal weight. It can be seen that at the  
position of nucleus of A, wA reaches its maximal value 1.0. wA linearly attenuates with increase of  
the distance |r-rA|, it attains zero when the distance just equals to corresponding atomic radius. The  
larger radius the atom has, the slower the weight attenuates, therefore the above definition of weight  
makes larger sized atoms have higher possibility to cover broader range on molecular surface.  
In Multiwfn it is also possible to perform analysis of local molecular surface corresponding to  
a user-defined fragment, the region of the fragment is simply the sum of the regions of all the atoms  
that constitute it.  
(2) Analysis of local molecular surface around specific surface extreme  
This kind of analysis is mainly used for measuring area and graphically revealing region of -  
hole and -hole, see Section 4.12.10 for practical example, but it can also be used for other analysis  
purposes if the mapped function is not chosen to be electrostatic potential.  
In this mode, you need to select a surface extreme and set a criterion. When you select a surface  
maximum (minimum), if a surface vertex is directly or indirectly connected to the surface extreme  
and value of mapped function at this vertex is higher (lower) than the criterion, the vertex will be  
selected, all the selected vertices collectively define the local molecular surface. In order to make  
you intuitively understand how this mode defines the local surface around a selected surface extreme,  
an graphical illustration is provided below, in this map one-dimension ESP distribution is used to  
abstractly represent two-dimensions distribution of ESP on molecular surface.  
(3) Analysis of local molecular surface based on Basin-like partition  
1
45  
3
Functions  
Basin partition generally refers to partitioning the whole molecular space into individual local  
spaces by employing zero-flux surfaces of gradient of a real space function as basin boundaries,  
each basin contains a maximum, see Section 3.20.1 for detailed introduction. The same idea may  
also be employed for partitioning the molecular surface. When this technique is adapted in  
combination with ESP, some chemically useful information could be gained, see Section 4.12.11 for  
practical example.  
The algorithm of applying basin partition to molecular surface is proposed by me (to be  
published). The main purpose is to determine the attribution relationship between surface vertices  
and surface extrema. Because the mapped function may have both positive and negative values,  
absolute value of the mapped function is firstly taken, then all surface vertices are considered in  
turn. Iteration is performed for each surface vertex; in each step, the vertex temporarily moves  
towards the neighbouring vertex having largest value, namely climbing up hill. The iteration  
continues until the vertex reached a surface extreme, which is just the extreme that the surface vertex  
finally attributed to. Note that after usual quantitative molecular surface analysis, the connection  
relationship between various surface vertices is already known, if vertex B is directly connected to  
A, then B will be the neighbouring vertex of A. To make you better understand central idea of this  
method, a figure is shown below  
In this graph, the black curve represents the original ESP distribution, the cyan and black curves  
collectively correspond to the absolute value of the ESP. The region enclosed by blue bracket  
corresponds to the local surface corresponding to minimum 1, while the two pink brackets  
respectively correspond to the two local surfaces corresponding to maxima 1 and 2.  
For the above mentioned modes (2) and (3), if all the three vertices of a surface facet are  
selected, this surface facet will be regarded as attributed to the selected local surface. Then the area  
as well as average of mapped function of the selected local surface can be straightfowardly evaluated.  
3
.15.3 Parameters and options  
You will see below options in the main interface of quantitative analysis of molecular surface.  
Start analysis now!: When this option is selected, the analysis boots up. All steps described  
in last section will be implemented sequentially.  
0
6
Start analysis without considering mapped function: This option also starts analysis like  
option 0, however calculation and analysis of mapped function are skipped. This option is useful if  
1
46  
 
3
Functions  
you are only interested in e.g. volume and area of molecular surface while value of mapped function  
is not of interest.  
1
The isovalue of electron density used to define molecular surface: Default value is 0.001,  
corresponding to the most frequently used definition of vdW surface. In general it is not  
recommended to adjust this value.  
2
Select mapped function: The mapped function to be studied can be selected by this option.  
̅
Such as ESP, , EAL and user-defined function (Section 2.7) are directly supported and can be  
automatically computed by internal code of Multiwfn during the surface analysis. Alternatively, if  
you intend to load value of mapped functions at all surface vertices from an external file, you should  
choose "0 Function from external file", in this case you may analyze broader type of mapped  
functions (e.g. Fukui function), see description of option 5 given below for more detail.  
Note that by default the ESP is evaluated based on wavefunction, this process may be quite time-consuming for  
large systems. However, if you choose "Electrostatic potential from atomic charge", then Multiwfn will evaluate  
ESP based on atomic charges, which are loaded from a .chg file, the computational time will be reduced by several  
orders. You can use main function 7 to calculate atomic charge and produce the .chg file, or you can write the .chg  
file manually, see corresponding part of Section 2.5 on the .chg file format. Note that the analysis result will be  
reasonable only when the method used to generate atomic charges can reproduce ESP well (e.g. CHELPG, MK and  
ADCH methods). Also note that in some cases ESP generated by atomic charges differ significantly from the ESP  
generated based on wavefunction, see J. Chem. Theory Comput., 10, 4488 (2014) for comprehensive discussion.  
3
Spacing of grid points for generating molecular surface: This setting defines the spacing  
of electron density grid data, see step 1 introduced in the last section. The spacing directly  
determines the accuracy and computational cost of the analysis. Default value is suitable for general  
cases. Largening this value can reduce computational time evidently, however if this value is not  
small enough, the vertices on the isosurface will be spare, this may cause missing or erroneous  
locating of some extrema. In general, the results under the default spacing are accurate and reliable.  
If you find some extrema were not located under default spacing, try to decrease spacing and rerun  
the task.  
4
Advanced options: Suboptions in this option is not needed to be frequently adjusted by  
normal users.  
(1) The ratio of vdW radius used to extend spatial region of grid data: The role of this  
parameter is exactly identical to the parameter k introduced in Section 3.100.3. Enlarging this value  
will lead larger spatial extension of grid data of electron density around molecule. If isovalue of  
electron density is set to a lower value than default, or the system is negatively charged, you may  
need to enlarge this parameter to ensure that the isosurface will not be truncated.  
(2) Toggle if eliminating redundant vertices: If this option is switched to "No", then the  
elimination of redundant vertices (step 3 described in last section) will be skipped, and you will  
waste vast time to calculate mapped function at those meaningless vertices. If this option is switched  
to "Yes", you will be prompted to input a distance criterion for merging adjacent vertices. Commonly,  
0
.4~0.5 times of grid spacing is recommended to be used as the criterion.  
3) Number of bisections before linear interpolation: Simply speaking, the larger the value,  
(
the more exactly the isosurface (corresponding to vdW surface) can be generated. Enlarging this  
value will bring additional cost in step 2. The generated isosurface under default value is exact  
enough in general. You can descrease it to 2 even to 1 to save computational time, however decrease  
it to 0 will frequently lead to false surface extrema.  
5
Loading mapped function values from external file  
1
47  
3
Functions  
By choosing proper suboption in this option, during surface analysis, the value of mapped  
function at surface vertices can be loaded from external file rather than directly calculated by  
Multiwfn. This option has two uses: (1) Reduce overall analysis cost (2) Analyze a special function  
that cannot be calculated by Multiwfn, or the analyze a a function requiring mathematical operations  
and thus not directly available in present module (e.g. dual descriptor).  
This option has four suboptions:  
(
0) Do not load mapped function but directly calculate by Multiwfn: This is default case.  
1) Load mapped function at all surface vertices from plain text file: If this option is  
(
selected, then after generation of molecular surface, coordinate of all surface vertices (in Bohr) will  
be automatically exported to surfptpos.txt in current folder. Then you can use your favourite program  
to calculate mapped function value at these points, and write the values as the fourth column in this  
file (in free format, unit is in a.u.). For example  
1
324  
// The first line is the total number of points  
-
-
-
-
-
1.6652369 -0.5480503 -0.2554867 -0.0196978306  
1.6835983 -0.5563165 -0.1342924  
1.6977125 -0.5530614 -0.0099311  
-0.0242275610  
-0.0287667191  
-0.0330361826  
-0.0371580132  
1.7013207 -0.5536310  
1.6954099 -0.5523031  
0.1194197  
0.2547866  
.
...  
Then input the path of this file (the name can still be surfptpos.txt), Multiwfn will directly read the  
values. An exemplificative application of this option is given in Section 4.12.4.  
Hint: If you will analyze a system twice or more times, and want to avoid calculating mapped  
function values every time for saving time, at the first time you analyze the system, you can select  
option 7 at post-processing interface to export coordinates and corresponding mapped function  
values of surface vertices to vtx.txt in current folder. At next time you analyze the system, if you  
choose this option, and input the path of the vtx.txt during the surface analysis, then mapped function  
values will be directly loaded rather than re-calculated (See Section 4.12.1 for example).  
(2) Similar to 1, but specific for the case of using cubegen utility of Gaussian: A file named  
cubegenpt.txt will be generated in current folder after generation of molecular surface. This file is  
very similar to surfptpos.txt, the difference is that in this file the first line is not presented, and  
coordinate unit is in Å. Based on this file, you can make use of cubegen utility of Gaussian to  
calculate mapped function at all surface vertices. After that, input the path of cubegen output file,  
the data will be loaded by Multiwfn.  
(3) Interpolate mapped function from an external cube file: After generation of molecular  
surface, a template cube file named template.cub will be generated in current folder. Then you will  
be prompted to input the path of a cube file representating the mapped function you are interested  
in, the grid setting of this cube file must be exactly identical to template.cub. The mapped function  
values at surface vertices will be evaluated by interpolation from the cube file you provided.  
3
.15.4 Options at post-processing stage  
Once the all calculations of surface analysis are finished, a summary will be printed on screen.  
Meanwhile below options will appear on screen used to check, adjust and export results.  
-3 Visualize the surface: By this option you can directly visualize the isosurface analyzed.  
1
48  
 
3
Functions  
-
2 Export the grid data to surf.cub in current folder: The grid data used to generated  
isosurface will be exported to the cube file surf.cub in current folder.  
1 Return to upper level menu  
View molecular structure, surface minima and maxima: A GUI window will pop up if  
-
0
this option is chosen. Red and blue spheres represent the position of maxima and minima. All  
widgets are self explanatory and hence not be referred here.  
1
Export surface extrema as plain text file: This option exports value of mapped function  
and X,Y,Z coordinates of surface extrema to surfanalysis.txt in current folder.  
Export surface extrema as pdb file: This option outputs surface extrema to surfanalysis.pdb  
2
in current folder. The B-factor column records mapped function value (the actually used unit is  
shown on screen).  
3
Discard surface minima in certain value range: If the mapped function value at a surface  
minima is between the lower and upper limit inputted by user, then this minimum will be discarded  
and cannot be recovered. This option is useful to screen the minima with too large value.  
4
Discard surface maxima in certain value range: If the mapped function value at a surface  
maximum is between the lower and upper limit inputted by user, then this maximum will be  
discarded and cannot be recovered. This option is useful to screen the maxima with too small value.  
5
Export present molecule as pdb format file: This option outputs structure of present system  
to a specified pdb file. Since pdb is a widely supported format, in conjunction with the output by  
option 2, surface extrema can be conveniently analyzed in external visualization softwares such as  
VMD.  
6
Export all surface vertices to vtx.pdb in current folder: This option outputs surface  
vertices to vtx.pdb file in current folder, mapped function values are written to B-factor field (the  
1
49  
3
Functions  
actually used unit is shown on screen). This option is mainly used to check validity of isosurface  
polygonization and visualize distribution of mapped function on molecular surface.  
There is a hidden option 66, which not only outputs surface vertices to vtx.pdb, but also outputs connectivity  
into CONECT field of this file. If you would like to visualize connectivity based on the vtx.pdb in VMD program,  
please consult my blog article "Setting connectivity of atoms according to CONECT field in VMD"  
7
Export all surface vertices to vtx.txt in current folder: Namely outputting all reserved  
surface vertices to a plain text file named vtx.txt in current folder, including vertex X/Y/Z  
coordinates in Bohr and mapped function values in various units.  
8
Export all surface vertices and surface extrema as vtx.pqr and extrema.pqr: This option  
exports all surface vertices and surface extrema as vtx.pqr and extrema.pqr in current folder,  
respectively. The column originally designed for recording atomic charge in this format (i.e. the  
third last column) is used to record mapped function value in a.u. Because recording precision in  
this case is relatively high, if the value of mapped function is too small to be properly recorded as  
B-factor field of .pdb file (e.g. Fukui function on vdW surface), obviously you should use this option  
to replace options 2 and 6.  
9
Output surface area in specific value range of mapped function  
By this option, one can gain the knowledge of the distribution of molecular surface area in  
various range of mapped function. First one needs to input the index range of the atoms in  
consideration, then input overall range, interval and the unit. For example, one sequentially inputs  
2
,6-9, -45,50 and 10 and 3, the statistic then is applied on the local molecular surface corresponding  
to atoms 2, 6, 7, 8 and 9, the output looks like below:  
Begin  
End  
Center  
Area  
4.8764  
%
-
-
-
-
-
50.0000  
40.0000  
30.0000  
20.0000  
10.0000  
-40.0000  
-30.0000  
-20.0000  
-10.0000  
0.0000  
-45.0000  
-35.0000  
-25.0000  
-15.0000  
-5.0000  
5.0000  
1.5171  
8.7242  
7.2397  
5.4764  
28.0413  
23.2699  
17.6022  
61.4759  
72.6197  
55.2707  
53.9060  
2.8590  
19.1263  
22.5933  
17.1957  
16.7712  
0.8895  
0
.0000  
10.0000  
20.0000  
30.0000  
40.0000  
50.0000  
1
0.0000  
0.0000  
0.0000  
0.0000  
15.0000  
25.0000  
35.0000  
45.0000  
2
3
4
1.5000  
0.4667  
Sum:  
321.4212  
100.0000  
where "begin" and "end" is the lower and upper limit of local value range, respectively. "Center" is  
2
their average value. Area is in Å , "%" denotes the proportion of the area in overall molecular surface  
area.  
1
0 Output the closest and farthest distance between the surface and a point  
In this option, after defining a point (you can define a nuclear position or geometry center as  
the point, you can also directly input the coordinate of the point), the closest and farthest distance  
between the molecular surface and the point will be outputted. These two quantities have two main  
uses:  
(1) In atoms in molecules (AIM) theory, for systems in gas phase, the vdW isosurface is defined  
as the ρ=0.001 a.u. isosurface. The closest distance between a nucleus and the surface can be  
regarded as non-bonded atomic radius. For a noncovalently interacting atom pair AB, The difference  
between the length of A-B and the sum of their non-bonded radii is termed as mutual penetration  
1
50  
3
Functions  
distance. In general, the larger the distance is, the stronger the interaction will be.  
2) The farthest distance between molecular surface and geometry center can be viewed as a  
(
definition of molecular radius. Of course, the concept of molecular radius is only meaningful for  
sphere-like molecules.  
If you input f, Multiwfn will output the farthest distance between all surface points. This can  
be regarded as a definition of molecular diameter.  
11 Output surface properties of each atom  
This option is used to realize the analysis of local molecular surface corresponding to various  
atoms, as introduced in Section 3.15.2.2. After outputting the surface properties, the user can select  
if outputting the surface facets to locsurf.pdb in current folder. If choosing "y", then in the outputted  
pdb file, each atom corresponds to a surface facet, and the B-factor field records the attribution of  
the surface facets, e.g. a facet having B-factor of 11.00 means the facet belongs to the local surface  
of atom 11. If you load the pdb file into VMD and set "Coloring Method" as "Beta", then you can  
directly visualize how the whole molecular surface is decomposed to atomic surfaces.  
1
2 Output surface properties of specific fragment  
Similar to function 11, but user can define a fragment, the surface properties will only be  
calculated on the local surface corresponding to this fragment, so that one can study fragment  
properties according to the local surface descriptors. Also, you can choose to output the surface  
facets to locsurf.pdb in current folder, in which the atom having B-factor of 1 and 0 means  
corresponding surface facet belongs to and does not belong to the local surface of the fragment you  
defined, respectively.  
1
3 Calculate grid data of mapped function and export it to mapfunc.cub  
For example, if the mapped function you selected before the quantitative surface analysis is  
ALIE, then if you select this option in post-processing menu, grid data of ALIE will be calculated  
and exported to mapfunc.cub in current folder, the grid setting is the same as the one employed in  
the quantitative surface analysis. Based on the surf.cub exported by option -2 and the mapfunc.cub,  
you can plot color-mapped isosurface map via VMD program. Section 4.12.6 illustrates value of  
this option.  
1
4 Calculate area of the region around a specific surface extreme  
This option is used to realize the analysis "(2) Analysis of local molecular surface around  
specific surface extreme" described in Section 3.15.2.2. The area as well as averaged mapped  
function value of the local surface region will be printed on screen, and meantime a file selsurf.pqr  
will be exported to current folder, you can load it into VMD program to visualize the selected local  
surface region (drawing as "Points" method and coloring according to "Charge" property are  
recommended, the charge column in this file correspond to the mapped function values in a.u.).  
1
5 Basin-like partition of surface and calculate areas  
This option is used to realize the analysis "(3) Analysis of local molecular surface based on  
Basin-like partition" described in Section 3.15.2.2. The number of surface vertices of each surface  
basin, the area of each surface basin, as well as average value of mapped function on each surface  
basin are outputted. At the meantime, surfbasin.pdb is exported to current folder and it contains all  
surface vertices, B-factor corresponds to index of the extreme that the vertex attributed to.  
1
9 Discard some surface extrema by inputting indices  
Sometimes due to numerical noise or other reasons, there are some unwanted surface extrema.  
In this case you can use this option to conveniently remove them by inputting their indices.  
1
51  
3
Functions  
Abundant examples of various kinds of quantitative molecular surface analyses can be found  
in Section 4.12.  
3
.15.5 Special topic: Hirshfeld and Becke surface analyses  
The quantitative molecular surface analysis module is also able to carry out Hirshfeld and  
Becke surface analysis, present section is devoted to introduce this point.  
Theory of Hirshfeld and Becke surface analyses  
Hirshfeld surface analysis was first proposed in Chem. Phys. Lett., 267, 215 (1997) and  
comprehensively reviewed in CrystEngComm, 11, 19 (2009). This method focus on analyzing the  
so-called Hirshfeld surface to reveal weak interactions between monomers in complex or in  
molecular crystal.  
Hirshfeld surface in fact is a kind of inter-fragment (or inter-monomer) surface, which is  
defined based on the concept of Hirshfeld weight. Probably Hirshfeld surface is the most reasonable  
way to define inter-fragment surface.  
Atomic Hirshfeld weighting function of an atom is expressed as  
0
A
(r)  
Hirsh  
wA (r) =  
0
(r)  
B
B
0
A
where  
denotes the density of atom A in free-state. Summing up weight of all atoms in a  
fragment yields Hirshfeld weight of this fragment  
Hirsh  
Hirsh  
wP (r) = wA (r)  
AP  
Hirsh  
Hirshfeld surface of fragment P is just the isosurface of wP = 0.5  
.
Motivated by Hirshfeld surface, I proposed Becke surface, which replaces Hirshfeld weight  
with Becke weight (see Section 3.18.0 for introduction of Becke weight), only geometry and atomic  
radii are required to construct Becke surface. Generally the shape of Becke surface and Hirshfeld  
surface are comparable, but I prefer to use Becke surface, mostly because Becke surface does not  
rely on atomic density and thus somewhat easier to be constructed.  
To intuitively illustrate Hirshfeld/Becke surface, acetic acid dimer in 2D case is taken as  
example here  
1
52  
 
3
Functions  
Becke weighting function of the monomer at left side of the graph is represented by color, going  
from red to purple corresponds to the weight varying from 1.0 to 0.0. The black line, which is the  
contour line of 0.5, is just its Becke surface. Evidently, Becke surface very elegantly partitioned the  
whole space into two monomer regions, the difference of atomic size is properly and automatically  
taken into account. The Becke surface in this case is an open surface, the surface extends to infinity;  
while if the monomer is completely buried, such as in molecular crystal or metal-organic framework  
environment, then its Becke surface will be a close surface and encloses all of its nuclei, just like  
common molecular surface.  
If we map specific real space functions on Becke/Hirshfeld surface and study their distributions,  
just like quantitative analysis on molecular surface, we can gain many important information about  
intermolecular interaction. There are three real space functions very useful for this purpose  
vdW  
vdW  
e
vdW  
d  r  
d  r  
i
i
e
(1) Normalized contact distance dnorm  
=
+
, where di (de) is the  
vdW  
r
r
e
i
distance from a point on the surface to the nearest nucleus inside (outside) the surface, vdWand  
vdW  
denote vdW radius of the corresponding two atoms. Small value of dnorm indicates close  
intermolecular contact and implies evident interaction.  
2) Electron density. If electron density is large in some local region of Becke/Hirshfeld surface,  
(
obviously the intermolecular interactions crossing these regions must be strong. The usefulness of  
electron density is similar to dnorm, but the former is more physically meaningful. While dnorm also  
has its own advantage, namely only geometry and vdW radii information are needed.  
(3) sign(λ2), see corresponding part Section 2.6 for detailed explanation. This function can  
not only exhibit interaction strength but also reveal interaction type.  
Below is urea crystal, the isosurface represents Hirshfeld surface of the central urea, and dnorm  
is the mapped function. Red parts correspond to small dnorm and thus exhibit close contact, which  
mainly originates from H-bond interaction.  
1
53  
3
Functions  
Fingerprint plot  
The so-called "fingerprint plot" defined in the framework of Hirshfeld surface analysis is very  
useful for investigating the noncovalent interactions in molecular crystals. X and Y axes in this plot  
correspond to di and de, respectively. The plot is created by binning (di, de) pairs in certain intervals  
and colouring each bin of the resulting 2D histogram as a function of the number of surface points  
in that bin, ranging from purple (few points) through green to red (many points). Black region means  
there are not surface points. If you are confused, see the fingerprint plot in Section 4.12.6 for  
example. The usefulness of fingerprint plot is demonstrated in page 24 and 25 of CrystEngComm,  
11, 19 (2009). Although in Multiwfn fingerprint plot can also be drawn in Becke surface analysis,  
the plot in this case is not as useful as that in Hirshfeld surface analysis.  
The Hirshfeld surface in fact can be viewed as the contact surface between the atoms in the  
Hirshfeld fragment you defined and all of the other atoms. The remarkable flexibility of Multiwfn  
allows the overall contact surface to be decomposed to various local contact surfaces and draw the  
corresponding fingerprint plots. For example, in Multiwfn, one can draw fingerprint plot for the  
local contact surface between the nitrogen in the central urea and the hydrogens in specific  
peripheral ureas. In this case, all points in the contact surface simultaneously satisfy two conditions:  
(1) In the Hirshfeld fragment (viz. the central urea), the atom closest to the surface point is the  
nitrogen (2) Among all atoms that do not belong to the Hirshfeld fragment, the atom closest to the  
surface point is one of hydrogens in specific peripheral ureas. Undoubtedly, fingerprint plot of local  
contact surface greatly facilitates one to study the noncovalent interaction in local region due to the  
contact between specific atom sets.  
Usage  
The procedure to perform Becke/Hirshfeld surface analysis is similar to usual quantitative  
molecular surface analysis. After you entered main function 12, choose option 1 and select Becke  
or Hirshfeld surface, then input the index of the atoms in the fragment (referred to as Hirshfeld  
fragment below), and use option 2 to select mapped function. After that choose option 0 to start  
calculation. Quantitative data on the surface such as average value and standard deviation will be  
outputted, and surface extrema will be located. Then via corresponding options you can visualize  
surface minima/maxima, export result and so on, all options in the post-processing menu (except  
1
54  
3
Functions  
one, see below) have already been introduced in Section 3.15.4 and thus are not described again  
here. If you use option 6 to export the surface vertices to .pdb file, based on which you can also plot  
color-mapped Hirshfeld/Becke surface by means of VMD program, the drawing method should be  
set to "Points" and coloring method should be set to "Beta" (viz. B-factor in the pdb file, which  
corresponds to mapped function value in the present context).  
Becke surface analysis and Hirshfeld surface analysis commonly work equally well, the  
computational cost of the latter is lower.  
Current Multiwfn does not support .cif file. So, if you use Multiwfn to perform Hirshfeld/Becke  
surface analysis to study intermolecular interaction in molecular crystals, you commonly need to  
use some third-part softwares to open the corresponding .cif file and then properly dig out a cluster  
of molecules.  
In order to draw fingerprint plot, the mapped function must be set to dnorm, which is default.  
Then after the Hirshfeld/Becke surface analysis has finished, in the post-processing menu you will  
see an option titled "20 Fingerprint plot analysis", after entering it you will see a menu. If you select  
option 0, the fingerprint analysis will be started. By default the fingerprint analysis is performed for  
the overall Hirshfeld surface. If you intend to study fingerprint plot in local contact region, you  
should use options 1 and 2 to properly define the "inside atoms" set and "outside atoms" set, only  
the contact surface between these two sets will be taken into account in the fingerprint plot analysis.  
The "inside atoms" set must be a subset of Hirshfeld fragment, while any atom in the "outside atoms"  
set should not belong to the Hirshfeld fragment. In the options 1 and 2 you will be asked to input  
two filter conditions, their intersection defines the set. Condition 1 corresponds to the atom index  
range, the condition 2 corresponds to element. For example, if you input 1,3-6 as condition 1 and  
Cl as condition 2, then Cl atoms will be defined as the set if their indices belong to 1,3-6.  
After carrying out the fingerprint map analysis, the area of the contact surface will be shown  
on screen, you can regard this data as actual interaction area between the sets you defined. Then, in  
the post-processing menu, by options 1~3 you can draw the fingerprint plot, save the plot, and export  
the original data of the plot (namely the number of surface points in each bin) to plain text file. By  
options 3 and 4 you can adjust color scale and the range of X/Y axes, respectively. By option 5 you  
can export the surface points corresponding to the current fingerprint plot to finger.pdb in current  
folder. In addition, by options 10 and 11, you can draw scatter map for the surface points between  
di and de , and export di and de values of all surface points to plain text file.  
An example of Becke surface analysis is given in Section 4.12.5. An example of Hirshfeld  
analysis and drawing fingerprint plot is given in Section 4.12.6, this example also illustrates how to  
easily plot pretty color-mapped Hirshfeld surface via VMD program.  
Information needed: Depending on the real space function used to define the surface and that  
mapped on the surface. At least atom coordinates must be provided. (For local electron affinity,  
virtual MOs must be presented, hence such as .mwfn, .fch, .molden and .gms should be used)  
1
55  
3
Functions  
3
.16 Processing grid data (13)  
If Gaussian-type cube file (.cub) or DMol3 grid file (.grd) was loaded when Multiwfn boots  
up, or grid data has been generated by main function 5 or other functions, a set of grid data will  
presented in memory (which will be referred to as "present grid data" below), then this module will  
be available. If grid data has not been presented in memory but you choose this main function, you  
can also directly load grid data from an external file.  
In this module, you can visualize present grid data, extract data in a specified plane, perform  
mathmetical algorithm, set value in specified range by corresponding options and so on. These  
options will be described below.  
3
.16.0 Visualize isosurface of present grid data (-2)  
Visualize isosurface of present grid data in a GUI window, this is useful to check validity of  
the grid data updated by some functions (e.g. function 11)  
3
.16.1 Output present grid data to Gaussian cube file (0)  
If you choose this function, present grid data (may be has updated by using function 11, 13, 14,  
5) along with atom information will be outputted to a cube file.  
1
3
.16.2 Output all data points with value and coordinate (1)  
By this function, all present grid data will be outputted to output.txt in current folder, the first  
three columns correspond to X,Y,Z value (in Å), the last column is data value.  
3
.16.3 Output data points in a XY/YZ/XZ plane (2, 3, 4)  
By these functions, the grid data in the XY/YZ/XZ plane with specified Z/X/Y value will be  
outputted to output.txt in current folder, which is a plain text file, you can load it to visualization  
softwares such as sigmaplot and then plot plane graphs. Since grid data is discretely distributed, the  
actual outputted plane is the one nearest to your input Z/X/Y value.  
Please read program prompts for the meaning of each column in output file.  
3
.16.4 Output average data of XY/YZ/XZ planes in a range of Z/X/Y  
(
5,6,7)  
By these functions, the average grid data in some XY/YZ/XZ planes whose Z/X/Y coordinate  
are in specified range will be outputted to output.txt in current folder. The column 1/2/3/4 correspond  
to X,Y,Z,value respectively, unit is Å.  
3
.16.5 Output data points in a plane defined three atom indices or three  
points (8,9)  
By these two functions, the data in an arbitrary plane can be outputted to plain text file.  
However if the plane you are interested in is XY/YZ/XZ plane, you should use function 2,3,4 instead  
1
56  
 
 
 
 
 
 
 
3
Functions  
respectively. You can define the plane by inputting three atom indices or by inputting three points.  
You need to input tolerance distance, the data points whose distance to the plane are short than  
this value will be outputted. In general it is recommended to input 0 to use default value.  
Then if you want to project the data points to XY plane so that you can load them into some  
visualization softwares and then plot them as plane graph, you can input 1 to tell program to do that.  
You will find Z values of all points in the output file are zero.  
3
.16.6 Output data points in specified value range (10)  
Like function 2, but only the data points whose value are in specified range will be outputted.  
If you input both lower and upper limit of value as k, then the data between k-abs(k)*0.03 and  
k+abs(k)*0.03 will be outputted.  
3
.16.7 Grid data calculation (11)  
In this function, you can perform algorithm for present grid data by corresponding options,  
then the grid data will be updated, and then you can use such as function -2 to visualize the updated  
grid data, use function 0 to output the updated grid data as cube file or extract data in a plane by  
function 2~9, etc.  
Supported operations are shown below, where A means value of present grid data, B means  
value at corresponding point in the cube file that will be loaded. C means the updated value at  
corresponding point.  
1 Add a constant  
e.g. A+0.1=C  
i.e. A+B=C  
e.g. A-0.1=C  
i.e. A-B=C  
2 Add a grid file  
3 Subtract a constant  
4 Subtract a grid file  
5 Multiplied by a constant  
6 Multiplied by a grid file  
7 Divided by a constant  
e.g. A*0.1=C  
i.e. A*B=C  
e.g. A/5.2=C  
i.e. A/B=C  
8 Divided by a grid file  
1
.3  
9 Exponentiation  
e.g. A =C  
2
2
10 Square sum with a grid file  
11 Square subtract with a grid file  
12 Get average with a grid file  
13 Get absolute value  
i.e. A +B =C  
2
2
i.e. A -B =C  
i.e. (A+B)/2=C  
i.e. |A|=C  
A
14 Get exponential value with base 10  
15 Get logarithm with base 10  
16 Get natural exponential value  
17 Get natural logarithm  
18 Add a grid file multiplied by a value  
i.e. 10 =C  
i.e. log10(A)=C  
A
i.e. e =C  
i.e. ln(A)=C  
i.e. A+0.4*B=C  
19 The same as 6, but multiplied by a weighting function at the same time. The weighting  
function is defined as min(|A|,|B|)/max(|A|,|B|). So, at any point, the more the magnitude  
of the data in A deviates from the counterpart in B, the severely the result will be punished.  
20 Multiplied by a coordinate variable: This option multiplies all grid data by one of  
selected coordinate variables X, Y and Z.  
1
57  
 
 
3
Functions  
21 Get minimal value with another function  
22 Get min(|A|,|B|)  
i.e. min(A,B)  
If the operation you selected involves a constant, you will be prompted to input its value; If  
involves another cube or Dmol3 .grd file, you will be prompted to input its filename, of which the  
origin point, translation vectors and data points in each dimensions must be identical to the grid data  
presented in memory.  
3
.16.8 Map values of a cube file to specified isosurface of present grid  
data (12)  
The function is especially useful if you have a electron density cube file and corresponding  
ESP cube file, you can obtain ESP values of the points laying on the vdW surface, which may be  
defined as the isosurface with electron density isovalue of 0.001. (Note that main function 12 can  
realize the same goal, meanwhile the accuracy is higher)  
You need to input a isovalue to define the isosurface of present grid data, assume that you input  
p, and then input deviation in percentage, referred to as k here, then the data points whose values  
are between p+abs(p)*0.01*k and p-abs(p)*0.01*k will be regarded as isosurface points.  
Subsequently, you need to input the filename of another cube file (should has identical grid setting  
as present grid data), the value in this cube file of those isosurface points will be exported to  
output.txt in current folder, along with X/Y/Z coordinates.  
3
.16.9 Set value of the grid points that far away from / close to some  
atoms (13)  
By this function, the value of grid points beyond or within scaled vdW region of a molecular  
fragment can be set to a specific value. This is very useful for screening uninteresting region when  
showing isosurface, namely setting value of this region to a very large value (very positive or very  
negative, according to the character of the grid data).  
You need to input a scale factor for vdW radius, then input expected value. After that, you need  
to specify fragment, you can either directly input atomic indices (e.g. 3,5,1-15,20), or input filename  
of a plain text file, in which a molecular fragment is defined as atomic list, below is an example of  
the file:  
3
1
3 4  
where 3 means there are three atoms in this fragment, 1, 3, 4 are corresponding atom indices.  
Then all grid points that beyond the region occupied by scaled vdW spheres of the fragment  
atoms will be set to specific value.  
If the scale factor of vdW sphere is set to a negative value, e.g. -1.3, then all grid points that  
within the scaled vdW surface of the fragment will be set to the specific value.  
An example of using this function is given in Section 4.13.4.1.  
1
58  
 
 
3
Functions  
3
.16.10 Set value of the grid points outside overlap region of two  
fragments (14)  
This function is similar to function 13, but only the grid points outside superposition region of  
scaled vdW regions of two fragments will be set to a specified value. You can either directly input  
atomic indices of the two fragments, or prepare two files containing atom lists for the two fragments,  
the format is the same as function 13.  
This function is very useful if you are only interested in studying isosurfaces between two  
fragments, all isosurfaces outside this region can be screened by setting grid data value to very large.  
An illustrative example is given in Section 4.13.4.2.  
3
.16.11 If data value is within certain range, set it to a specified value  
(
15)  
You need to input lower and upper limit value and a expected value, if any value in present  
grid data is within the range you inputted, its value will be set to the expected value.  
3
.16.12 Scale data range (16)  
By this function, the value of present grid data can be linearly scaled to certain range. You need  
to input original data range, assumed that you inputted 0.5,1.7, and you inputted -10,10 as new data  
range, then all the value of present grid data that higher than 1.7 will be set to 1.7, all the value lower  
than 0.5 will be set to 0.5. After that, the value between 0.5 and 1.7 will be linearly scaled to -10,10.  
It may be more clear if the algorithm is expressed as pseudo-code:  
where (value>0.5) value=0.5  
where (value<1.7) value=1.7  
all value = all value - 0.5  
ratiofac = [10 - (-10)] / (1.7 - 0.5) = 20/1.2  
all value = all value * ratiofac  
all value = all value + (-10)  
3
.16.13 Show statistic data of the points in specific spatial and value  
range (17)  
This function can output statistic data of the points in specific spatial and value range. If user  
do not want to impose any constraint (namely the statistic data is for all data points), input 1. If  
constraint is needed to be imposed, user should input 2, and then input lower and upper limit of  
X,Y,Z coordinates and value in turn.  
The minimum and maximum value, average, root mean square, standard deviation, volume,  
sum, integral and barycenter position of the data points satisfied the constraints will be outputted.  
The positive, negative and total barycenter are computed respectively as  
1
59  
 
 
 
 
3
Functions  
+
+
R = r f (r ) /  
f (r )  
+
i
i
i
i
i
R = r f (r ) /  
f (r )  
j
j
j
j
j
all  
all  
R = r f (r ) /  
f (r )  
tot  
k
k
k
k
k
where f is the data value, r denotes coordinate vector, the indices i, j and k run over positive, negative  
and all grid points respectively.  
3
.16.14 Calculate and plot integral curve in X/Y/Z direction (18)  
Integral curve is defined as below (e.g. in Z direction)  
z' ++  
I(z') =  
p(x, y, z)dxdydz  
   
z
−−  
ini  
Local integral curve is defined as (e.g. in Z direction)  
+
+  
I (z) =  
p(x, y, z)dxdy  
L
−  
Evidently  
z'  
I(z') = I (z)dz  
L
z
ini  
In Multiwfn, I and IL curves are evaluated based on cubic numerical integration of grid data.  
User first needs to choose which direction will be integrated, and then input the lower and upper  
limit of the coordinate in this direction. Then integral curve and local integral curve will be  
calculated within this range. After that, by corresponding options, the graph of the curves can be  
plotted or saved, the curve data can be exported to current folder as plain text file.  
Assume that user has chosen Z direction, and the lower and upper limit were set to -5 and 10,  
respectively, then the spatial range of the curve generated by Multiwfn will be z=[-5,10], and the zini  
in above formula will be -5. If user input the letter a (denotes "all"), then the minimal and maximal  
value of Z coordinate of current grid data will regarded as lower and upper limit, respectively.  
Worthnotingly, if the integrand is chosen as electron density difference, then the integral curve  
sometimes is known as "charge displacement curve" and useful in discussion of charge transfer, see  
J. Am. Chem. Soc., 130, 1048 for example. If you want to obtain such a curve, before entering  
present function, you should calculate grid data of electron density difference, or directly load the  
grid data from external file (e.g. cube file).  
A practical example is given in Section 4.13.6.  
Information needed: Grid data, atom coordinates  
1
60  
 
3
Functions  
3
.17 Adaptive natural density partitioning (AdNDP)  
analysis (14)  
3
.17.1 Theory  
Famous NBO analysis developed by Weinhold and coworkers is able to recover up to 3-centers  
2
-electrons (3c-2e) orbitals from density matrix (e.g. by using "3cbond" keyword in NBO program).  
Adaptive natural density partitioning (AdNDP), which was proposed by Zubarev and Boldyrev in  
year 2008 (Phys. Chem. Chem. Phys., 10, 5207), may be viewed as a natural extension of NBO  
analysis aiming for locating N>3 centers orbitals. AdNDP has been extensively used to study  
electronic structure characteristic of widespread of cluster systems, by googling "AdNDP" you can  
find many related literatures.  
Canonical molecular orbitals (CMOs) are generally highly delocalized, often lacking of  
chemical significances; While 2c or 3c NBOs are substantially localized, for highly conjugated  
system resonant description is often needed (otherwise large non-Lewis composition will occur, that  
means current system is inappropriate to be portrayed by single set of NBOs), this somewhat  
conflicts with modern quantum chemistry concepts and obscures delocalization natural of electrons  
in conjugated system. AdNDP orbitals seamlessly bridged CMOs and NBOs, AdNDP bonding  
patterns avoid resonant description and are always consistent with the point symmetry of the  
molecule.  
The basic idea of AdNDP to generate multi-center orbitals is very similar to NBO analysis, that  
is constructing proper sub-block of density matrix in natural atomic orbital (NAO) basis and then  
diagonalize it, the eigenvalues and eigenvectors correspond to occupation number and orbital  
wavefunction respectively. For example, we want to generate all possible 4-centers orbitals for atom  
A,B,C,D, we first pick out corresponding sub-blocks and then combine them to together:  
PA,A PA,B PA,C P   
A,D  
P
P
P
P
B,D  
(
A,B,C,D)  
B,A  
B,B  
B,C  
P
=
P
P
P
P   
C,A  
C,B  
C,C  
C,D  
P
P
P
P
D,A  
D,B  
D,C  
D,D  
After diagonalization of P(A,B,C,D), if one or more eigenvalues exceeded the predefined threshold,  
which is commonly set to close to 2.0 (e.g. 1.7), then corresponding orbitals will be regarded as  
candidate 4c-2e bonds. Completely identical strategy can be used to generate orbitals with higher  
number of centers.  
Indeed, the orbital generating process of AdNDP is quite easy once atom combination is  
determined, however the searching process of final Nc-2e orbitals in entire system is complicated,  
manual inspections and operations are necessary. AdNDP approach has large ambiguity, it is  
possible that the searching process carried out by different peoples finally results in differentAdNDP  
pattern, I think this is the most serious limitation of current AdNDP approach. So, AdNDP is never  
a black box, before using it users must have preliminary understanding of the searching process of  
the AdNDP implemented in Multiwfn.  
Before the search, densities from core-type NAOs are automatically eliminated from the  
density matrix, since they have no any contribution to bonding. After that, 1-center orbitals (lone  
1
61  
 
 
3
Functions  
pair), 2-centers orbitals, 3-centers orbitals, 4-centers orbitals ... will be searched in turn, until  
residual density (trace of density matrix) is close to zero. The search could be exhaustive, that means  
when searching N-centers orbitals, Multiwfn will construct and diagonalize M!/(M-N)!/N! sub-  
blocks of density matrix, where M is the total number of atoms. All of the orbitals whose occupation  
numbers are larger than the threshold will be added to candidate orbital list. For large system, the  
searching process may be very time-consuming or even forbidden, for example, exhaustive search  
of 10-centers orbitals in the system with 30 atoms needs to construct and diagonalize 30045015 sub-  
blocks of density matrix! This is very difficult to be finished in personal computer, for such case,  
user-directed searching is necessary. In Multiwfn you can customly define a search list, then the  
exhaustive search will only apply to the atoms in the search list, so that the amount of computation  
would be greatly reduced. You can also directly let Multiwfn construct and diagonalize sub-block  
of density matrix for specified atom combination. Note that user-directed searching has relatively  
high requirements of skill and experience on users.  
Once the search of N-centers orbitals is finished, we will get a list containing candidate N-  
centers orbitals. We need to pick some of them out as final N-centers AdNDP orbitals. Commonly,  
one or more orbitals with the highest occupation numbers will be picked out. Notice that, since some  
densities are simultaneously shared by multiple candidate orbitals, if we directly pick out several  
candidate orbitals with the largest occupation at one time, the electrons may be overcounted. To  
avoid this problem, assume that K orbitals with the highest occupation numbers obviously overlap  
with some other candidate orbitals meanwhile there is no evident overlapping between the K orbitals,  
we should first pick out K orbitals as final AdNDP orbitals, then Multiwfn will automatically deplete  
their density from the density matrix and then reconstruct and diagonalize the corresponding sub-  
blocks of density matrix for remained candidate orbitals to update their shapes and occupation  
numbers. If there are still some candidate orbitals with occupation numbers close to 2.0, you may  
consider picking them out, then remained orbitals will be updated again. Such process may be  
repeated several times until there is no orbitals have high occupation numbers. After that, you can  
start to search N+1 centers orbitals.  
The general requirements of AdNDP analysis are that: The final residual density (corresponds  
to non-Lewis composition in NBO analysis) should as low as possible; the occupation numbers of  
each AdNDP orbital should as close to 2.0 as possible; the number of centers of AdNDP orbitals  
should as less as possible; the resulting orbitals must be consistent with molecular symmetry.  
However, there is no unique rule on how to search orbitals and pick out candidate orbitals as  
AdNDP orbitals. For example, one can first search 5-centers orbitals before completing search of 3-  
centers orbitals, and one can also directly search 6-centers orbitals after the search of 2-centers  
orbitals has finished. The sequence of picking out candidate orbitals is also not necessarily always  
in accordance to magnitude of occupation numbers. The final AdNDP pattern obtained by different  
operations may be different, how to do AdNDP analysis is largely dependent on users themselves.  
Actually some molecules may have two or even more equally reasonable AdNDP patterns,  
sometimes it is difficult to discriminate which pattern is the best. I have confidence to say that some  
AdNDP patterns presented in publicated papers are not the optimal ones. The experience of using  
AdNDP approach can be gradually accumulated in practices and during reading related literatures.  
AdNDP is very insensitive to basis set quality as NBO analysis, 6-31G* is enough to produce  
accurate results for main group elements in the first few rows. Over enhancing basis set quality will  
not improve AdNDP analysis results but only lead to increase of the computational burden in  
1
62  
3
Functions  
diagonalization step, since the size of sub-block of density matrix is directly determined by size of  
basis set.  
Multiwfn offers capacity of evaluating AdNDP orbital energies. You need to provide a file  
containing Fock (or Kohn-Sham) matrix in original basis functions. The Fock matrix can be obtained  
from output of Gaussian or other programs. The energy of AdNDP orbital is corresponding diagonal  
term of Fock matrix in AdNDP orbital representation. Specifically, Multiwfn performs below  
representation transform:  
T
FAdNDP = C F C  
C = XAONAOc  
AO  
where FAO is the Fock matrix in original basis function that loaded from user-provided file, C(r,i)  
corresponds to coefficient of basis function r in AdNDP orbital i. c(s,i) corresponds to coefficient of  
NAO s in AdNDP orbital i. XAONAO is transformation matrix between original basis function and  
NAO, i.e. X(t,s) is coefficient of basis function t in NAO s. Energy of AdNDP orbital j is simply  
FAdNDP(j,j), which is expectation value of Fock operator of AdNDP orbital wavefunction.  
3
.17.2 Input file  
The output file of NBO program containing density matrix in NAO basis (DMNAO) can be  
used as input file forAdNDPanalysis. If you also need to visualizeAdNDP orbitals or export orbitals  
as cube files, .fch file must be provided, meanwhile transformation matrix between NAO and  
original basis functions (AONAO) must be presented in the NBO output file.  
Assume that you are a Gaussian user, in order to obtain an Gaussian output file containing all  
information needed by Multiwfn to perform the AdNDP analysis and visualization, you should write  
a Gaussian input file of single point task with pop=nboread keyword in route section, and write  
$
NBO AONAO DMNAO $END after molecular geometry section with a blank line as separator.  
Then run the input file by Gaussian and then convert .chk file to .fch format by formchk utility.  
The Gaussian output file (not .fch file) should be used as the initial input file when Multiwfn  
boots up. Once you entered AdNDP module, Multiwfn will load NAO information and DMNAO  
matrix from this file. If then you choose corresponding options to visualize or export orbitals,  
AONAO matrix will be loaded and the program will prompt you to input the path of the .fch file  
(if .fch is in the same folder and has identical name as the Gaussian output file, then the .fch will be  
automatically loaded).  
Multiwfn is also compatible with the output files of stand-alone NBO program (GENNBO), of  
course you have to add DMNAO keywords in $NBO section in .47 file. In this case it is impossible  
to visualize AdNDP orbitals.  
Formally, AdNDP approach is also applicable to open-shell systems; of course, the occupation  
threshold should be divided by 2. When you enter AdNDP module, Multiwfn will ask you which  
density matrix should be used, the so-called total density matrix is the sum of alpha and beta density  
matrix.  
Notice that if after you entered AdNDP module Multiwfn suddenly crashes, and the basis set  
you used contains diffuse functions, you can try to use another basis set without diffuse functions.  
This problem is caused by the bug in NBO 3.1 module, namely in rarely cases the DMNAO output  
may be slightly problematic if diffuse functions present. Since AdNDP analysis is quite insensitive  
to diffuse functions, they can be safely removed without any loss of accuracy.  
If you want to obtain AdNDP orbital energies, Fock matrix corresponding to present system at  
1
63  
 
3
Functions  
the same calculation level must be provided in lower-triangular sequence in a plain text file, namely:  
F(1,1) F(2,1) F(2,2) F(3,1) F(3,2) F(3,3) ... F(nbasis,nbasis), where nbasis is the total number of  
basis functions. The format is free. If you are a Gaussian user, you can add archive file=XXX  
keyword between $NBO ... $END, then in the resulting XXX.47 file, search $FOCK and copy all  
data between $FOCK ... $END to a plain text file, then this file can be directly used to provide Fock  
matrix to Multiwfn (In fact, Multiwfn is also able to automatically locate and read the $FOCK field  
when the file name has .47 suffix).  
3
.17.3 Options  
All of the options involved in AdNDP module are introduced below, some options are invisible  
in certain cases. If current candidate orbital list is not empty, then all candidate orbitals will always  
be printed on screen in front of the menu (except when you select option 5 or 13), the candidate  
orbital indices are determined according to occupation numbers. The number of residual valence  
electrons of all atoms in the search list is always printed at the upper of the menu, this value  
decreases with gradually picking out candidate orbitals as final AdNDP orbitals. If this value is very  
low (e.g. lower than 1.4), it is suggested that new Nc-2e AdNDP orbitals will be impossible to be  
found between the atoms in the search list.  
-10 Return to main menu: Once you choose this option, you will return to main menu,  
meantime all results of AdNDP analysis will be lost. Hence the status of AdNDP module can be  
reseted by choosing this option and then re-entering the module.  
-2 Various other settings and functions: This options have several unimportant subfunctions  
and settings. The option "Set maximum number of candidate orbitals to be printed" is worth to  
mention, it is used to set how many candidate orbitals will be printed on screen, proper choice of  
the threshold can avoid excessive output when very large number of candiates are found.  
-1 Define exhaustive search list: In this option, one can customly define search list, exhaustive  
search (option 2) will only apply to the atoms in the search list. All commands in this defining  
interface are self explanatory. Notice that default search list includes all atoms of the molecule.  
0
Pick out some candidate orbitals and update occupations of others: Users need to input  
two numbers, e.g. i,j, then all candidate orbitals from i to j will be picked out and saved as final  
AdNDP orbitals. If user only input one number, e.g. k, then k candidate orbitals with the largest  
occupation numbers will be picked out. After that, the eigenvectors (orbital shape) and eigenvalues  
(occupation numbers) of remained candidate orbitals will be updated as mentioned earlier.  
1
Perform orbitals search for a specific atom combination: Users need to input indices of  
some atoms, e.g. 3,4,5,8,9, then sub-block of density matrix for atom 3,4,5,8,9 will be constructed  
and diagonalized, all resultant eigenvectors will be added to candidate orbitals list, meantime all  
previous candidate orbitals will be removed. There is no limit on the number of inputted atoms.  
2
Perform exhaustive search of N-centers orbitals within the search list: N atoms will be  
selected out from the search list in an exhaustive manner, assume that the search list contains M  
atoms, then totally M!/(M-N)!/N! atom combinations will be formed. For each combination,  
corresponding sub-block of density matrix will be constructed and diagonalized, all eigenvectors  
with eigenvalues larger than user-defined threshold will be add to candidate orbital list. Old  
candidate orbital list will be cleaned.  
3
Set the number of centers in the next exhaustive search: Namely set the value N in option  
2
. Once exhaustive search of N-centers orbitals is finished, N will be automatically increased by one.  
1
64  
 
3
Functions  
4
Set occupation threshold in the next exhaustive search: Namely set the threshold used in  
option 2.  
5
Show information of AdNDP orbitals: Print occupation numbers and involved atoms of all  
saved AdNDP orbitals.  
6
Delete some AdNDP orbitals: Input two numbers, e.g. i, j, then saved AdNDP orbitals from  
i to j will be removed.  
7
Visualize AdNDP orbitals and molecular geometry: The path of corresponding .fch file  
will be prompted to be inputted, after loading some necessary information from the file, a GUI  
window will pop up and molecular geometry will be shown. Isosurfaces of AdNDP orbitals can be  
plotted by clicking corresponding numbers in the right-bottom list  
8
Visualize candidate orbitals and molecular geometry: Analogous to option 7, but used to  
visualize isosurfaces of candidate orbitals. It is useful to visualize the isosurfaces before picking out  
some candidate orbitals as final AdNDP orbitals.  
9
Export someAdNDP orbitals to Gaussian-type cube files: User need to choose grid setting  
and then input index range, e.g. 2-4, then wavefunction value of AdNDP orbitals 2, 3, 4 will be  
calculated and exported to AdNDPorb0002.cub, AdNDPorb0003.cub and AdNDPorb0004.cub in  
current folder, respectively. They are Gaussian-type cube files and can be visualized by many  
softwares such as VMD.  
1
0 Export some candidate orbitals to Gaussian-type cube files: Analogous to option 9, but  
used to export cube files for candidate orbitals.  
1/12 Save/Load current density matrix and AdNDP orbital list: Option 11 is used to save  
1
current density matrix and AdNDP orbital list in memory temporarily, when density matrix and  
AdNDP orbital list is changed, you can choose option 12 to recover previous state.  
1
3 Show residual density distributions on the atoms in the search list: After choosing this  
option, population number of each atom in the search list will be calculated according to present  
density matrix and then printed out. If some neighboring atoms have large population number, it is  
suggested that multi-center orbitals with high occupation number may appear on these atoms; while  
the atoms with low population number often can be ignored in the following searching process.  
Thus this option is very helpful for setting up user-directed searching.  
1
4 Export AdNDP orbitals as .molden file: Via this option, all picked AdNDP orbitals will  
be exported as AdNDP.molden in current folder (see Section 2.5 for introduction of .molden format).  
By using this file as input file, you can perform various kinds of analyses for AdNDP orbitals (e.g.  
orbital composition analysis by main function 8, plotting plane map via main function 4). Note that  
if there are N basis functions and M AdNDP orbitals have been picked out, then the first M orbitals  
in the AdNDP.molden will correspond to the AdNDP orbitals, while the other N-M orbitals in this  
file are meaningless and can be simply ignored.  
1
5 Evaluate and output composition of AdNDP orbitals: This option is used to calculate  
orbital composition of picked AdNDP orbitals by natural atomic orbital (NAO) method, which has  
been introduced in Section 3.10.4.  
1
6 Evaluate and output energy of AdNDP orbitals: This function is used to evaluate energy  
of AdNDP orbitals that have already been picked out. Multiwfn will prompt you to input the path of  
the file containing Fock matrix in original basis functions, the elements of the matrix should be  
recorded in lower-triangular sequence, the NBO .47 file containing $FOCK field can also be directly  
used as input file. Then after a simple transformation, orbital energies are immediately outputted.  
1
65  
3
Functions  
AdNDP analysis is relatively complicated and not a blackbox, please follow the examples in  
Section 4.14 before using this module to analyze your systems.  
Information needed: NBO output file (with AONAO DMNAO keywords), .fch file (only  
needed when visualizing and exporting cube file for AdNDP orbitals, or exporting AdNDP orbitals  
as .molden file), plain text file (containing Fock matrix. Only needed if you want to gain orbital  
energies)  
3
.18 Fuzzy atomic space analysis (15)  
3
.18.0 Basic concepts  
Before introducing each individual function, here I first introduce some basic concepts of fuzzy  
atomic space.  
Atomic space is the local space attributed to specific atom in the whole three-dimension  
molecular space. Below we will express atomic space as weighing function w. The methods used to  
partition the whole space into atomic spaces can be classified to two categories:  
1
Discrete partition methods: The two representative methods are Bader's partition (also  
known as AIM partition) and Voronoi partition. They partition molecular space discretely, so any  
point can be attributed to only one atom, in other words,  
w (r) = 1 if r A  
A
w (r) = 0 if r A  
A
where ΩA is atomic space of atom A.  
Fuzzy partition methods: The representative methods include Hirshfeld, Becke, Hirshfeld-  
2
I and ISA. They partition molecular space contiguously, atomic spaces overlap with each other, any  
point may simultaneously attributed to many atoms to different extent, and the weights are  
normalized to unity. In other words, below two conditions hold for all atoms and any point  
0
 w (r)  1 A  
A
w (r) = 1  
B
B
The most significant advantage of fuzzy partition may be that the integration of real space  
function in fuzzy atomic space is much easier than in discrete atomic space. By using Becke's  
numerical DFT integration scheme (J. Chem. Phys., 88, 2547 (1988)), high accuracy of integration  
in fuzzy atomic space can be achieved for most real space functions at the expense of relatively low  
computation effort. In the fuzzy atomic space analysis module of Multiwfn, all integrations are  
realized by this scheme. The more integration points are used, the higher integration accuracy can  
be reached, one can adjust the number of points by "radpot" and "sphpot" parameter in settings.ini.  
In fuzzy atomic space analysis module of Multiwfn, one can obtain many properties that based  
1
66  
 
 
3
Functions  
on fuzzy atomic spaces. Currently, the most widely used definitions of fuzzy atomic spaces, namely  
Hirshfeld, Hirshfeld-I and Becke are supported, they are introduced below. One can choose which  
fuzzy atomic spaces will be used by option -1.  
Hirshfeld atomic space: In Theor. Chim. Acta (Berl.), 44, 129 (1977), Hirshfeld defined the  
atomic space as  
free  
A
free  
B (r  R )  
(r  R )  
Hirsh  
A
wA (r) =  
A
B
where R is coordinate of nucleus, ρfree denotes spherically averaged atomic electron density in free-  
state.  
In option -1, you will found two options "Hirshfeld" and "Hirshfeld*". The former uses  
atomic .wfn files to calculate the weights, they must be provided by yourself or let Multiwfn  
automatically invoke Gaussian to generate them, see Secion 3.7.3 for detail. The latter evaluates the  
weights directly based on built-in radial atomic densities and thus is more convenient, detail can be  
found in Appendix 3. I strongly suggest using "Hirshfeld*" instead of "Hirshfeld".  
Hirshfeld-I (HI) atomic space: This is a well-known extension of Hirshfeld method, it was  
proposed in J. Chem. Phys., 126, 144111 (2007). Commonly the atomic space defined by HI is more  
physically meaningful than that of Hirshfeld, since it can respond actual molecular environment.  
Unfortunately, HI is much more expensive than Hirshfeld due to its iterative nature. Details of  
Hirshfeld-I and its implementation in Multiwfn have been introduced in Section 3.9.13 and thus will  
not be repeated here. When you choose HI in option -1, Multiwfn will first perform regular HI  
iterations (If you are confused by the operations, please consult the example of computing HI  
charges in Section 4.7.4). After HI atomic spaces have converged, you can do subsequent analyses.  
Becke atomic space: First, consider a function p  
3
p(d) = (3/ 2)d (1/ 2)d  
which can be iterated many times  
f (d) = p(d)  
1
f (d) = p[p(d)]  
2
f (d) = p{p[p(d)]}  
3
...  
Then define a function s  
The plot of sk versus to t is  
s (t) = (1/ 2)[1 f (t)]  
k
k
1
67  
3
Functions  
1.0  
0.9  
0.8  
0.7  
0.6  
0.5  
0.4  
0.3  
0.2  
0.1  
0.0  
k=1  
k=2  
k=3  
k=4  
k=5  
-1.0 -0.8 -0.6 -0.4 -0.2  
0.0  
0.2  
0.4  
0.6  
0.8  
1.0  
t
From above graph it can be seen that sk gradually reduces from 1 to 0 with t varying from -1 to  
. The larger the k is, the sharper the curve becomes. The weighting function of Becke atomic space  
1
is based on simple transformation of sk, for details please consult original paper J. Chem. Phys., 88,  
547 (1988).  
2
P (r)  
Becke  
A
wA (r) =  
P (r)  
B
B
2
P (r) =  
s ( (r))  
 (r) =  (r) + a (1  (r) )  
A
k
AB  
AB  
AB  
AB  
AB  
BA  
cov  
u
1  
RA  
AB  
2
AB  
AB  
aAB  
=
uAB  
=
AB  
=
cov  
uAB 1  
+1  
RB  
aAB = −0.5 if aAB  −0.5  
aAB = 0.5 if aAB  0.5  
r  r  
RAB  
A
B
AB (r) =  
RAB = R  R  
r = r  R  
r = r  R  
A
B
A
A
B
B
where R stands for coordinates of nucleus. Rcov denotes covalent radius.  
The number of iterations, namely k value, can be set by option -3. The default value (3) is  
appropriate for most cases. The definition of the covalent radius used to generate Becke atomic  
space can be chosen by option -2. Through corresponding suboptions, one can directly select a set  
of built-in radii (CSD radii, modified CSD radii, Pyykkö radii, Suresh radii, Hugo radii), load radii  
information from external plain text file (the format required is described in the program prompts),  
or modify current radii by manual input.  
The origin paper of CSD radii is Dalton Trans., 2008, 2832, these radii were deduced from  
statistic of Cambridge Structural Database (CSD) for the elements with atomic numbers up to 96.  
Pyykkö radii was defined in Chem. Eur. J., 15, 186 (2008), which covers the entire periodic table,  
Groups 1–18, Z=1–118. Suresh radii was proposed in J. Phys. Chem. A, 105, 5940 (2001), which is  
based on theoretically calculated geometries of H3C-EHn, the defined radii cover most of main group  
and transition elements in periodic table. Hugo radii was proposed in Chem. Phys. Lett., 480, 127  
1
68  
3
Functions  
(2009), which has clear physical meaning and is based on atomic ionization energy. Notice that  
Hugo radii for hydrogen is rather large (even larger than Kr by 0.01 Bohr).  
I found it is inappropriate to directly use any covalent radii definition shown above to define  
Becke's atomic space. The covalent radii of metal elements in IA and IIA groups are always large,  
e.g. CSD radius of lithium is 1.28 Å. While covalent radii of elements in such as VIIA group are  
always small, e.g. CSD radius of fluorine is only 0.58 Å. For main groups, the elements with small  
(large) covalent radius generally have large (small) electronegativity. So, in molecule environment,  
the atoms with small (large) covalent radius prefer to withdraw (donate) electrons to expand (shrink)  
their effective size, this behavior makes actual radii of main group elements in each row equalized.  
In order to faithfully reflect this behavior, I defined the so-called "modified CSD radii", namely the  
CSD radii of all main group elements (except for the first row) are replaced by CSD radii of the IVA  
group element in corresponding row, while transition elements still use their original CSD radii. The  
modified CSD radii are the default radii definition for Becke's atomic space.  
The Becke atomic space of carbon in acetamide constructed by default parameters is illustrated  
below  
3
.18.1 Integration of a real space function in fuzzy atomic spaces (1)  
This function is used to integrate real space function P in atomic spaces  
I = w (r)P(r)dr  
A
A  
A
For example, if P is chosen as electron density, then IA will be the electron population number  
of atom A.  
P may be also chosen as the real space functions involving coordinates of two electrons, such  
as exchange-correlation density and source function. For this case, the coordinate of reference point  
can be set by option -10 (this is equivalent to set "refxyz" in settings.ini). If you have carried out  
topology analysis, you can also use -11 to set a critical point as reference point, this is especially  
convenient for studying source function (for which bond critical point is usually set as reference  
1
69  
 
3
Functions  
point).  
The "% of sum" and "% of sum abs" in output is defined as (I / I )100% and  
A
B
B
(
I /  
I )100% , respectively.  
A
B
B
By default, all atomic spaces will be integrated. If you only need integral value of certain atoms,  
you can use option -5 to define the atom list.  
Special note: This option uses single-center integration grid to integrate each atom, commonly this is no problem.  
However, if you choose to use Hirshfeld or Hirshfeld-I partition, and the real space function to be integrated varies  
very fast around nuclei (e.g. Laplacian of electron density), then this option is unable to give accurate result. You  
should use option 101 (invisible in the interface) instead, which employs molecular integration grid to integrate every  
Hirshfeld atoms, the result is always very accurate.  
3
.18.2 Integration of a real space function in overlap spaces (8)  
This function is used to integrate specified real space function P in overlap spaces between  
atom pairs  
I
=
w (r)w (r)P(r)dr  
A B  
AB A  
For example, if P is chosen as electron density, then IAB will be the number of electrons shared  
by atom A and B. P may be also chosen as the real space functions involving coordinates of two  
electrons.  
Integrations of positive and negative parts of P are outputted separately. Meanwhile, sum of  
diagonal elements  
I
, sum of non-diagonal elements  
I
and sum of all elements  
AA  
 AB  
A
A BA  
I
for positve and negative parts are also outputted together.  
AB  
A
B
Currently only the fuzzy atomic space defined by Becke can be used together with this function.  
3
.18.3 Calculate atomic and molecular multipole moments (2)  
This function is used to evaluate atomic and molecular monopole, dipole, quadrupole moments  
and octopole moments. All units in the output are in a.u.  
In below formulae, superscript A means an atom named A. x, y and z are the components of  
electron coordinate r relative to nuclear coordinate R.  
A
x
A
y
A
z
x = r  R  
y = r  R  
z = r  R  
x
y
z
2
2
2
2
and r = x + y + z .  
Atomic monopole moment due to electrons is just negative of electron population number  
p = − w (r)(r)dr  
A
A
A
Atomic charges are outputted together, namely qA = pA + ZA, where Z denotes nuclear charge.  
Atomic dipole moment is useful to measure polarization of electron distribution around the  
atom, which is defined as  
1
70  
 
 
3
Functions  
A
x
  
   
x
A
A
y
   
μ =   
= −  
y w (r)(r)dr  
A
A
   
A
  
   
z
z
   
Its magnitude, or say its norm is  
A
A
x
2
A
y
2
A 2  
z
μ = ( ) + ( ) + ( )  
Multiwfn also outputs the contribution of present atom to total molecular dipole moment,  
A
which is evaluated as qAR +  .  
Cartesian form of atomic quadrupole moment tensor is defined as (see Section 1.8.7 of book  
The Quantum Theory of Atoms in Molecules-From Solid State to DNA and Drug Design).  
A
xx  
A
xy  
A
xz  
2
2
   
3x  r  
3xy  
3xz   
A
A
yx  
A
yy  
A
1
2
2
2
3yz  
Θ =   
yz  
= −  
3yx  
3y  r  
w (r)(r)dr  
A
A
A
zx  
A
zy  
A
2
2
   
3zx  
3zy  
3z  r   
zz  
whose magnitude can be calculated as  
A
A
xx  
2
A
yy  
2
A 2  
zz  
Θ = (2/ 3) [( ) + ( ) + ( ) ]  
Atomic quadrupole moments in Cartesian form can be used to exhibit the deviation of the  
distribution from spherical symmetry. Specifically,  < 0 ( >0) indicates that the electron  
푥푥  
푥푥  
density of atom A is elongated (contracted) along X axis. If the atomic electron density has spherical  
symmetry, then Θxx = Θyy = Θzz. Noticeably, the Cartesian quadruple moment tensor Θ given here is  
in traceless form, that means the condition Θxx + Θyy + Θzz = 0 always holds.  
The atomic quadrupole and octopole moments in spherical harmonic form are also outputted.  
The general expression of multipole moments in spherical harmonic form is  
A
l,m  
A
l,m  
Q = − R (r)w (r)(r)dr  
A
A
All of the five components of quadrupole moment in spherical harmonic form correspond to  
2
2
R = (3z  r ) / 2  
2
,0  
R2,1 = 3yz R = 3xz  
2,1  
2
2
R2,2 = 3xy R = ( 3 / 2)(x  y )  
2,2  
All of the 7 components of octopole moment in spherical harmonic form correspond to  
2
2
R = (1/ 2)(5z  3r )z  
3,0  
2
2
2
2
R3,1 = 3/ 8(5z  r )y R = 3/ 8(5z  r )x  
3,1  
2
2
R3,2 = 15xyz  
R = ( 15 / 2)(x  y )z  
3,2  
2
2
2
2
R3,3 = 5 / 8(3x  y )y R = 5 / 8(x  3y )x  
3,3  
The magnitude of multipole moments in spherical harmonic form is calculated as  
1
71  
3
Functions  
A
l
A
l,m  
2
Q =  
(Q )  
m
At the end of the output, the total number of electrons, molecular dipole moment and its  
magnitude are outputted. Molecular dipole moment is calculated as the sum of all contributions  
from atomic dipole moments and atomic charges (i.e. the sum of all "Contribution to molecular  
dipole moment" terms in the output information)  
mol  
A
A
μ
=
(q R + μ )  
A
A
In addition, Multiwfn outputs molecular quadruple and octopole moments in Cartesian form and  
spherical harmonic form. For example, molecular quadruple moment of Θxy is evaluated as  
3
2
A
x
A
y
xy  
=
R R Z  xy(r)dr  
  
A
A
By default, atomic multipole moments for all atoms are evaluated, and multipole moments of  
the whole system are printed at the end. If you only need multipole moments of some atoms, you  
can use option -5 to define an atom list, in this case the multipole moments of selected atoms will  
be calculated and outputted. In addition, via this feature you can calculate multipole moments of a  
molecule in a molecular complexes, or calculate multipole moments of a fragment in a molecule,  
because in this case the "Molecular dipole and multipole moments" printed at the end of output are  
only contributed by the atoms in the defined list. See example in Section 4.15.3 for illustration of  
use of this feature.  
PS: If your purpose is only calculating electric dipole and multipole moments for the whole system, it is best to  
use the function described in Section 3.300.5, it is significantly faster and more accurate since it calculates them  
analytically.  
3
.18.4 Calculate atomic overlap matrix (3)  
This function is used to calculate atomic overlap matrix (AOM) for molecular orbitals or  
natural orbitals in atomic spaces, the AOM will be outputted to AOM.txt in current folder. The  
element of AOM is defined as  
S (A) =  (r) (r)dr  
ij  
i
j
A
where i and j are orbital indices. Notice that the highest virtual orbitals will not be taken into account.  
For example, present system has 10 orbitals in total, 7,8,9,10 are not occupied, and user has set the  
occupation number of orbital 3 to zero by option 26 in main function 6, then the dimension of each  
AOM outputted by Multiwfn will be (6,6), corresponding to the overlap integral between the first 6  
orbitals in each atomic space.  
Since orbitals are orthonormal in whole space, in principle, summing up AOMs for all atoms  
(corresponding to integrating in whole space) should yield an identity matrix  
SUM = S(A) = I  
A
Of course, this condition does not strictly hold, because the integration is performed numerically as  
mentioned earlier. The deviation of SUM to identity matrix is a good measure of numerical  
integration accuracy  
1
72  
 
3
Functions  
SUM  I  
i, j  
i, j  
i
j
Error =  
Natom  
Multiwfn automatically calculates and outputs the "Error" value. If "Error" is not small enough,  
e.g. >0.001, then you may want to improve the integration accuracy by increasing "radpot" and  
"sphpot" in settings.ini.  
For unrestricted HF/DFT or unrestricted post-HF wavefunction, AOM for and β orbitals will  
be outputted respectively.  
3
.18.5 Calculate localization and delocalization index (4)  
For open-shell systems, the LI () and DI () are calculated for each spin of electrons  
respectively. Below only the expression of LI and DI for  electrons is given. For β electrons, just  
replacing  with β, similarly hereinafter. The electrons in atomic space A that can delocalize to  
atomic space B is computed as  
,tot  
(AB) = −B XC  
(r ,r )dr dr  
1 2 1 2  
A
where ГXC is exchange-correlation density; if you are not familiar with it, please consult the  
discussion in part 17 of Section 2.6. The electrons in atomic space B that can delocalize to atomic  
space A is  
,tot  
(B  A) = − A XC  
(r ,r )dr dr  
1 2 1 2  
B
Clearly, above two terms are identical in value, therefore we define DI between A and B as below,  
it measures the total number of electrons shared by atom A and B  
,tot  
(A,B) =  (A B) + (B  A) = −2  
A B XC  
(r ,r )dr dr  
1 2 1 2  
The LI measures the number of  electrons localized in an atom. Note that this quantity is not  
additive.  
,tot  
(A) = − A XC  
(r ,r )dr dr =  (A, A) / 2  
1
2
1
2
A
The relationship between LI, DI and the population number of electrons in atomic space is  
given below, the physical meaning is that the sum of electrons of atom A that localized in atom A  
and that delocalized to other regions is the total number of electrons of space A.  
=
(A) + (1/ 2)  
 (A, B)   (A) +  (A  B) =  
BA  
BA  
,tot  
A
  
(r ,r )dr dr =  (r)dr = N  
XC  
1
2
1
2
A
A
Using the approximate expression of ГXC, the DI and LI can be explicitly written as  
(A, B) = 2  
 S (A)S (B)  
i
j
ij  
ij  
ij  
(A) =  
 S (A)S (A)  
i
j
ij  
ij  
ij  
1
73  
 
3
Functions  
Total DI and LI are the summation of part and β part  
(A,B) =  (A,B) + (A,B)  
(A) =  (A) +  (A)  
Since in closed-shell case  (A,B) = (A,B) , one can evaluate total DI as  
m n  
(A, B) = 2 (A, B) = 22  
S (A)S (B) = 2  
  S (A)S (B)  
mn  
mn  
  
m
n
mn  
mn  
2
2
m
n
m
n
where m and n denote closed-shell natural orbitals. Similarly, the total LI for closed-shell cases is  
(A) =  
  S (A)S (A)  
m
n
mn  
mn  
m
n
For closed-shell systems, it is argued that the value of total DI is a quantitative measure of the  
number of electron pairs shared between two atoms. For example, total (A,B)=1.0 implies a pair of  
electron (an  and a  electrons) is shared between atom A and B. (In fact, this is strictly true only  
for nonpolar bonds such as H-H bond in H2. In polar bonds, the DI must be lower than formal bond,  
because what total DI actually reflects is the effective number of electron pairs shared by two atoms  
and thus somewhat reflects covalency. Note that the value of DI is very sensitive the definition of  
atomic space employed)  
For single-determinant wavefunction, because of integer occupation number of orbitals, DI and  
LI can be simplified as  
occ occ  
(A,B) = 2  
S (A)S (B)  
ij ij  
ij  
occ occ  
(A,B) = 4  
S (A)S (B)  
mn mn  
m
n
occ occ  
(A) =  
S (A)S (A)  
ij ij  
ij  
occ occ  
(A) = 2  
S (A)S (A)  
mn mn  
m
n
Conventionally, LI and DI are calculated in AIM atomic space (also called as AIM basin).  
While in fuzzy atomic space analysis module of Multiwfn, they are calculated in fuzzy atomic space,  
the physical nature is the same. According to the discussion presented in J. Phys. Chem. A, 109,  
9
904 (2005) (compare Eq. 13 and Eq. 18), the DI calculated in fuzzy atomic space is just the so-  
called fuzzy bond order, which was defined by Mayer in Chem. Phys. Lett., 383, 368 (2004).  
For closed-shell system, atomic valence can be calculated as the sum of its fuzzy bond orders  
V(A) =  
(A, B)  
BA  
In Multiwfn, before calculating LI and DI, AOM is calculated first automatically, this is the  
most time-consuming step. For open-shell systems, the LI and DI for  and β electrons, as well as  
for all electrons are outputted respectively. Notice that the diagonal terms of DI matrix are calculated  
as the sum of corresponding off-diagonal row (or column) elements. For closed-shell system, as  
1
74  
3
Functions  
stated above, they correspond to atomic valence.  
For strictly planar molecules, because overlap integral of σ orbital and π orbital is exactly zero  
in atomic space, the contributions from σ and π electrons to DI can be exactly decomposed as DI-σ  
and DI-π  
(A, B) =  (A, B) +  (A, B)  
  
(A, B) = 2  
(A, B) = 2  
 S (A)S (B)  
  
i
j
ij  
ij  
ij  
  
 S (A)S (B)  
  
i
j
ij  
ij  
ij  
Similarly, LI can be decomposed as LI-σ and LI-π. Summing up corresponding off-diagonal  
elements in DI-σ and DI-π matrix gives σ-atomic valence and π-atomic valence, respectively. If you  
want to compute DI/LI-σ (DI/LI-π), before the DI/LI calculation, you should set the occupation  
numbers of all π orbitals (σ orbitals) to zero by subfunction 26 of main function 6.  
By the way, in some literatures, especially the ones written by Bernard Silvi, the variance of  
2
electronic fluctuation in atomic space σ (A) and the covariance of fluctuation of electron pair  
between two atomic spaces cov(A,B) are discussed. They are not directly outputted by Multiwfn,  
2
because there is a very simple relationship correlates σ (A), cov(A,B) and DI(A,B), thus you can  
calculate them quite easily, see Chem. Rev., 105, 3911 (2005) for derivation  
cov(A,B) = −(A,B)/2  
2
(A) = N (A) = −  
cov(A,B) = (A,B)/2  
A
BA  
BA  
where NA is the electron population number in A. As mentioned above, the diagonal terms of the DI  
matrix outputted by Multiwfn are calculated as the sum of off-diagonal elements in the  
2
corresponding row (or column), hence you can simply obtain σ by dividing corresponding diagonal  
term of DI matrix by two.  
2
A quantity closely related to σ is the relative fluctuation parameter introduced by Bader, which  
indicates the electronic fluctuations for a given atomic space relative to its electron population, you  
can calculate it manually if you want  
2
F(A) = (A) / N  
A
Alternatively, you can calculate below value to measure the proportion of the electrons localized in  
the atomic space  
l(A) = (A) / N  
A
3
.18.6 Calculate PDI (5)  
Para-delocalization index (PDI) is a quantity used to measure aromaticity of six-membered  
rings. PDI was first proposed in Chem. Eur. J., 9, 400 (2003), also see Chem. Rev., 105, 3911 (2005)  
for more discussion. PDI is essentially the averaged para-delocalization index (para-DI) in six-  
membered rings.  
1
75  
 
3
Functions  
(1,4) +(2,5) +(3,6)  
PDI =  
3
The basic idea behind PDI is that Bader and coworkers reported that DI in benzene is greater  
for para-related than for meta-related carbon atoms. Obviously, the larger the PDI, the larger the  
delocalization, and the stronger the aromaticity. The main limitation of the definition of PDI is that  
it can only be used to study aromaticity of six-membered rings, and it was shown that PDI is  
inappropriate for the cases when the ring plane has an out-plane distortion.  
In Multiwfn, before calculating PDI, AOM and DI are first calculated automatically. Then you  
will be prompted to input the indices of the atoms in the ring that you are interested in, the input  
order must be consistent with atom connectivity.  
PDI currently is only available for closed-shell systems, although theoretically it may be  
possible to be extended to open-shell cases.  
Note that for completely planar systems, since DI can be decomposed to  and π parts, PDI  
can also be separated as PDI-and PDI-π to individually study aromaticity and π aromaticity. In  
order to calculate PDI- (PDI-π), before enter present module, you should first manually set  
occupation number of all MOs except for π () MOs to zero (or you can utilize option 22 in main  
function 100 to do this step, which will be much more convenient).  
3
.18.7 Calculate FLU and FLU-π (6,7)  
Aromatic fluctuation index (FLU) was proposed in J. Chem. Phys., 122, 014109 (2005), also  
see Chem. Rev., 105, 3911 (2005) for more discussion. Like PDI, FLU is an aromaticity index based  
on DI, but can be used to study rings with any number of atoms. The FLU index was constructed by  
following the HOMA philosophy (see Section 3.100.13), i.e. measuring divergences (DI differences  
for each single pair bonded) from aromatic molecules chosen as a reference. FLU is defined as  
below  
2
ring  
1
V(B)  (A, B)  (A, B)   
ref  
FLU =  
   
   
n
V(A)  
(A,B)  
AB   
ref  
  
where the summation runs over all adjacent pairs of atoms around the ring, n is equal to the number  
of atoms in the ring, ref is the reference DI value, which is precalculated parameter.  is used to  
ensure the ratio of atomic valences is greater than one  
1 V(B) V(A)  
1 V(B) V(A)  
=
The first factor in the formula of FLU penalizes those with highly localized electrons, while  
the second factor measures the relative divergence with respect to a typical aromatic system.  
Obviously, lower FLU corresponds to stronger aromaticity.  
The dependence on reference value is one of main weakness of FLU. The default ref in  
Multiwfn for C-C, C-N, B-N are 1.468, 1.566 and 1.260 respectively, they are obtained from  
calculation of benzene, pyridine and borazine respectively under HF/6-31G* (geometry is optimized  
at the same level. Becke's atomic space with modified CSD radii and with sharpness parameter k=3  
is used to derive ref). Users can modify or add ref through option -4.  
1
76  
 
3
Functions  
The original paper of FLU also defined FLU-π, which is based on DI-π and π-atomic valence  
2
ring  
1
V (B)  
   
 (A, B)   
avg  
FLU =  
   
n
V (A)  
avg  
AB   
where π is the average value of the DI-π for the bonded atom pairs in the ring, and the other symbols  
denote the aforementioned quantities calculated using π-orbitals only. The advantage of FLU-π over  
FLU is that FLU-π does not rely on predefined reference DI value, while the disadvantage is that  
FLU-π can only be exactly calculated for planar molecules.  
Akin to FLU, the lower the FLU-π, the stronger aromatic the ring. If FLU-π is equal to zero,  
that means DI-π is completely equalized in the ring. The reasonableness to measure aromaticity by  
FLU-π is that aromaticity for most aromatic molecules are almost purely contributed by π electrons,  
rather than σ electrons.  
In fuzzy atomic space analysis module of Multiwfn, PDI, FLU and FLU-π are calculated in  
fuzzy atomic spaces. In J. Phys. Chem. A, 110, 5108 (2006), the authors showed that the correlation  
between the PDI, FLU and FLU-π calculated in fuzzy atomic space and the ones calculated in AIM  
atomic space is excellent.  
In Multiwfn, before calculating FLU and FLU-π, AOM will be calculated automatically. If you  
are calculating FLU-π, you will be prompted to input the indices of π orbitals, you can find out their  
indices by checking isosurface of all orbitals by main function 0. Then DI or DI-π matrix will be  
generated. Next, you should input the indices of the atoms in the ring, the input order must be  
consistent with atom connectivity. Besides FLU or FLU-π value, the contributions from each bonded  
atom pair are outputted too.  
FLU and FLU-π are only available for closed-shell system in Multiwfn. It is not well known  
whether FLU and FLU-π are also applicable for open-shell systems.  
3
.18.8 Calculate condensed linear response kernel (9)  
Linear response kernel (LRK) is an important concept defined in DFT framework, which can  
be written as  
2
E  
  (r )   
1
(r ,r ) =   
 =   
1
2
 (r ) (r )  
 (r )  
1
2
N
2
N
This quantity reflects the impact of the perturbation of external potential at r2 on the electron density  
at r1, which may also be regarded as the magnitude coupling between electron at r1 and r2.  
In Multiwfn, LRK is evaluated by an approximation form based on second-order perturbation  
theory (see Eq.3 of Phys. Chem. Chem. Phys., 14, 3960 (2012))  
*
*
j
i (r ) (r ) (r ) (r )  
1
j
1
2
i
2
(r ,r ) 4  
1
2
  
i   
iocc jvir  
j
where φ is molecular orbital, ε stands for MO energy. Note that this approximation form is only  
applicable to HF/DFT closed-shell systems, therefore present function only works for HF/DFT  
1
77  
 
3
Functions  
closed-shell systems.  
Condensed linear response kernel (CLRK) is calculated as  
S (A)S (B)  
ij  
ji  
A,B  
=
(r ,r )dr dr = 4  
1
2
1
2
   
 B  
A
i   
iocc jvir  
j
where A and S(A) denote fuzzy atomic space and atomic overlap matrix for atom A, similar for atom  
B. In Phys. Chem. Chem. Phys., 15, 2882 (2013), it was shown that CLRK is useful for investigation  
of aromaticity and anti-aromaticity.  
Present function is used to calculate CLRK between all atom pairs in current system, and the  
result will be ouputted as a matrix. Due to evaluation of LRK requires virtual MO information, in  
current version .mwfn/.fch/.molden/.gms file must be used as input file.  
Note that CLRK can be decomposed to orbital contribution, e.g. for MO i  
S (A)S (B)  
(
i)  
ij  
ji  
= 4  
A,B  
i    
jvir  
j
For instances, assume that you want to evaluate the contribution from MO 3,4,7, then before  
calculating CLRK, you should enter main function 6 and use option 26 to set occupation number of  
all MOs except for 3,4,7 to zero. (Note that the virtual MOs used to calculate LRK will automatically  
still be the original virtual MOs, rather than the ones after modification of MO occupation numbers.)  
3
.18.9 Calculate para linear response index (10)  
The definition of para linear response index (PLR) has an analogy to PDI, the only difference  
is that DI is replaced by CLRK  
1,4  
+ 2,5 + 3,6  
PLR(A, B) =  
3
In Phys. Chem. Chem. Phys., 14, 3960 (2012), the authors argued that PLR is as useful as PDI  
in quantitatively measuring aromaticity, and it is found that the linear relationship between PLR and  
2
PDI is as high as R =0.96.  
Present function is used to calculate PLR. Multiwfn will first calculate CLRK, and then you  
should input the indices of the atoms consituting the ring in quesiton, e.g. 3,5,6,7,9,2. The input  
order must be consistent with atom connectivity. Then PLR will be immediately outputted on screen.  
PLR is only applicable to HF/DFT closed-shell systems, and currently .mwfn/.fch/.molden/.gms  
must be used as input file.  
Note that for completely planar systems, PLR can be exactly separated as PLR- and PLR-π  
to individually study  aromaticity and π aromaticity. In order to calculate PLR- (PLR-π), before  
enter present module, you should first manually set occupation number of all MOs except for π ()  
MOs to zero (or you can utilize option 22 in main function 100 to do this step, which will be much  
more convenient).  
1
78  
 
3
Functions  
3
.18.10 Calculate multi-center delocalization index (11)  
n-center multi-center DI is calculated as  
n1  
(A, B,C...H) = 2  
S (A)S (B)S (C)S (H)  
q
  ij  
jk  
kl  
qi  
i
j
k
where i, j, k... only cycle occupied orbitals. The normalized form of multi-center DI is defined as  
1/n  
, and may be compared between rings with different number of members.  
Currently this function is only available for single-determinant closed-shell wavefunctions, and  
supports up to 10 centers. Note that for relatively large size of systems, calculating multi-center DI  
for more than 6 centers may be quite time-consuming.  
3
.18.11 Calculate information-theoretic aromaticity index (12)  
In ACS Omega, 3, 18370 (2018) it is shown that arithmetic mean of some information-theoretic  
quantities of the atoms constituting a ring has good linear relationship with other widely accepted  
aromaticity indices, such as HOMA and aromatic stabilization energy (ASE). It is thus clear that the  
arithmetic mean may be used as index for measuring aromaticity, although this point needs to be  
further explored.  
The information-theoretic aromaticity index, namely the above-mentioned arithmetic mean can  
be calculated via subfunction 12 of fuzzy analysis module. After entering this function, you should  
choose the way of defining atomic information-theoretic quantity, three choices are currently  
available:  
Atomic Shannon entropy: s (A) = − (r)ln (r)w (r)dr  
S
A
2
Atomic Fisher information: i (A) = |(r) | /(r)w (r)dr  
F
A
Atomic GBP entropy: sGBP(A) = (3/2)(r){ + ln[t(r)/t (r)]}w (r)dr  
TF  
A
Essentially, the three quantities correspond to the integral of user-defined functions 50, 51 and 54 in  
fuzzy atomic space. In this function, you also need to input the index of the atoms in the ring. Once  
calculation of the selected quantity for all atoms in the ring is finished, the average will be shown,  
and it can be regarded as an aromaticity index.  
Before using this function, you can firstly select the way of defining atomic space. In the  
original paper, Hirshfeld partition was employed, while the default partition method of the