forked from willow1920/poreblazer
-
Notifications
You must be signed in to change notification settings - Fork 0
Poreblazer is a set of Fortran 90 tools for structural characterization of porous materials.
License
sibo/poreblazer
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
================================================
poreblazer_v3.0.2: Computational structure characterization tools
Copyright (C) 2012 Lev Sarkisov
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
================================================
Welcome to poreblazer_v3.0.2, 07-03-2013.
Lev.Sarkisov@ed.ac.uk
================================================
1. About the program:
This is a new, integrated version of the computational structure
characterization tools originally presented in
------------------------------------------------
Sarkisov and Harrison, Computational structure characterisation tools in
application to ordered and disordered porous materials, Molecular
Simulation, Vol 37, Issue 15, pages 1248-1257, 2011.
------------------------------------------------
Please, cite this article if you use poreblazer_v3.0.2.
2. Poreblazer version 3.x.x vs 1.2.x
In the previous versions of poreblazer, a separate code/tool existed for the
calculation of the accessible surface area, pore size distribution and
other properties. It required separate runs, separate inputs and
separate compilation for each property.
The new generation of poreblazer is different:
One code, one run. All you need to specify is the name of the file
containing the xyz coordinates of the structure and the dimensions
(length and angles) of the unit cell.
For a given structure poreblazer_v3.0 will calculate:
- Accessible surface area (with Nitrogen atom as a probe)
- Geometric pore size distribution
- Structure density
- Helium pore volume
- Maximum pore size
- Pore limiting diameter
3. Poreblazer v3.0.2 vs v3.0
In the updated version of poreblazer several modifications are introduced
to increase the efficiency and simplicity of the program:
- Hoshen-Kopelman algorithm is properly implemented to reduce unnecessary
redundant cycles (substantial modifications of percolation.f90)
- for non-orthorhombic cells, calculations are now done on non-orthorhombic
lattice: this allows to use correct dimensions of the non-orthorhombic
unit cell and simplifies a number of calculations involving
fundamental cell subroutine
- positions of the structure atoms in the slanted representation are pre-calculated
which now saves a bit of time
- calculation of the surface area using potential surface is hard-coded now as
it has become the standard. No hard sphere surface option! The default parameter
file is slightly different now to reflect this change
- other optimizations throughout
4. Contents of the distribution:
The distribution contains the original source code files written in Fortran 90,
compilation scripts and pre-compiled static (library independent) version of
the program (poreblazer.exe).
4.1 Executable poreblazer.exe was compiled on Intel Westmere E5620 processor,
using gfortran compiler GNU Fortran (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3).
This executable should be compatible with most Intel platforms. If you wish to compile your
own version go to the next step.
The Makefile is also provided. To change compiler from gfortran to intel, in the line
FORTRAN_COMPILER= gfortran
change gfortran to the intel compiler executable name on your system.
4.2 To compile the code you can simply issue a "make" command, which
will follow the instructions in the Makefile to assemble the code into the
poreblazer.exe executable file.
4.3 Other compilers. The code has been tested with Intel fortran compiler and
gfortran. Compilation and testing using other compilers is at the
discretion of the users. The mutual file dependency is summarized at the
end of the Makefile for custom compilations.
4.4 Windows. The code has been also compiled for Windows using gfortran under
MinGW environment. The static executable file is located in WinXP. Also, in the same
directory an example of using the program under Windows is provided. Change you location
to HKUST1, and double click on run.bat script. This will run the program (located
one directory up from your test case location). The results will be saved in
results.txt.
The distribution also contains the following case studies:
HKUST1
IRMOF1
MOF180
MIL47V
with reference results and performance.
5. How to run
5.1 Basic mode
In basic mode the program uses default parameter setting. For this, in the
location of the run, you need to put files defaults.dat and UFF.atoms.
They can be copied from the case studies provided with the
distribution and are the same for all runs. All that a user needs to
specify is the name of the file containing the xyz coordinates of the
structure (which uses the standard names for the elements, H, C,
O etc) and dimensions of the unit cell (side lengths and yz, xz, xy angles.
For example, for HKUST1, it is specified in the input.dat file:
HKUST1.xyz
26.3430000000000 26.3430000000000 26.3430000000000
90 90 90
To run simply issue:
./poreblazer.exe < input.dat
Examples of the output are summarized in the provided case studies.
5.2 Advanced mode
In the advanced mode, a user controls various parameters of the simulation,
such as the interaction parameters of Nitrogen and Helium atoms, cut-off
radius, grid size etc. All the parameters are specified in the defaults.dat
file and can be changed there. This file also specifies a source of the
force field parameters for the atoms of the structure. By default it is the
UFF forcefield, provided in UFF.atoms file (note that not all possible
atoms from the UFF are there, but the most common ones). Other force fields
and files can be used, with the customized convention for the atom names
defined by the user.
This mode assumes the user knows what s/he does. Here is an example of the
defaults.dat file:
UFF.atoms
2.58, 10.22, 3.314, 298
12.8, 500
0.2
20.0, 0.25
21908391
These values are (in order of their appearance):
- Default forcefield: UFF
- Helium atom sigma (A), helium atom epsilon (K), nitrogen atom sigma (A), temperature (K)
Cutoff distance (A), number of trials for surface area
calculation
- 0.2: Cubelet size (A)
- Largest anticipated pore diameter (A), size of the bin for PSD (A)
- Random number seed
6. Understanding and interpreting the results
Results are printed on the screen, and can be redirected to a text file.
PSD is saved in the psd.txt file.
The results for the references= cases are included in the distribution.
The general convention for the names of the reference result files is as follows:
results_intel: results from intel compiler
results_gfort: results from gfortran compiler
psd.txt_intel/gfort: pore size distribution from intel/gfortran compiler
time_cpu_intel/gfortran: cpu time for intel/gfortran compiler
These files are located in each of the respective material folder (HKUST1,
IRMOF1, MOF180, MIL47)
Below we summarize some key results for these case studies as a function
of the cubelet size. The data is for hard-sphere surface area, crystal density,
Helium pore volume, maximum pore size, pore limiting diameter, and CPU (Linux)
time of the calculation.
Note that only the maximum pore size, pore limiting diameter, CPU time and pore
size distribution depend on the cubelet size.
SA (m2/g) rho (g/cm3) Vpore (He, cm3/g) Dmax (A) PLD CPU(gfortran) v.3.0.2 (v3.0)
--------------------------------------------------------------------------------------------------------------
HKUST1 1910.59 0.879 0.853 12.74 6.37 1m32.725s (3m3.888s)
--------------------------------------------------------------------------------------------------------------
IRMOF1 3378.17 0.604 1.353 14.85 7.65 1m1.104s (1m47.379s)
--------------------------------------------------------------------------------------------------------------
MOF180 5829.66 0.271 3.378 15.22 12.80 31m11.043s (-)
--------------------------------------------------------------------------------------------------------------
MIL47 1324.04 1.000 0.629 7.56 7.01 3m2.679s (4m26.634s)
Comparison with v1.2
IRMOF1
SA (m2/g) rho (g/cm3) Vpore (He, cm3/g) Dmax (A) PLD CPU(gfortran)
--------------------------------------------------------------------------------------------------------------
v1.2 3312.75 0.593 1.363 - 7.25 hours
--------------------------------------------------------------------------------------------------------------
v3.02 3378.17 0.604 1.353 14.85 7.65 1m1.104s (1m47.379s)
MOF180
SA (m2/g) rho (g/cm3) Vpore (He, cm3/g) Dmax (A) PLD CPU(gfortran)
--------------------------------------------------------------------------------------------------------------
v1.2 5940.20 0.267 3.2941 - 12.25 hours
--------------------------------------------------------------------------------------------------------------
v3.02 5829.66 0.271 3.378 14.85 12.80 1m1.104s (1m47.379s)
MOF180 is an important case study. The results provided in the
results files show that the calculated density is higher than the
literature value and as a consequence the reported surface
area is lower than the literature value.
The reason for this that the MOF180.xyz structure contains additional
unresolved duplicates of atoms, making the structure denser.
This provides an illustration that files obtained directly from various
crystallographic packages must be used carefully to ensure that
the xyz file generated from CIF file contains an appropriate
number of atoms and corresponds to a correct crystal density.
Using HKUST1 as an example, it seems:
- ATEN gives an XYZ file with the correct number of atoms (624)
- VESTA and CrystalMaker give XYZ files with 648 atoms. This is
because the 8 Cu atoms on each unit cell face are double-counted.
- Mercury gives an XYZ file with way too many atoms, because it extends
the displayed range of the structure well beyond the unit cell boundaries
(We would like to thank Dr. Michael Fischer, UCL, for carrying out these
important tests).
5. Limitations/other
- The current upper pore diameter is set to 20A.
Change it in the defaults.dat if you anticipate larger pores
in the system
- The accuracy of the PSD, pore limiting diameter etc is governed
by the default lattice size currently set at 0.2A.
- Density of the system is calculated from the xyz file of the structure.
Make sure that the file and the specified dimensions of the cell are correct.
-----------------------------------------
As of March 2013, poreblazer_v3.0.2 is in the testing stage.
Please, send your comments and corrections to
Lev.Sarkisov@ed.ac.uk
About
Poreblazer is a set of Fortran 90 tools for structural characterization of porous materials.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Fortran 97.7%
- Makefile 1.5%
- Other 0.8%