Skip to content

Commit

Permalink
added a file to build rectangular graphene crylstals ("graphene_recta…
Browse files Browse the repository at this point in the history
…ngular.lt"), and updated the examples to point to it so that people can find it.
  • Loading branch information
jewettaij committed Oct 31, 2022
1 parent f29ba7a commit 8729d17
Show file tree
Hide file tree
Showing 7 changed files with 135 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ A small fraction of unit cells (selected randomly) have a amine group (NH2) atta
[link4](http://moltemplate.org/doc/moltemplate_manual.pdf#subsubsection.8.9.1).)*


#### Hexagonal vs Rectangular

Note: The "graphene.lt" file used here generates *hexagonal* crystals.
If you prefer to create rectangular crystals, a rectangular version
of that file is available
[here](https://github.com/jewettaij/moltemplate/blob/master/moltemplate/force_fields/graphene_rectangular.lt).
(Instructions are included in the comments in that file.)


#### There are no carbon-carbon bonds

In the nanotubes, I did not try to connect the carbon atoms together with bonds. It is possible to build nanotubes with carbon bonds, but this example does not need them. Instead, the carbon atoms in the nanotubes are rigid (as well as the nitrogen atoms which are directly bonded to them). However the nanotubes are allowed to move, as are the remaining atoms in the amine groups (the two hydrogen atoms).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
#####################################################################
# NOTE: This is a hexagonal unit cell. The crystals you make from it
# will be hexagonal. Some users prefer to work with rectangular crystals.
# There is a rectangular version of the graphene unit cell containing 4 atoms:
# https://github.com/jewettaij/moltemplate/blob/master/moltemplate/force_fields/graphene_rectangular.lt
# If you prefer to work with rectangular graphene, download that file and use
# import "graphene_rectangular.lt" in place of this file. (The unit cell
# size and geometry is included in comments at the bottom of that file.)
#####################################################################



# The minimal unit cell for graphine contains only 2 atoms:
# (which I arbitrarily named "c1" and "c2")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,15 @@ at constant volume or at constant pressure.
(In the video above the simulation was run at constant volume.)


#### Hexagonal vs Rectangular

Note: The "graphene.lt" file used here generates *hexagonal* crystals.
If you prefer to create rectangular crystals, a rectangular version
of that file is available
[here](https://github.com/jewettaij/moltemplate/blob/master/moltemplate/force_fields/graphene_rectangular.lt).
(Instructions are included in the comments in that file.)


### Requirements

*To run this system at constant pressure,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
#####################################################################
# NOTE: This is a hexagonal unit cell. The crystals you make from it
# will be hexagonal. Some users prefer to work with rectangular crystals.
# There is a rectangular version of the graphene unit cell containing 4 atoms:
# https://github.com/jewettaij/moltemplate/blob/master/moltemplate/force_fields/graphene_rectangular.lt
# If you prefer to work with rectangular graphene, download that file and use
# import "graphene_rectangular.lt" in place of this file. (The unit cell
# size and geometry is included in comments at the bottom of that file.)
#####################################################################

# The minimal unit cell for graphine contains only 2 atoms:
# (which I arbitrarily named "C1" and "C2")
# (which I arbitrarily named "c1" and "c2")

Graphene {

# atomID molID atomType charge x y z
write("Data Atoms") {
$atom:C1 $mol:... @atom:C 0.0 -0.61487803668695 -0.355 0.0000
$atom:C2 $mol:... @atom:C 0.0 0.61487803668695 0.355 0.0000
$atom:c1 $mol:... @atom:C 0.0 -0.61487803668695 -0.355 0.0000
$atom:c2 $mol:... @atom:C 0.0 0.61487803668695 0.355 0.0000
}

# Now define the "C" atom type
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ Wall {
delete unitcells[8][5-7] # delete 3 unit cells (2 atoms each, 6 atoms total)
delete unitcells[9][5-6] # delete 2 unit cells (2 atoms each, 4 atoms total)
# Optional fine tuning: delete a few additional atoms around the edges
delete unitcells[5][6]/C2 # delete a single atom
delete unitcells[6][5]/C2 # delete a single atom
delete unitcells[6][9]/C1 # delete a single atom
delete unitcells[8][4]/C2 # delete a single atom
delete unitcells[8][8]/C1 # delete a single atom
delete unitcells[9][7]/C1 # delete a single atom
delete unitcells[5][6]/c2 # delete a single atom
delete unitcells[6][5]/c2 # delete a single atom
delete unitcells[6][9]/c1 # delete a single atom
delete unitcells[8][4]/c2 # delete a single atom
delete unitcells[8][8]/c1 # delete a single atom
delete unitcells[9][7]/c1 # delete a single atom
}

# Make two copies of the wall, and place them on either end of the nanotube
Expand Down
17 changes: 13 additions & 4 deletions moltemplate/force_fields/graphene.lt
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
# The minimal unit cell for graphine contains only 2 atoms:
# (which I arbitrarily named "C1" and "C2")
#####################################################################
# NOTE: This is a hexagonal unit cell. The crystals you make from it
# will be hexagonal. Some users prefer to work with rectangular crystals.
# There is a rectangular version of the graphene unit cell containing 4 atoms
# stored in a file named "graphene_rectangular.lt" located in this directory.
#####################################################################



# The minimal unit cell for graphene is hexagonal and contains only 2 atoms:
# (which I arbitrarily named "c1" and "c2")

Graphene {

# atomID molID atomType charge x y z
write("Data Atoms") {
$atom:C1 $mol:... @atom:C 0.0 -0.61487803668695 -0.355 0.0000
$atom:C2 $mol:... @atom:C 0.0 0.61487803668695 0.355 0.0000
$atom:c1 $mol:... @atom:C 0.0 -0.61487803668695 -0.355 0.0000
$atom:c2 $mol:... @atom:C 0.0 0.61487803668695 0.355 0.0000
}

# Now define the "C" atom type
Expand Down
73 changes: 73 additions & 0 deletions moltemplate/force_fields/graphene_rectangular.lt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# This is a rectangular-shaped unit cell for graphene containing 4 atoms.
#
# (Note: The minimal unit cell for graphine is hexagonal and contains only
# 2 atoms. But hexagonal unit cells are not always easy to work with.
# So this rectangular version was included for convenience.)
#
# The size and shape of this rectangular unit cell are described
# in comments below, near the end of this file.


Graphene {

# atomID molID atomType charge x y z
write("Data Atoms") {
$atom:c1 $mol:... @atom:C 0.0 -0.61487803668695 -1.420 0.0000
$atom:c2 $mol:... @atom:C 0.0 0.61487803668695 -0.710 0.0000
$atom:c3 $mol:... @atom:C 0.0 0.61487803668695 0.710 0.0000
$atom:c4 $mol:... @atom:C 0.0 -0.61487803668695 1.420 0.0000
}

# Now define the "C" atom type
write_once("Data Masses") {
@atom:C 12.0
}
write_once("In Settings") {
# i j epsilon sigma
pair_coeff @atom:C @atom:C lj/cut/coul/long 0.068443 3.407

# The Lennard-Jones parameters above were chosen to realistically model
# the interaction between graphene and water
# R. Saito, R. Matsuo, T. Kimura, G. Dresselhaus, M.S. Dresselhaus,
# Chem Phys Lett, 348:187 (2001)
# NOTE: If you want to simulate movement of the carbon atoms, then you must
# choose a more appropriate force field for the carbon atoms, such as
# AIREBO or Tersoff. You can do this by editing the "pair_coeff" above.
# (The paper by C.F. Cornwell, C.R. Welch, J. Chem. Phys. (2011), Vol 134,
# demonstrates how to use the AIREBO potential in LAMMPS.)

# Define a group consisting of only carbon atoms in graphene molecules
group Cgraphene type @atom:C
}
write_once("In Init") {
# -- Default styles (used in this file for graphene carbon) --
units real
atom_style full #(full enables you to to add other molecules later)
pair_style hybrid lj/cut/coul/long 10.0
}
} # Graphene




# This is a 2-dimensional rectangular unit cell. The unit vectors are:
#
# (2.4595121467478, 0, 0)
# (0, 4.26, 0)
#
# You can create a sheet of single-layer graphene this way:
#
# import "graphene_rectangular.lt"
#
# small_crystal = new Graphene [5].move(2.45951214, 0, 0)
# [3].move(0, 4.26, 0)
#
#
# For thicker sheets, follow the instructions in the "graphite.lt" file.
#
# Note: The length of each carbon-carbon bond is currently 1.42 Angstroms.
# To increase it to 1.422 Angstroms, uncomment the following line:
#
# Graphene.scale(1.0014084507042254) # 1.0014084507042254 = 1.422 / 1.42
#
# You will have to change the unit cell lattice vectors (see above) accordingly

0 comments on commit 8729d17

Please sign in to comment.