Using Zeo++
The main Zeo++ utility works in a text terminal and can be called by executing the "network" binary. The to-be-analyzed materials' structures have to be provided in one of compatible file formats. For a detail documentation of the program's functions as well as the graphical user interface (ZeoVis) please see the doumentation pages. Below we present a number of examples, which can serve as a crash-course on Zeo++.
Examples
In the following sections, the basic Zeo++ funcionality is presented. Each section discusses a general syntax requires to call a specific functionality, e.g. calcluation of pore diameters or accessible volume, followed by a specific example of EDI zeolite. The CSSR files for EDI zeolites can be downloaded here and imidiatelly tested.
By default, Zeo++ knows radii and masses of very few elements. The discussed examples of EDI zeolite contains only Si and O atoms, which are in the default set for Zeo++. If your system contains atoms (or atoms with special names) not contained in the default set, please use radii and mass files (check examples in documentation folder provided with the source).
Warning: The Voronoi decomposition underlying majority of algorithms implemented in Zeo++ can be performed by either using radii of atom or not. For most of typical analysis tasks, we recommend the former approach. Therefore all the examples discussed below use "-r" parameter.
Examples discussed in this document: Pore diameters | Dimensionality of channels | Surface area | Accessible volume | Accessing the structure and Voronoi network data |
If you wish to use other Zeo++ functionality, i.e. diversity selection, will you please contact Maciej Haranczyk.
Pore diameters
To calculate diameters of the largest included sphere, free sphere and included sphere along free sphere path please use the following syntax:
./network -r -res output_file.res input_structure.cssrAs the result output_file.res is written. It contains three numbers, diameters of, respectively, the largest included sphere, the largest free sphere and the largest included sphere along free sphere path. In fact, filename output_file.res is optional. If it is not provided, the results are written to input_structure.res
Examples:
./network -r -res EDI.cssrgives the following results in the EDI.res file:
EDI.res 5.65992 3.37868 5.65992
The first column containing the filename may seem redundant. However, it turns very useful when hundreds of .res files are catenated into large data files. The output filename can be changed. For example, the results will be written to EDI_output.res file, if the following parameters are used:
./network -r -res EDI_output.res EDI.cssrChannel identification and dimensionality
For a given spherical probe of a radius probe_radius, Zeo++ can analyze the void space accessible to this probe. Each identified channel system is characterized by dimensionality. Syntax:
./network -r -chan probe_radius input_structure.cssrAn example analysis for a probe of radius of 1.5A roughly corresponding to CO2:
./network -r -chan 1.5 EDI.cssrgives the following results saved in the EDI.chan file:
1 channel identified of dimensionality 3
The default output filename (here EDI.res) can be changed to another filename, EDI_channewname, by using:
./network -r -chan 1.5 EDI_channewname EDI.cssrSurface area
Zeo++ can calculate surface area accessible to a spherical probe of a radius probe_radius. The calculation is performed in two steps. First, the accessibility of pores in determined. Then, a Monte Carlo sampling procedure is employed to integrate surface area. The radii used in both steps do not have to be the same number. Syntax:
./network -r -sa chan_radius probe_radius num_samples outputfile.sa input_structure.cssrchan_radius is the radius of a probe used to determine accessibility of the void space. probe_radius is the radius of a probe used in Monte Carlo sampling of surface. Variable num_samples sets number of MC samples per atom. The outputfile.sa, which is the name of a file to which results are to be written is optional. If not provided, by default, the output will be written to input_structure.sa.
The usefulness of using two radii can be presented by the following example. If chan_radius=probe_radius=radii of helium, Zeo will calculate surface area accessible to helium atom. This surface area will not include surface area inside inaccessible pockets. To calculate total surface area, which inclusion of surface area inside inaccessible pockets, one should use chan_probe=0.0 and probe_radius=radii of helium.
An example analysis of calculation of surface area accessible to a probe of radius of 1.2A:
./network -r -sa 1.2 1.2 2000 EDI.cssrgives the EDI.sa file containing:
EDI A^2: 88.5767 m^2/cm^3: 2880.69 m^2/g: 1775.58
where the second line is surface area per unit cell, and the following two lines provide surface area in square meters per, respectively, volume (in cubic cm) or mass (in grams) of a material.
Accessible volume
The syntax of a command to calculate accessible volume is similar syntax of surface area calculation:
./network -r -vol chan_radius probe_radius num_samples outputfile.vol input_structure.cssrHowever, in this case the num_samples variable sets a number of Monte Carlo samples per unit cell. The outfile.vol parameter, which is the name of a file to which results are to be written, is optional.
An example calculation of accessible volume accessible to a probe of radius of 1.2A:
./network -r -vol 1.2 1.2 50000 EDI.cssrgives the EDI.vol file containing:
EDI A^3: 42.5743 Volume fraction: 0.13846 cm^3/g: 0.0853429
where the second line is accessible volume per unit cell, and the following two lines provide void fraction and accessible volume per mass of a materials.
Accessing structure data and the Voronoi network
Zeo++ can be also used to convert an input file with structure, i.e. CSSR file, to other file formats. Two formats with Cartesian coordinates of atoms are available: standard .xyz format used in the most of molecular visualization codes and our .v1 format. The latter is similar to .xyz but also contains unit cell vectors. To generate .xyz and .v1 files for our example EDI.cssr file, please use:
./network -xyz EDI.cssr./network -v1 EDI.cssr
The Voronoi network obtained for a given structure can be saved in our .nt2 file format. It contains information on all nodes and edges in the network. Each nodes is characterized by a position in Cartesian coordinates, a distance to the nearest atom, node connectivity. Each edge is characterized by a pair of nodes its connected to, its restricting distances and lenght. To save .nt2 files for the example EDI.cssr file use:
./network -r -nt2 EDI.cssrPlease note that "-r" parameter requests radial Voronoi decomposition, i.e. atomic radii are used. The distances to atoms in the resulting .nt2 files will then be the distances to the atomic surface. Omitting "-r" will request standard Voronoi decomposition. Then, the distances will be defined as distances to the center of atoms.