1
import "graphene.lt" # defines "Graphene"
4
# ------------ Graphite -----------
6
# Note: For graphite: sheets stacked in the Z direction are separated by a
7
# distance of 3.35 Angstroms, and shifted in an alternating +/-Y direction
8
# by a distance of d (1.42 Angstroms). To add additional graphene layers
10
# sheet2 = new Graphene [10].move(2.4595121467478,0,0)
11
# [10].move(1.2297560733739,2.13,0)
12
# sheet2[*][*].move(0, 1.42, 3.35)
13
# sheet3 = new Graphene [10].move(2.4595121467478,0,0)
14
# [10].move(1.2297560733739,2.13,0)
15
# sheet3[*][*].move(0, -1.42, 6.70)
18
# This should work fine.
19
# However, to build a thick sheet of graphite, it may be less trouble
20
# to use a 4-atom unit cell which includes two graphene layers.
21
# Here is one way to do that:
23
Graphite inherits Graphene {
25
# This allows us to access access the "@atom:C" carbon atom type
26
# whose properties are defined in the "Graphene" object (see "graphene.lt").
27
# That atom is NOT globally defined. It belongs to the "Graphene" object.
28
# This is one way to access it. Alternately, you could redefine it here
30
# atomID molID atomType charge x y z
32
$atom:C1 $mol:... @atom:C 0.0 -0.61487803668695 -0.355 0.0
33
$atom:C2 $mol:... @atom:C 0.0 0.61487803668695 0.355 0.0
34
$atom:C3 $mol:... @atom:C 0.0 -0.61487803668695 1.065 3.35
35
$atom:C4 $mol:... @atom:C 0.0 0.61487803668695 1.775 3.35
38
# Note: The first two lines in the "Data Atoms" section override the positions
39
# of the $atom:C1 and $atom:C2 atoms previously defined in "Graphene"
40
# (which this object inherits). This is okay.
49
# This is a 3-dimensional hexagonal unit cell. The unit vectors are:
51
# (2.4595121467478, 0, 0 )
52
# (1.2297560733739, 2.13, 0 )
55
# Then you could create a thick sheet of graphite this way:
57
# graphite = new Graphite [10].move(2.4595121467478,0,0)
58
# [10].move(1.2297560733739,2.13,0)
61
# (Your graphite slab will contain an even number of graphene sheets.)