mharanczyk / zeoplusplus Goto Github PK
View Code? Open in Web Editor NEWUnofficial zeo++ mirror
Home Page: http://www.zeoplusplus.org/
License: Other
Unofficial zeo++ mirror
Home Page: http://www.zeoplusplus.org/
License: Other
Zeo++, high-throughput analysis of crystalline porous materials By Maciej Haranczyk, Chris H Rycroft, Richard L Martin, Thomas F Willems WWW: http://www.carboncapturematerials.org/Zeo++/ Email: [email protected] (Zeo++) and [email protected] (Voro++) ===================================================================== Zeo++ is a software package for high-throughput analysis of structure and topology of crystalline porous materials. For a given material's structure, the code calculates the geometrical parameters describing pores. The tool is based on the Voronoi decomposition, which for a given arrangement of atoms in a periodic domain provides a graph representation of the void space. The resulting Voronoi network is analyzed to obtain the diameter of the largest included sphere and the largest free sphere, which are two geometrical parameters that are frequently used to describe pore geometry. Accessibility of nodes in the network is also determined for a given guest molecule and the resulting information is later used to retrieve dimensionality of channel systems as well as in Monte Carlo sampling of accessible surfaces, volumes and pore size distributions. The code also offers some aids with structure analysis, e.g. MOF open metal site detection, and simluations, e.g. generation of blocking spheres. Compilation - Linux / Mac OS / Windows with Cygwin ===================================================================== The code is written in ANSI C++, and compiles on many system architectures. The package contains the C++ source code of Zeo++ as well as Voro++ library. On Linux, Mac OS, and Windows (using Cygwin), the compilation and installed can be carried out using GNU Make. *** Step by step compilation *** 1) Unpack the provided Zeo++ package (the following commands will create zeo++-0.3.0 directory containing the Zeo++ code; Voro++ library will be placed in one of subfolders (zeo++-0.3.0/voro++)): gunzip zeo++-0.3.0.tar.gz tar xvf zeo++-0.3.0.tar 2) Compile Voro++ library (you may need first to review config.mk file in zeo++-0.3.0/voro++/ directory; please check Voro++ documentation or read zeo++-0.3.0/voro++/README): cd zeo++-0.3.0/voro++/src make 3) Compile Zeo++ code: cd ../.. make 4) Step (3) will create "network" binary inside zeo++-0.3.0. This is the main Zeo++ binary. Please view the Zeo++ website for instructions, review zeo++-0.3.0/documentation/README or contact the authors to inquire about otherwise undocumented or custom features. Related programs ===================================================================== No external dependencies are required to compile and run the code (except for the Voro++ library provided with the code), but several programs may be useful for analyzing the output: - VMD - molecular visualization package can be used to visualize some of characteristics calculated by Zeo++, for example, Voronoi networks, Monte Carlo-sampled surface areas and volumes etc. Zeo++ can be called from within VMD vis TCl ZeoVis interface (not yet documented, if interested, please contact me at [email protected]) - The freeware raytracer POV-Ray (available at www.povray.org) can be used for high-quality renderings of the Zeo++/VMD outputs. - VisIt - powerful visualization package; https://wci.llnl.gov/codes/visit/ Usage ===================================================================== Zeo++ is released as free software through the Lawrence Berkeley National Laboratory - a detailed copyright notice is provided below, and the complete terms of the license can be found in the LICENSE file. I am very interested to hear from users of Zeo++, so if you find this useful, please email me at [email protected]. Also, if you plan to publish an academic paper using this software, please consider citing the following publications: - Thomas F. Willems, Chris H. Rycroft, Michael Kazi, Juan C. Meza, and Maciej Haranczyk, "Algorithms and tools for high-throughput geometry-based analysis of crystalline porous materials", Microporous and Mesoporous Materials 149 (2012) 134-141 - Richard L. Martin, Berend Smit, Maciej Haranczyk, "Addressing challenges of identifying geometrically diverse sets of crystalline porous materials", Journal of Chemical Information and Modeling, DOI: 10.1021/ci200386x The first reference is the main Zeo++ reference describing the idea of using Voronoi networks in analysis of porous materials. The second reference describes extensions allowing sampling of structures from a database of porous materials using divrsity-based selelction. Copyright Notice ===================================================================== Zeo++, Copyright (c) 2011, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved. If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Technology Transfer Department at [email protected]. NOTICE. This software was developed under partial funding from the U.S. Department of Energy. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, and perform publicly and display publicly. Beginning five (5) years after the date permission to assert copyright is obtained from the U.S. Department of Energy, and subject to any subsequent five (5) year renewals, the U.S. Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, distribute copies to the public, perform publicly and display publicly, and to permit others to do so. Acknowledgements ===================================================================== This work was supported by the U.S. Department of Energy under contract DE-AC02-05CH11231 and through SciDAC project #CSNEW918 entitled “Knowledge guided screening tools for identification of porous materials for CO2 separations”.
The readme includes parameters like
https://github.com/ltalirz/zeoplusplus/blob/4f5c7bd52b4f5a10c562523c84b44f7cd9528492/documentation/README#L65-L66
that are nowhere to be found on the examples of the homepage.
Where can one find an official & complete list of the supported command line parameters?˜
An invalid cif with the line
_symmetry_space_group_name_H-M Fm-3c
(i.e. symbol without quotation marks) caused zeo++ to enter an infinite loop.
Problem pinpointed by @danieleongari
zeo++ either reads the symbol anyhow or exits with an error message.
Is it really necessary to have separate C++ functions for the cython wrapper?
If I understand correctly, this is done simply because the regular function contains unnecessary visualisation options. However, the job of "ignoring these options" could be taken care of just as easily at the python level.
I would suggest to get rid of these functions in the C++ code. This keeps the zeo++ source clean and, furthermore, it means the full functionality of the function is exposed to the wrapper.
it seems to me that zeo++ includes a copy of Eigen 3.2.7
https://github.com/ltalirz/zeoplusplus/blob/4f5c7bd52b4f5a10c562523c84b44f7cd9528492/Eigen/src/Core/util/Macros.h#L14-L16
But without providing a copy of the MPL.
One should at least indicate that this part of the code is licensed under the MPL2
(see Q9 on https://www.mozilla.org/en-US/MPL/2.0/FAQ/).
It would also make sense to state which version of has been included.
network program is hanging at the file reading stage if the last line of the cif file is not an empty one.
In my opinion this issue should be resolved as it is not so clear for an inexperienced person where to look for the origin of the problem.
The calcAV function has a ProbeOccupiable flag, but for the cython wrapper it's simply set to false
Since I've anyhow written the parsers for the moment, I noticed some inconsistencies in the .sa format.
First an example output:
@ HKUST-1.sa Unitcell_volume: 18280.8 Density: 0.879097 ASA_A^2:
3545.59 ASA_m^2/cm^3: 1939.51 ASA_m^2/g: 2206.26 NASA_A^2: 0
NASA_m^2/cm^3: 0 NASA_m^2/g: 0 Number_of_channels: 1
Channel_surface_area_A^2: 3545.59 Number_of_pockets: 0
Pocket_surface_area_A^2:
Pocket_surface_area_A^2:
0
."Density": 0.748207
is lacking units"Unitcell_volume": 6415.16
is lacking unitsASA_m^2/cm^3
and ASA_m^2/g
should be renamed to ASA/V_m^2/cm^3
, ASA/M_m^2/g
, since they are not the same quantity as ASA
(same for NASA
)e.g. calcAV currently returns its results in an output string.
If one wants to use these values further down the toolchain, they will need to be parsed, i.e. one is doing: compute values => produce string => parse string to get values
What about returning a std::map<std::string, std::double>
instead and having a function that prints them out as a string when needed?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.