# 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.

## References

• 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.
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

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

Warning

You will probably not get the numbers I have quoted above as I did not use the ISA multipoles for this calculation.

Important

To remove sites from the list all you need to do is use:

• Ranks
• 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
H1 ...

AJMPublic/camcasp/multipolesmulfit (last edited 2021-04-14 11:40:29 by apw109)