Code implementation
 

Carbon nanotube generation

We wrote a Carbon NanoTube GENerator program ( cntgen.c) to calculate to coordinates of all of the carbon atoms in the tube, and determine their connectivity. It compiles a table containing all of the atoms that every atom is bonded to and makes a list of angles from this table. Finally, the program outputs the data in a format readable by NAMD. Since NAMD models bonds and angles with straight and angular harmonic springs of specific rest lengths and rest angles, these connectivity tables are crucial to the construction of a stable nanotube.
 

Preliminary study

The potential energy is calculated by a pairwise summation of a Lennard Jones potentials of the atoms on the first tube and the atoms on the second tube (with parameter =12 meV and =3.4 A) with a cutoff potential at 3.2  and a shifting of the potential in order to have potential continuity at the cutoff distance.
 

Input files for NAMD

NAMD takes its input in a specific format (protein file format). The Carbon NanoTube Generation program formats its data into:

We had to personally create:
 

MD simulation

The molecules were modeled using NAMD, a molecular dynamics program developed by the Theoretical Biophysics Group at the Beckman Institute for Advanced Technology. This code was designed to simulate biomolecular systems and, thus, requires us to input our files in a special format. The input files specify all the positions of the atoms, the connectivity, the bonds parameters, the parameters for non-bonded interaction (ie the Lennard-Jones potential parameters), the constrains applied to the system and the temperature of the simulation.

NAMD interprets the structure by using spring approximations for bonds and angles. Because  the bonds can be seen as springs we do not need to use periodic boundary conditions or put hydrogen bonds at the edges of the tubes.
 

Visualization

The visualization is done by VMD, also developed by the Theoretical Biophysics Group. In our project, the VMD visualization program was used for displaying, animating, and analyzing the output generated by NAMD.