CNT in a diamond Matrix

Respected sir,

I am new to this LAMMPS software. If I had drawn a diamond matrix, how to create a gap in that matrix so as to fit a CNT in it. Please help me with this. I have VMD Topi tools. But I am not getting how to do it. If you can tell the steps, it would be very grateful!

Thanking you
Prasoon Singh

Respected sir,

I am new to this LAMMPS software. If I had drawn a diamond matrix, how to create a gap in that matrix so as to fit a CNT in it. Please help me with this. I have VMD Topi tools. But I am not getting how to do it. If you can tell the steps, it would be very grateful!

you can use either LAMMPS itself or VMD scripting to create space for your nanotube (or rather remove atoms that would overlap).
with VMD you would have to do VMD scripting. there is an example on the TopoTools home page at: https://sites.google.com/site/akohlmey/software/topotools/topotools-tutorial—various-tips-tricks#TOC-Combine-multiple-data-files-with-overlap-detection-and-removal
for further discussion on how to you VMD and how to do scripting, please refer to the VMD user’s guide and ask further questions on the VMD-L mailing list, not here, since these are VMD and not LAMMPS questions.

for removing overlapping atoms with LAMMPS please study the documentation of the “delete_atoms” command.

axel.

At risk of being annoying, I wrote a program called “moltemplate” which might help build this system as well.

I replied to your post in case someone else googling this problem is looking for alternative ways to build these systems. I confess that in your case I’m not sure my “moltemplate” tool is the best choice for you. Moltemplate is currently unable to create bonds between nearby atoms automatically. (Moltemplate currently forces users to supply a file containing a long list of bonds between all pairs of bonded atoms in the system, explicitly. This is often too much trouble for a bonded crystalline system, because there are so many of them. So if you need this feature, I hesitate to recommend moltemplate.)

However if you can live without explicit bonds between carbon atoms in the diamond crystal, then moltemplate might be useful. Take a look at the following two examples:
http://moltemplate.org/visual_examples.html#nanotube+water
http://moltemplate.org/visual_examples.html#translocation
Both examples demonstrate how to build crystalline systems, and nanotubes, and how to delete atoms manually. Notice the lack of bonds between atoms in the walls. This is okay, because in both examples, the walls of the system (made out of graphene in the first example) are immobilized, so there is no need to define bonds between these atoms to hold them in place.

If you need to allow the diamond lattice to move (for example because you want to simulate vibrations of the carbon atoms in the diamond crystal), then this approach will not work unless you are willing to use a manybody potential such as AIREBO to keep the diamond atoms in place. Alternatively, if you are content to immobilize the diamond atoms, but you need to allow vibrations of the nanotube, then you can either use the AIREBO potential (not included in the example above), or you can use Axel’s nanotube builder tool (mentioned below), which uses bonded interactions to preserve the shape of the nanotube.

To create diamond, you would have to create a diamond unit cell and use moltemplate’s “new” command create a 3-dimensional array of diamond lattice unit cells. (Pages 16-19 and page 39 of the moltemplate manual demonstrate how to build a rectangular lattice out of water molecules and cut holes in it using moltemplate’s “delete” command. Instead of water, you would supply a diamond unit cell. There is an example using a similar approach to build a crystal of Aluminum here.) At that point, whether you want to allow the diamond atoms to move (for example, using the AIREBO potential), or immobilize them would be up to you.

If you do need explicit bonds between the carbon atoms in the nanotube, but are willing to immobilize the diamond atoms (so that they do not need bonds to remain stationary), then you can use Axel’s useful nanotube builder VMD tool to create a nanotube, save the result as a LAMMPS data file, import the data file into moltemplate (using “ltemplifly.py”) and then use moltemplate to build the complete system (including the diamond and the nanotube). This approach is sketched here:
http://moltemplate.org/examples/nanotube+water/chiral_nanotubes.html

I’m not at all sure that this would be easier than simply using VMD and topotools to build the entire system.

So, by all means, try your current method first.
If you run into difficulty, take a look at the moltemplate examples above.
It’s good to have backup options…

(If I enjoyed programming in TCL any more than I currently do, I probably would have never written moltemplate.)

Cheers

Andrew

Axel mentioned a great way to solve this problem in another thread, and I thought I’d CC it here:

I would like to know if there is any way to remove a group of atoms from a diamond matrix so that I can insert a carbon nanotube in it. I am not able to do it. Can anyone help me with this?

option 1: define a cylinder region of the dimensions of your nanotube and delete the diamond atoms with the delete_atoms command

details:
https://lammps.sandia.gov/doc/region.html
https://lammps.sandia.gov/doc/delete_atoms.html

I completely forgot about this method. (I tend to overlook LAMMPS’ built-in script commands for building systems.) As long as you don’t need explicit bonds between the carbon atoms in the diamond lattice, you can also use the “create_atoms” LAMMPS command to build the diamond crystal:

https://lammps.sandia.gov/doc/create_atoms.html

However, you would still have to create a LAMMPS “DATA” file describing the carbon nanotube. (The LAMMPS’ “create_atoms” command is not as powerful as a real molecule building tool, and you won’t be able to build a nanotube or a molecule very easily without creating a DATA file. Incidentally, there’s a list of data-file creation tools here and here and here.) Then after you create the diamond lattice, and delete the diamond atoms in the cylindrical region (as described above), you could then use the “read_data” command to load your DATA file for the nanotube:

https://lammps.sandia.gov/doc/read_data.html