Giter Site home page Giter Site logo

mharanczyk / zeoplusplus Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 4.0 4.71 MB

Unofficial zeo++ mirror

Home Page: http://www.zeoplusplus.org/

License: Other

CMake 0.13% C++ 95.15% C 1.12% Makefile 0.28% R 0.07% Python 1.66% Objective-C 0.05% POV-Ray SDL 0.28% Perl 0.20% Gnuplot 0.01% Roff 0.24% Shell 0.01% Tcl 0.80%

zeoplusplus's Introduction

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”.



zeoplusplus's People

Contributors

ltalirz avatar

Stargazers

MTAP Research Group avatar

Watchers

 avatar Pezhman Zarabadi-Poor avatar Daniele Ongari avatar

zeoplusplus's Issues

infinite loop caused by invalid CIF

Problem

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

Expected result

zeo++ either reads the symbol anyhow or exits with an error message.

remove separate C++ functions for cython wrapper?

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.

inconsistencies in .sa output

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:
    is not followed by any number. This makes the format unnecessarily harder to parse.
    Better simply write 0.
  • "Density": 0.748207 is lacking units
  • "Unitcell_volume": 6415.16 is lacking units
  • (minor) Strictly speaking, ASA_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)

convert output to string only when needed?

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.