1
# This file contains a unit cell for building graphene and nanotubes
4
# The 2AtomCellAlignX "molecule" defined below is a minimal unit cell for any
5
# hexagonal tesselation in 2-dimensions. (See "graphene_unit_cell.jpg")
6
# Surfaces constructed with this unit cell can be flat or curved into tubes.
7
# The distance between nearest-neighbor carbon atoms (ie the length of a
8
# carbon-carbon bond) is equal to "d" which I set to 1.420 Angstroms.
10
# d = length of each hexagon's side = 1.42 Angstroms
11
# L = length of each hexagon = 2*d = 2.84 Angstroms
12
# W = width of each hexagon = 2*d*sqrt(3)/2 = 2.4595121467478056 Angstroms
14
# Consequently, the Lattice-cell vectors for singe-layer graphene are:
15
# (2.4595121467478, 0, 0) (aligned with X axis)
16
# (1.2297560733739, 2.13, 0) (2.13 = 1.5*d)
17
# So, to build a sheet of graphite, you could use:
18
# sheet = new Graphene/2AtomCellAlignX [10].move(2.4595121467478,0,0)
19
# [10].move(1.2297560733739,2.13,0)
1
# The minimal unit cell for graphine contains only 2 atoms:
2
# (which I arbitrarily named "C1" and "C2")
28
# atomID molID atomType charge x y z
30
$atom:C1 $mol:... @atom:../C 0.0 -0.61487803668695 -0.355 0.0
31
$atom:C2 $mol:... @atom:../C 0.0 0.61487803668695 0.355 0.0
35
# Now define properties of the Carbon graphene atom
37
write_once("In Init") {
38
pair_style hybrid lj/charmm/coul/charmm 9.0 10.0
6
# atomID molID atomType charge x y z
8
$atom:C1 $mol:... @atom:C 0.0 -0.61487803668695 -0.355 0.0000
9
$atom:C2 $mol:... @atom:C 0.0 0.61487803668695 0.355 0.0000
12
# Now define the "C" atom type
41
13
write_once("Data Masses") {
45
16
write_once("In Settings") {
47
pair_coeff @atom:C @atom:C lj/charmm/coul/charmm 0.068443 3.407
18
pair_coeff @atom:C @atom:C lj/cut/coul/long 0.068443 3.407
49
20
# These Lennard-Jones parameters come from
50
21
# R. Saito, R. Matsuo, T. Kimura, G. Dresselhaus, M.S. Dresselhaus,
51
22
# Chem Phys Lett, 348:187 (2001)
53
24
# Define a group consisting of only carbon atoms in graphene molecules
54
25
group Cgraphene type @atom:C
57
# Notice that the two atoms in the unit-cell above lie in the XY plane.
58
# (Their z-coordinate is zero). It's also useful to have a version of
59
# this object which lies in the XZ plan. So we define this below:
61
2AtomCellAlignXZ = 2AtomCellAlignX.rot(90,1,0,0)
27
write_once("In Init") {
28
pair_style hybrid lj/cut/coul/long 10.0
74
# ------------ Graphite -----------
76
# Note: For graphite: sheets stacked in the Z direction are separated by a
77
# distance of 3.35 Angstroms, and shifted in an alternating +/-Y direction
78
# by a distance of d (1.42 Angstroms). To add additional graphene layers
80
# sheet2 = new Graphene/2AtomCellAlignX [10].move(2.4595121467478,0,0)
81
# [10].move(1.2297560733739,2.13,0)
82
# sheet2[*][*].move(0, 1.42, 3.35)
83
# sheet3 = new Graphene/2AtomCellAlignX [10].move(2.4595121467478,0,0)
84
# [10].move(1.2297560733739,2.13,0)
85
# sheet3[*][*].move(0, -1.42, 6.70)
87
# However, to build a thick sheet of graphite, it would
88
# be more efficient to use a 4-atom unit cell:
92
# # atomID molID atomType charge x y z
93
# write("Data Atoms") {
94
# $atom:C1 $mol:... @atom:../C 0.0 -0.61487803668695 -0.355 0.0
95
# $atom:C2 $mol:... @atom:../C 0.0 0.61487803668695 0.355 0.0
96
# $atom:C3 $mol:... @atom:../C 0.0 -0.61487803668695 1.065 3.35
97
# $atom:C4 $mol:... @atom:../C 0.0 0.61487803668695 1.775 3.35
102
# Then you could create a thick sheet of graphite this way:
104
# graphite = new Graphene/GraphiteCell [10].move(2.4595121467478,0,0)
105
# [10].move(1.2297560733739,2.13,0)
35
# This is a 2-dimensional hexagonal unit cell. The unit vectors are:
37
# (2.4595121467478, 0, 0)
38
# (1.2297560733739, 2.13, 0)
40
# You can create a sheet of single-layer graphene this way:
42
# small_crystal = new Graphene [3].move(2.45951214, 0, 0)
43
# [3].move(1.229756, 2.13, 0)
45
# For thicker sheets, follow the instructions in the "graphite.lt" file.
47
# Note: The length of each carbon-carbon bond is currently 1.42 Angstroms.
48
# To increase it to 1.422 Angstroms, uncomment the following line:
50
# Graphene.scale(1.0014084507042254) # 1.0014084507042254 = 1.422 / 1.42
52
# You will have to change the unit cell lattice vectors (see above) accordingly