The Open-Access Journal for the Basic Principles of Diffusion Theory, Experiment and Application

# ZORRO – A new software package for ab initio calculation of molecular diffusion rates

Christian Binder, Johannes Krondorfer and Andreas W. Hauser,
Graz University of Technology, Petersgasse 16, 8010 Graz, Austria

Molecular diffusion in porous structures is a highly interesting topic, as a variety of applications are associated with this process. Prominent examples are seawater desalination, gas separation on an industrial scale, the chiral separation of drug molecules via two-dimensional materials such as porous graphene or flat metal-organic frameworks, but also gas storage in zeolite structures. Describing these processes ab initio is a challenging task, since molecular propagation is a highly disordered, complex process with, in most cases, seemingly random trajectories. As a result, molecular dynamics simulations using cost effective force fields have become the established standard approach for theoretical estimates of permeabilities and diffusion constants. Unfortunately, these force fields often exhibit significant errors in energy prediction that can falsify the correct values by orders of magnitude. Another popular approach is to identify a given molecular propagation process as a chemical reaction and to employ Eyring theory. However, as can be shown, in cases of pronounced anharmonicity and particularly low-lying vibrational frequencies, the Eyring based predictions can deviate substantially from the correct result.

We developed an alternative method for determining the relevant quantities for problems of molecular diffusion, aiming for the best of both worlds. Achieving the low computational cost of an Eyring based calculation, enabling the use of high-level methods, e.g. DFT, while keeping the methodological accuracy of MD-simulations. Our protocol is based on an extension of Eyring theory but goes beyond the harmonic approximation through a cost-effective evaluation of the partition sum factors, relevant for determining diffusion constants (reaction rates) of molecules in larger external structures. We treat the molecule the external structure of interest as rigid objects, effectively reducing the dimensionality of the problem. In our treatment we fall back on the concept of the 'ridge', a hypersurface which has a dividing character for the reactant and product volume. In order to provide simple access to our ideas and methods we have developed a python-based software package named ZORRO, where the acronym stands for Zustandssummen<fnref n="1" /> of Rigit Rotor Objects. Our package is an extension of the well-known atomic simulation environment (ASE).

Testing our package for the case of natural gas purification, the separation of N₂, CH₄ and CO₂ through a graphdiyene membrane, we find that it provides excellent predictions for the propagation rates, thereby justifying the rigid rotor approximation. Moreover, a tremendous advantage can be seen in terms of computational effort compared to a molecular dynamics simulation, which, in our case, requires 10⁶ to 10⁷ potential energy surface (PES) evaluations. Our software package, on the other hand, yields reasonable estimates with about 100 evaluations of the PES, providing enormous savings in computing time. Furthermore, we examined the accuracy of different levels of energy predictors, ranging from simple force fields to accurate DFT based methods, revealing the necessity for high level predictors in order to sufficiently describe generic processes in molecular diffusion.

Potential future efforts to refine the discussed methods might be the inclusion of various effects. E.g. inter molecular interactions, enabling a description of processes in solution, and quantum effects, which might be relevant for the description of light molecules such as H₂. A further interesting improvement would be the generalization of the method to larger (biological) molecules by allowing for deformations of the studied molecule.

<figure><img src="image_1.png" /></figure>

<footnote n="1">¹ Zustandssumme = german term for partition sum</footnote>