Translated species
- M.ERDOS
- Topic Author
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
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é
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é
Please Log in to join the conversation.
- ryangmullen
- Offline
- Administrator
Less
More
- Posts: 124
- Karma: 4
- Thank you received: 24
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
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
- Topic Author
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
- M.ERDOS
- Topic Author
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
- ryangmullen
- Offline
- Administrator
Less
More
- Posts: 124
- Karma: 4
- Thank you received: 24
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
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