The Overview
- Build Nanotube
- Create Graphene Sheet
- Make hole in the sheet
- Join Graphene and Nanotube
- Add other molecules
Building Nanotube
This is an elementary task. Open vmd. Go to Extensions->Modeling->Nanotube Builder
There are two sections here, first is the nanotube builder.
Specify the n and m index for your nanotube. If you are confused, well these two indices
help to determine the diameter of your nanotube.
Use this formula to evaluate your n and m values.
Diameter = a*sqrt(n^2+n*m+m^2)
Here, a = 2.49 Angstrom is the lattice constant of the graphene honeycomb lattice.
Sample Outputs:
n | m | Diameter (A) |
---|---|---|
0 | x | a*x |
x | x | a*sqrt(3)*x |
4 | 5.25 | 20 |
5 | 7 | 30 |
Next, click on "Generate Nanotube" button.
A Nanotube will be constructed in VMD, now we need to
save the coordinates. Select the molecule in the vmd Main window,
click on the File Tab and select Save Coordinates.
Click save, give a name "nano.pdb".
Check the radius as this value will be useful later.
Goto Extensions->Tk Console, next execute the following commands:
set all [atomselect top "all"]
measure minmax $all
This will give you the minimum and maximum (x,y,z) coordinates of the nanotube.
Substract the max and min values in x and y directions to get the radius.
Creating Graphene sheets
This is another trivial task. First delete the already loaded nanotube molecule from vmd. In the tkconsole window, type (where 0 is the molecule id):
mol delete 0
In the same Nanotube Builder window, there is an option to build Graphene sheets too. Give the side lengths of the Graphene sheet. Choose number of layers as 1, and keep the edge type to be armchair. Finally click on Generate Sheet. Again save the coordinates as done above, give it a name "gra.pdb"
Hole in the wall
Load the gra.pdb file you just made, now we need to make holes in this.
Not just any other hole, but one around the center of the sheet.
So, we would need to find the center, and make a circle aorund it, and
remove the atoms within the circle. Simple :)
Go to Extensions, and select Tk console.
Have a look at the link, if you are unfamiliar with the console.
Now, we need to select the atoms, whose center of mass we need.
Type the following:
set all [atomselect top "all"] measure center $all
This will give an output of the com (xcom, ycom, zcom). The radius will be the same as your nanotube radius. To select all the atoms within this circle, type:
set bc [atomselect top "not (name C and ((x-xcom)^2+(y-ycom)^2)<=radius^2)"]
where, you need to specify values in place of xcom, ycom and rad. The new variable $bc contains all the atoms that are not in the hole. to print out the pdb file, type:
$bc writepdb hole.pdb
That should work fine and your new hole.pdb should be created in the current directory. (Just write pwd in your terminal to check your current directory). Next, delete the gra.pdb from VMD, and load the hole.pdb file. Have a look and confirm that it worked :)
Perfect Placement
We have the nanotube and the graphene-with-holes (gwh) pdb file. But, for the channel
they need to be in a specific position. The Graphene walls will block
the molecules from moving randomly throughout the cell, and the tube will be the only choice of
itinerary for our friends. This work will be done using Packmol. You might want to check out my
earlier
Karp to learn some basics of Packmol.
Lets imagine what we are trying to achieve!
There will be a graphene sheet (with hole in the middle),
the tube should be aligned
with this hole, and finally, there should be another graphene sheet
(again with hole) at the end
of the tube.
We will first fix one gwh at [xcom,ycom,0], xcom and ycom are the com of the gwh. Next, we need to place
the nanotube such that it touches the gwh. For this, we put the nanotube at [xcom, ycom, zncom], where again,
xcom and ycom are the com of the gwh, while zncom is equal to half the length of nanotube.
Finally, we fix the other gwh at the end of the nanotube, i.e. at [xcom, ycom, lnt] {lnt--> length of nanotube}
This is the packmol script for the above actions. Run it to get the final structure.
A step further
Once you have the structure (or channel), you need to add other molecules. For this, you can use some simple arithmetic to place those molecules within the Box dimensions that are covered by the graphene walls. Here is a sample script to place the other molecules.
Enjoy :)
Top Karpa
Let me know if I erred!!