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

Example 1 : H$_2$O

Here's the mulfit input file: Put these commands in file H2O_L0.mulfit

H$_2$O Mulfit input file

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 output

                             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

L0 multipoles from Mulfit

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:

H2O multipoles with two extra 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:

Mulfit file snippet

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)