Mulfit: Reducing the rank of your multipole model
This tutorial covers reducing a DMA/ISA multipole moment file (usually including rank 4 multipoles on each site) to a charge-only, or, indeed, any lower-rank model.
The Mulfit program was written by G. G. Ferenczy, C. A. Reynolds and P. J. Winn and is maintained by A. J. Stone and, a little, by A. J. Misquitta. To obtain a copy please ask the last two authors. The Mulfit User's Guide can be found here.
This guide relies on your having already calculated distributed multipoles for the system. See the guide on Multipoles for instructions on how to use CamCASP for this calculation.
Chipot, C., Ángyán, J. G., Ferenczy, G. G. and Scheraga, H. A. (1993) ‘Transferable net atomic charges from a distributed multipole analysis for the description of electrostatic properties. a case study of saturated hydrocarbons.’ J. Phys. Chem. 97, 6628–6636.
Ferenczy, G. G. (1991) ‘Charges derived from distributed multipole series,’ J. Comp. Chem. 12, 913–917.
Ferenczy, G. G., Winn, P. J. and Reynolds, C. A. (1997) ‘Toward improved force fields. 2. Effective distributed multipoles,’ J. Phys. Chem. A 101, 5446–5455.
Stone, A. J. (1981) ‘Distributed multipole analysis; or how to describe a molecular charge distribution,’ Chem. Phys. Lett. 83, 233–239.
Stone, A. J. and Alderton, M. (1985) ‘Distributed multipole analysis—methods and applications,’ Molec. Phys. 56, 1047–1064.
Winn, P. J., Ferenczy, G. G. and Reynolds, C. A. (1997) ‘Toward improved force fields. 1. Multipole-derived atomic charges,’ J. Phys. Chem. A 101, 5437–5445.
Example 1 : H$_2$O
Here's the mulfit input file: Put these commands in file H2O_L0.mulfit
Title Water : Multipole rank reduction units Bohr Verbose ! Mom file in Orient format: DMA H2O_aQZ_aQZset2_B+DF_z0.1_L4.mom ! Calculate total multipoles of fitted scheme up to rank 4 Total rank 4 ! Modified radius for type Hb ! We do not have such a site in this example, but this is how ! the radii can be modified. Radii Hb 1.0 ! This is the name of the output file: Orient H2O_aQZ_aQZset2_B+DF_z0.1_L4_to_L0.mom ! List the site names and ranks of terms needed: ! The TYPE names are used here, not the site labels! Ranks O 0 H 0
The H$_2$O multipole moment file can be found here. Put the moments in file H2O_aQZ_aQZset2_B+DF_z0.1_L4.mom
Once you have installed Mulfit, run the code using
$ mulfit < H2O_L0.mulfit
The output will contain the following lines:
MULFIT 2.1 fits multipoles to distributed multipole series by G. G. Ferenczy, C. A. Reynolds and P. J. Winn original version February 1998 modified by A. J. Stone, 2008-2011 Water : Multipole rank reduction Reference multipole sites 1 O at 0.00000 0.00000 0.00000 type O Rank 4 2 H1 at -1.45365 0.00000 -1.12169 type H Rank 4 3 H2 at 1.45365 0.00000 -1.12169 type H Rank 4 Parameters of the calculation: Print option : 1 Rank of reference multipoles used for fitting: 6 Radii for reference multipoles type radius (bohr) 1 8 2.6456 2 1 2.2677 3 1 2.2677 Rank of fitted multipoles 1 type: 8 rank: 0 2 type: 1 rank: 0 3 type: 1 rank: 0 ... ... Result of multipole fitting Water : Multipole rank reduction Fitted multipoles O 0.000000 0.000000 0.000000 Type O Rank 0 Q00 = -0.68329 H1 -1.453652 0.000000 -1.121687 Type H Rank 0 Q00 = 0.34165 H2 1.453652 0.000000 -1.121687 Type H Rank 0 Q00 = 0.34165 End Goodness of fit parameter for the total fit: 3.9360 kJ/mol Total multipoles Coordinates: 0.000 0.000 0.000 bohr reference fitted 00 = -0.000 -0.000 |0| = 0.000 0.000 10 = -0.740 -0.766 11c = -0.000 -0.000 11s = 0.000 0.000 |1| = 0.740 0.766 20 = 0.099 0.138 21c = 0.000 0.000 21s = 0.000 0.000 22c = 2.136 1.250 22s = 0.000 0.000 |2| = 2.138 1.258 ... ...
And the resulting multipoles will be in file H2O_aQZ_aQZset2_B+DF_z0.1_L4_to_L0.mom which, in this case, contains
O 0.000000 0.000000 0.000000 Type O Rank 0 Q00 = -0.68329 H1 -1.453652 0.000000 -1.121687 Type H Rank 0 Q00 = 0.34165 H2 1.453652 0.000000 -1.121687 Type H Rank 0 Q00 = 0.34165
You can see that the charges are smaller than those from the ISA method. Is this model better than the ISA/L0 model? Well, that's a question that needs to be answered!
Example 2: Adding extra sites
One of the uses of Mulfit is to add extra sites on the system. This is useful if you wish to use, say, only charges to model the multipoles, in which case, you will need extra sites at locations of the lone-pairs, bonds, etc. Mulfit will not be able to optimize the location of these sites, but it will give you the best charges for the (fixed) sites.
Consider the water example. Say we wish to add two extra sites near the oxygen. First modify the multipole file to include these sites:
O 0.0 0.0 0.0 Type O Rank 4 -0.80 ...Usual ISA multipoles here... H1 -1.45 0.0 -1.12 Type H rank 4 ...and here.. H2 1.45 0.0 -1.12 Type H rank 4 ...and here... L1 0.0 0.54 0.44 Type L Rank 0 0.0 L2 0.0 -0.54 0.44 Type L Rank 0 0.0
The last two sites are the dummy sites. They have zero charge on them. Mulfit will find the charges on these sites.
Modify the Mulfit input file you have used above to include the new site types:
Ranks O 0 H 0 L 0
Now run Mulfit and you will get a new set of multipole moments (charges only), this time with charges on the sites of type L:
O 0.0 0.0 0.0 Type O Rank 0 Q00 = -2.31 H1 .... H2 .... L1 0.0 0.54 0.44 Type L Rank 0 Q00 = 0.56 L2 0.0 -0.54 0.44 Type L Rank 0 Q00 = 0.56
You will probably not get the numbers I have quoted above as I did not use the ISA multipoles for this calculation.
To remove sites from the list all you need to do is use:
- O H 0 L 0
In this example, the oxygen atom will not have any multipoles. There is a bug in the Mulfit output. When there are no multipoles included on a site, the resulting multipole file will still indicate that the site is rank 0. You will need to fix this. For example, in the present case, the multipoles for the oxygen are written as
- O 0.0 0.0 0.0 Type O Rank 0 H1 ...
This is wrong, and you need to modify it (slightly) to include zero charge on the O:
- O 0.0 0.0 0.0 Type O Rank 0
- Q00 = 0.0