MOBCAL - A Program to Calculate Mobilities.

See: M. F. Mesleh, J. M. Hunter, A. A. Shvartsburg, G. C. Schatz, and M. F. Jarrold, Structural Information from Ion Mobility Measurements: Effects of the Long Range Potential J. Phys. Chem. 1996, 100, 16082; A. A. Shvartsburg and M. F. Jarrold, An Exact Hard Spheres Scattering Model for the Mobilities of Polyatomic Ions Chem. Phys. Lett. 1996, 261, 86.

You should have five files (including this one):

mobcal.txt (this file) 
mobcal.f
mobcal.run
a1A10.mfj
a1A10.out

mobcal.f is the fortran code. It should be compiled using FORTRAN 77. If you use a newer
version of FORTRAN you will need to set the switches so that it emulates FORTRAN 77. This is because FORTRAN 77 retains numbers in subroutines and functions while the newer compilers usually do not.

mobcal.run is a small input file containing (on separate lines):
1. Name of data file (for coordinates, etc.)
2. Name of file for output    
3. Random number seed

a1A10.mfj is an example of a data file. It contains the coordinates and other input data. 
It is organized as follows:

1. Name or title of system.

2. Number of coordinate sets to be averaged over (50 in a10A1.mfj). Multiple coordinate sets are used to average a conformation over an MD run. We've found that 50 coordinate sets gives a good average.

3. Number of atoms. 

4. "ang" to specify coordinates in Angstroms, "au" to specify atomic units.

5. This parameter defines the charge on the atoms. "calc" to specify a charge distribution that is to be read in; "equal" to specify a uniform charge distribution; and "none" to specify no charge.

6. A scaling factor for the coordinates. Usually 1.0000.

7. For each atom: x, y, and z coordinates, integer mass of the atom, charge (if calc is specified in line 5). If there are multiple coordinate sets leave a blank (unread) line between the coordinate sets.

The following atom types can be used H, C, N, O, Na+, Si, S, and Fe. How the parameters are
defined for these different atoms is explained in mobcal.f starting at line 577. If you want to use an atom that is not in the list you will need to define your own parameters and incorporate them into the program.

a10A1.out is the output file obtained by running mobcal.f with mobcal.run and a10A1.mfj. This file is included so that you can check that the compilation works and that you get the right answers when you run the code. It will probably take a few hours to run, depending on the speed of your computer.

MOBCAL calculates mobilities (or collision integrals) in three ways:

1. The projection approximation (PA). This is Bower's method. The ion is modeled by a
collection of overlapping hard spheres with radii equal to hard sphere collision distances. The orientationally-averaged geometric cross section is determined by averaging the geometric cross section over all possible collision geometries.

2. The exact hard sphere scattering (EHSS) method . The ion is modeled by a collection of
overlapping hard spheres with radii equal to hard sphere collision distances (as above). The orientationally-averaged momentum transfer cross section is calculated by determining the scattering angles between the incoming buffer gas atom trajectory and the departing buffer gas atom trajectory. 

3. The trajectory method (TM). Treats the ion as a collection of atoms, each one represented by a 12-6-4 potential. The effective potential is obtained by summing over the individual atomic contributions and then trajectories are run in this potential to obtain the scattering angle (the angle between the incoming and departing buffer gas atom trajectory). The orientationally-averaged collision integral is determined by averaging over all possible collision geometries.

The TM method should give the most reliable estimate. The PA method generally gives numbers
that are smaller than TM while EHSS generally gives values that are greater than those obtained by TM. The deviations increase with increasing size of the ion. This is because the PA ignores multiple scattering (where the ion and buffer gas have more than one encounter) and EHSS tends to overestimate the effects of multiple scattering.

MOBCAL is currently configured to average over 50 configurations from an MD run. When this
is done we cut back on the amount of averaging done for each configuration to save computer
time. The relevant switches are:

1. For TM: Line 267: imp=25 

The number of TM trajectories is: number of configurations*itn*inp*imp = 50*10*40*25 =
500000. For a single configuration raise imp by a factor of 50-100.

2. For EHSS:Line 302: inum=250000

The number of EHSS trajectories is: number of configurations*inum = 50*250000 = 12500000.
For a single configuration raise inum by a factor of 10-20.
