Translated species

  • M.ERDOS
  • M.ERDOS's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 years 2 months ago #457 by M.ERDOS
Dear Supports,

I am trying to use Cassandra to calculate adsorption isotherms in zeolites. I have looked into the examples and documentation of Cassandra, set up the simulations and they finished without error.

However, I have observed a weird behavior. For example in this system (I attached the input files which I used to run the simulation):
A zeolite structure with one water molecule inside. The initial coordinates are given in a .xyz file for the framework and for a water molecule. The "read_config" option is used the read the coordinates in. I chose to not let anything to move (maximum displacement, rotation are 0). After the simulation (1 cycle) is finished, in the output file the water molecule is shifted on the y-axis by the box size in the negative direction.

I was a bit confused by this and tried other examples. I found that the molecules are shifted by a box size if the coordinates of their center of mass is greater than half the box size (Such as in the above mentioned case the y-coordinate of the center of mass of water was greater than half the box size so it got shifted in the y-direction). However, the framework is not shifted in any case.

Could you please let me know whether I am making some mistakes in my inputs or this is an observed behavior?
If it is then is it a sufficient way to handle the output (translate the molecule by a box size based on the COM)? Why does not get the framework translated?

Thank you for your answer in advance.

Best regards,
Máté
Attachments:

Please Log in to join the conversation.

More
6 years 2 months ago #459 by ryangmullen
Hi Máté,

The positions of all molecules are wrapped by Cassandra to keep the molecule's center-of-mass in a simulation box centered on the origin with boundaries

-Lx/2 <= x <= Lx/2
-Ly/2 <= y <= Ly/2
-Lz/2 <= z <= Lz/2

From your description, I take it that your initial configuration has boundaries 0 <= x <= Lx, etc. If the water molecule's COM has an x-component greater than Lx/2, etc., it will be wrapped into the origin-centered box.

Whether the zeolite atoms get wrapped depends on if you are treating the zeolite as a single molecule, or as several SiO2 molecules. If the former, it's likely that the COM of the zeolite is near (Lx/2, Ly/2, Lz/2), which is the corner of the origin-centered box. If the COM is on the origin side of this corner, then *no* zeolite atoms will be wrapped. If the COM is outside this corner, then *all* zeolite atoms will be wrapped, even the ones that were already in the origin-center box. Alternatively, you can wrap the individual zeolite atoms in your input file, such that all atoms are in the origin-centered box before being read in by Cassandra. (This can be done easily in VMD. Let me know if you need the commands.)

Either way, Cassandra will correctly compute the inter-atomic distances using the minimum image convention.

Ryan

Please Log in to join the conversation.

  • M.ERDOS
  • M.ERDOS's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 years 2 months ago #461 by M.ERDOS
Dear Ryan,

Thank you for your quick reply! It was really helpful. I suspected that this is the case.

Máté

Please Log in to join the conversation.

  • M.ERDOS
  • M.ERDOS's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 years 2 months ago #464 by M.ERDOS
Dear Ryan,

Actually, it would nice if you could provide the commands/script to VMD. I would like to make sure that I am doing the shift properly.

Thank you for your help in advance.

Best regards,
Máté

Please Log in to join the conversation.

More
6 years 1 month ago #477 by ryangmullen
In VMD, you will want to use the PBCTools plugin. The full documentation is available at www.ks.uiuc.edu/Research/vmd/plugins/pbctools/

It looks like your PDB contains the box dimensions in a CRYST1 record. So the command you need is

> pbc wrap -center origin

If you want to draw the box, you can use

> pbc box -center origin

And if your PDB does not have a CRYST1 record, you can set box dimensions using

> pbc set "49.406 49.406 49.406" -all

Lastly, if you want to write out a new PDB with the wrapped coordinates,

> set ALL [atomselect top all]
> $ALL writepdb inp.pdb

where "inp.pdb" is the name of the output file. If you want to write an xyz instead, replace the 'writepdb' command with

> $ALL writexyz inp.xyz
The following user(s) said Thank You: M.ERDOS

Please Log in to join the conversation.

Time to create page: 0.120 seconds