6.6 Special functions¶
There are some special functions in Multiwfn, they are mainly used for debugging, special purposes, and some of them are requested by some Multiwfn users. Here a few of them are mentioned.
6.6.1 Add Bq atoms at specific positons¶
Sometimes we want to highlight special positions on a 3D map, for example, the reference point, centroid position of a real space function, the position used to plot local DOS and so on. To realize this, you can enter main function 1000, select subfunction 12, and manually input the X, Y, Z coordinate of the Bq atoms (ghost atoms) to be added. You can add arbitrary number of Bq atoms. Once all Bq atoms have been added, input q to return. Then in the GUI showing 3D molecular structure you will see the Bq atoms, which are displayed as cyan spheres. It is worth to note that in the main function 0, you can choose showing or not showing labels of Bq atoms by selecting corresponding term in "Other settings" - "Set atomic label type".
6.6.2 Calculate nuclear attractive energy between a fragment and an orbital¶
You can use this function by entering subfunction 90 of main function 1000 (hidden in main menu). This function calculates attractive energy between all nuclei in a user-defined fragment and an orbital, namely:
During the calculation, the atomic contributions to the result are outputted in turn, for example, below output
means
where \(w_{\mathrm{2H}}(\mathbf{r})\) is atomic weighting function of 2H atom defined by Becke's partition.
The integral is evaluated by Becke's multi-center integration method, therefore the "radpot" and "sphpot" in settings.ini affect integral accuracy. Commonly the default value is accurate enough. Note that, as shown in above formula, the occupation number of orbital is not taken into account in the calculation.
Information needed
GTFs, atom coordinates
6.6.3 Output Becke's integration points¶
The Becke's multi-center numerical integration algorithm proposed in J. Chem. Phys., 88, 2547 (1988) has been employed by almost all popular quantum chemistry programs to integrate exchange-correlation functionals, it is also employed by Multiwfn in many wavefunction analysis functions, for example, calculating Hirshfeld charge and ADCH charge, fuzzy atomic space analysis (main function 15) and so on.
Via subfunction 93 of main function 1000 (a hidden function), you can export integration points of the Becke's algorithm to intpt.txt in current folder. The meaning of each column will be explicitly shown on screen after exporting. The number of integration points is determined by "radpot" and "sphpot" in settings.ini. The position and weight of angular grid are determined by Lebedev method, while those of radial grid are determined by second kind Gauss-Chebyshev method.
After entering this function, Multiwfn asks you if also outputting Becke's integration weights. If you input y, the weights will be calculated and outputted together.
Information needed
Atom coordinates
6.6.4 Make orbitals equivalent to basis functions¶
This function is subfunction 15 of main function 1000. Via this function, you can make orbitals equivalent to basis functions, the orbital index will correspond to basis function index. After using this function, you can use main function 0 to visualize isosurface of basis functions to understand their spatial distribution, and you can also use main functions 3 and 4 to plot curve map and plane map for basis functions, respectively.
Information needed
Basis functions
6.6.5 Generating promolecular wavefunction¶
If you want to generate promolecular wavefunction, so that you can study various promolecular properties, you can use a special function in Multiwfn devoted for this purpose: You should first load actual wavefunction file of the present system when boots up, then enter subfunction 17 of main function 1000. Multiwfn will prepare .wfn file of all atoms in the present system, the situation is exactly the same as that described in Section 3.7.3. Note that the basis set used for the atomic wavefunction file must be exactly the same as that used for the actual wavefunction of present system. After successful generation of the promolecular wavefunction, if you choose y, the wavefunction information in memory will correspond to promolecular wavefunction. That means, for example, if you calculate ELF grid data via usual steps in main function 5, you will finally obtain ELF grid data corresponding to promolecular state.