Computing Pore Size Distribution

 

Here is a small program that I wrote during my Ph.D. I was developing molecular models for porous substances, where I frequently had to calculate pore size distributions of the model materials. However, the existing tools were too slow and were almost unusable for the particularly larger models. Therefore I devised my own algorithm and coded it up. In the following paragraph, I have tried to describe what it does and provided the C++ program for people to use. If you want to know more about this, please refer to the original paper: S. Bhattacharya and K. E. Gubbins, Langmuir, 22(2006) 7726. The program is free to use. I only request, you fill out a small form that will tell me who is benefiting from the program. Please send comments to sup27606@yahoo.com.

Overview:

The way, pore size is defined in a porous model is shown in the figure:

Imagine you have a box full of particles / atoms that make up the solid matrix of a porous media. You are supposed to find the pore size at a given point P inside the pore. Here, all you need to do is calculate the diameter of the largest sphere that can pass through the point P without overlapping with the pore wall. This is the pore size at point P. The problem is simple, however calculating the pore size using computers can be time consuming (both CPU and memory intensive). You are required to maintain a database of millions of spheres posing a serious limit on the memory. Then at each point, you have to search through this sphere database looking for the largest sphere. This can easily take up to 2 weeks. Worst of all, you cannot view how the distribution looks before the calculation is complete.

 Therefore, I decided to create a new algorithm to make the calculations faster. For the new algorithm, I set the following criteria: First of all, it should be much faster, and secondly one should be able to view the rough pore size profile as it develops over time. I have used a Monte Carlo based approach coupled with nonlinear optimization and seems to work quite well. A rough profile can be seen in less than an hour and the complete calculation takes a little more than a day in most cases. Compare this to the 2 week time for the existing method!!

The program (PSDsolv):

You can download the program here. --> PSDsolv

Additionally, I have a parallel version which can be downloaded here ( PSDsolvMPI ), although in most cases the serial version should be sufficient.

Please send all comments to sup27606@yahoo.com. Please cite this article if you plan to use the program:

S. Bhattacharya and K. E. Gubbins, Langmuir, 22(2006) 7726.

Back to Research