Particle tracking using IDL -- John C. Crocker and Eric R. Weeks (this page written primarily by Brenton Hoffman)

# micrheo.pro

## BACKGROUND:

A program written to calculate shear moduli (G', G") from either one point mean square displacement (msd.pro) or distinct mean square displacements generated from two point correlation tensors (msdd.pro). It is based on power-law approximations of the data and an algebraic approximation to the Generalized Stokes-Einstein with second order logarithmic derivative corrections. See Mason, Rheologica Acta 2000 and Dasgupta PRE 2005 for details. The code deals best with power-laws and can give erroneous results if the data has a lot of curvature.

The code has a fundamental problem common to all numerical Fourier or Laplace transforms. These transforms are defined for all lagtimes, but obviously data can only be obtained over a finite range of lagtimes. The code uses the points at the extrema of the msd to extrapolate to 0 and infinity. Therefore, curvature near the extrema, whether actually physical or from noise sources such as vibration or effects due to particles diffusing out of the two-dimensional imaging plane, can lead to erroneous results. In general, several data points from the edge of the msd should not be used in the conversion. The user needs to determine how many on a case by case basis. Usually the ends of the resultant rheological curves will fluctuate up and down as points are added or removed. The transformation should be repeated until this artifact stops.

Because of these caveats there is no guarantee for reliable results. In the past, we have found it useful to have new users run theoretical data through the program to get an understanding of these effects. Convenient analytical forms can be found in Mason, Rheologica Acta 2000. We strongly recommend this type of exercise, preferably with theoretical data similar to the experimental data, before publication.

## REQUIRED INPUTS:

The code requires a set of time points and the corresponding msd values.

## OPTIONAL INPUTS:

• A: Optionally the particle radius a can be set. If a particle radius is set in msdd.pro the same value should be used here. For accurate determination of mechanical properties, the particle size must be the same between these two programs.
• DIM: The dimension can be changed with the dim keyword. This is not the same as the dimension keyword in msd2pnt.pro and msdd.pro. The dimension keyword used in the other context set the dimensionality of the trajectories that were used. Used in this program the keyword sets the dimension used in the Generalized Stokes Einstein equation. The default is set to three and is equivalent to assuming an isotropic medium. Discrepancies between the x and y coordinates or Drr and Drr two point correlation tensors may suggest non-isotropic behavior.
• T: Since the technique relies on Brownian motion there is a keyword to set the temperature. The default is 290 K.
• WIDTH: The program is very sensitive to noise and curvature. Therefore, a smoothing operation is included in the code. The width keyword controls the width of a Gaussian used in a smoothing operation. A value of 1 means a Gaussian with a width of one decade in time was used to smooth the data. Large values may qualitative alter results.
• CLIP: G'(w) and G"(w) are clipped at 0.03x G(w) as they are almost certainly meaningless below that point unless the data is *extremely* clean. Set 'clip' to less than 0.03 to see more.

## SAMPLE CALL:

IDL> g=micrheo(md(0,2:27),md(1,2:27),a=0.5,wid=0.9)

where md is the output of msdd.pro, a particle radius of 0.5 microns is assumed, and a width parameters of 0.9 is used. The second through 27th points are used to generate data.

NOTE: The msd data from msd.pro is in the third column. A call using that structure would look like:

IDL> g=micrheo(m(0,2:27),m(3,2:27),a=0.5,wid=0.9)

where m is the output from msd.pro.

Using column 2 in md and 4 in m would result in the rheology generated from the theta-theat component of the two point correlation tensor or the y componment of the particle trajectory.

## OUTPUT:

The output is a 4 column (4,number of time points) array where:
```               res(0,*): is the frequency (s or omega), rads/sec.
res(1,*): is G(s)  in Pascals
res(2,*): is G'(w) in Pascals
res(3,*): is G"(w) in Pascals
```

This program was written by John, and this webpage was written by Brenton Hoffman, a student working with John (with some editing to html-ize it by Eric).