SMF - Just Installed!

Main Menu

The usage of block_file

Started by Junran Lu, March 19, 2018, 06:57:03 AM

Previous topic - Next topic

Junran Lu

Hi, everyone, I have been using the RASPA code to study the N2 adsorption in Zeolites, it is known that some of cages in zeolites need to be blocked, however, if there not exist a corresponding *.block file, can I use the  *.block file as a attachment to the simulation.input to calculate the N2 adsorption? and if ok, what should I do?

David Dubbeldam

For each specific case (i.e. framework), you need to define your own blocking pockets.

See for example: structures/zeolites/block/LTA_SI.block
You can put this file in your current directory, and then you can set:
BlockPockets                   yes
BlockPocketsFilename           LTA_SI
(see for example: examples/Non-Basic/MC_Adsorption_of_CO2_in_LTA4A_Sodium).

The blocking file looks something like:
0.0        0.0         0.0        4.0
0.5        0.0         0.0        4.0
0.0        0.5         0.0        4.0
0.5        0.5         0.0        4.0

So first the number of pockets in the unit cell, then for each pocket the fractional position and the radius in Angstrom.
Everything within that radius from the given point will be blocked.

Also check the output-file to confirm your pockets have been properly read.

Junran Lu

Hi, David Professor:
Thanks for your reply.
It is mandatory to put the block files in the dictionary: structures/zeolites/block/?

For example, the OFF zeolite, the corresponding "OFF.block" file was generated by the zeo++ code, and I set the option in "simulation.input" file:
   BlockPockets                   yes
   BlockPocketsFilename       OFF

I put the "OFF.block" and "simulation.input" files in the same dictionary; then, I run the simulation.input file, however, in the output-file, I found the "OFF.block" file could not be read.
Is there any solutions to solve the above problem if I put the *.block and simulation.input in the same dictionary?

Looking forward to your reply!

David Dubbeldam

Yes, you can put the block file in the current directory (where the run-file and the simulation.input file is) and it is then properly read.
If your file is called: LTA12345.block
then use:
            BlockPockets                   yes
            BlockPocketsFilename           LTA12345

If it does not work, then make sure you use the latest version (2.0.29). The output-file should start with:

Compiler and run-time data
RASPA 2.0.29

Junran Lu

Thanks for your reply. I will check and download the latest version of RASPA.


Dear Professor Dubbeldam,
I have installed zeo++ and have been trying to generate blockfile from a cif file for a mof but apparently it only accepts cssr format. Am I right?
How can I obtain the cssr file for a mof?
Best regards,

David Dubbeldam

You can use a tool like "openbabel" to convert between different file formats.

sara abbasi

Dear Professor Dubbeldam,
I have installed zeo++, and I have the cssr file from openbabel, when I run the command "./network -ha -block probe_radius num_samples input_structure.cssr" this error is shown: "voro++: periodic cell computation failed". What should I do? please guide me.
Thanks a lot
best regards

David Dubbeldam

Probably best to ask the creators of zeo++.

sara abbasi

Dear Professor Dubbeldam,
I have solved the problem. I want to block inaccessible pores for different zeolites when they adsorb propane or propene. In zeo++ website, the related command is "  ./network -ha -block probe_radius num_samples input_structure.cssr  ". I set a value instead of term "probe_radius" for example 0.5,1,1.5, but the output file is just zero. I will be very grateful if you can guide me.
Thanks a lot
best regards

David Dubbeldam

Probably best to ask the creators of zeo++.
Use a structure that you know is porous so you can interpret the values that zeo++ gives.


Hello Dr. Dubbledam,

I have a question regarding block pockets. I am working on adsorption of propane and carbon dioxide in zeolite NaX. I determined the helium void fraction using RASPA, which comes out to be around 0.49 for NaX with a Si/Al ratio of 1.23. I have also considered two cases for void fraction computation. Case I : with no block file and Case 2 : with a block file FAU.block. In both cases, the void fraction is the same.
I have three questions :
1. Is Widom insertion code in RASPA unable to consider blocked pockets, when the user has specified the .block file ?
2. Can Helium not access the sodalite cages of FAU, which is why the answer is same in both the cases ?
3. Since the He void fraction is same for both Case 1 and Case 2, it may lead to inaccurate excess loadings for both propane and carbon dioxide because the void fraction may contain volume of the inaccessible sodalite cage as well. How do I then know the correct void fraction ?


David Dubbeldam

Just checked the code: the Widom move _does_ check for blocking.
How did you define the blocking-pockets and what is your input-file to switch on blocking for that component?


Hello Dr. Dubbeldam,

Please see attached the simulation input file and the block file. I obtained the block file for the 13X structure ( Si = 86, Al = 106) using Zeo++ and the format is the same as that required in RASPA. The block file has 8 pockets, which should be for the sodalite units in the 13X structure.
I have also defined the input for switching on the block using the format followed in the RASPA examples. 


SimulationType        MonteCarlo
NumberOfCycles        100000
PrintEvery            1000
PrintPropertiesEvery  1000

Forcefield             local
UseChargesFromCIFFile  yes

Framework 0
FrameworkName NaX
UnitCells 1 1 1
ExternalTemperature 298.0

Component 0 MoleculeName             helium
            MoleculeDefinition       local
            BlockPockets             yes
            BlockPocketsFileName     zeoNaX
            WidomProbability         1.0
            CreateNumberOfMolecules  0


0.920026 0.868617 0.846936 3.49194
0.126382 0.106569 0.0971705 3.71214
0.350113 0.356273 0.881404 3.84527
0.61603 0.611122 0.13383 3.75885
0.418688 0.884354 0.342678 3.14328
0.882809 0.374691 0.426361 3.61778
0.65533 0.130399 0.617683 3.96516
0.155449 0.630486 0.585976 3.53465

David Dubbeldam

Without blocking you should get around 0.49. With blocking it should be around 0.4-0.43 depending on the details of FAU.
Check that you use the same definition of the structure in zeo++ so that the pockets really match the structure in the CIF-file.
The centers should be close to the ones in 'structures/zeolites/block/FAU.block'.