Kappa Spreadsheet

Due to the transcendental nature of the exact kappa equation, the transformation from a data pair of critical supersaturation/dry diameter to apparent kappa is not quite straightforward. Over the years I have implemented different strategies to solve this problem numerically, but none of the methods were both fast and robust. I therefore generated a lookup table that allows to perform this task with sufficient accuracy over a broad range of conditions. To avoid unnecessary repetition of work, I am making this table and the implementation of the algorithm available in the form of an Excel spreadsheet . The spreadsheet should be self explanatory and includes a number of forward and backward calculations. If you have comments or questions please feel free to email me.

Kappa Köhler

The following routines are implemented in the interactive data language (IDL) and calculate the "kappa" value for critical supersaturation dry diameter data pairs. Please see Petters and Kreidenweis (2007) for details on the parameterization. The text file kappalines.txt can by used to overlay lines of constant kappa onto a critical supersaturation/dry diameter plot. The routines below are interdependent and must all be downloaded into the working directory.


example.pro shows example forward and backward calculations for kappa-Kohler and generates the text output kappalines.txt
findkappa.pro finds the kappa from a dry diameter and critical supersaturation data pair
findsc.pro finds the critical supersaturation from a dry diameter and a kappa value
init.pro makes physical constants available to IDL
numgen.pro generate n floating point numbers between [min, max]


Melanie Zauscher from Kim Prather's group at UCSD implemented the findkappa algorithm in the R programming language. The code can be downloaded here.

Kappa Köhler (including solubility)

The following two routines are taken from Petters and Kreidenweis, ACP (2008), where we explicitly included solubility into the kappa-Kohler framework. The Python code (sc.py) is a transcribed version from Tables A1 and A3. I also have an IDL version that works based on the same algorithm (sc.pro). These routines are essentially equivalent to findsc.pro but there are three key differences

1. Multiple components can now directly be passed to the function
2. For each component a hygroscopicity, solubility, and volume fraction needs to be specified
3. Program flow control is now recursive, reducing the number of lines of code and increasing the speed of the calculation. The desired accuracy can be specified to nearly arbitrary level. Python's recursion depth is quite small, but the IDL interpreter seems to handle quite a bit. Nevertheless the default values should be sufficient for most applications. The exception may be very large (>500 nm) and hygroscopic (k>1.0) particles, although I have not tested this rigorously.

I compared the three routines (findsc.pro, sc.pro, sc.py) and they give nearly indistinguishable results for identical input.

sc.pro finds the critical supersaturation from a dry diameter and a set of kappa, set of volume fractions, and set of solubilities; each set comprises a list of i-components.
sc.py finds the critical supersaturation from a dry diameter and a set of kappa, set of volume fractions, and set of solubilities; each set comprises a list of i-components.