GrapheneGenerator¶
-
class
sknano.generators.
GrapheneGenerator
(*args, autogen=True, finalize=True, **kwargs)[source] [edit on github][source]¶ Bases:
sknano.generators.RectangularGrapheneGenerator
N
-layer graphene generator class.Changed in version 0.3.11:
GrapheneGenerator
is now a sub-class of theConventionalCellGrapheneGenerator
class to maintain backwards compatibility and also includes 2 new classmethods:from_primitive_cell
andfrom_conventional_cell
.Parameters: - armchair_edge_length (float, optional) –
Length of armchair edge in Angstroms
New in version 0.3.10.
- zigzag_edge_length (float, optional) –
Length of zigzag edge in Angstroms
New in version 0.3.10.
- length (float, optional) –
Length of armchair edge in Angstroms
Deprecated since version 0.3.10: Use
armchair_edge_length
instead - width (float, optional) –
Width of graphene sheet in Angstroms
Deprecated since version 0.3.10: Use
zigzag_edge_length
instead - edge ({'AC', 'armchair', 'ZZ', 'zigzag'}, optional) –
ArmChair or ZigZag edge along the
length
of the sheet.Deprecated since version 0.3.10: No longer used!
- basis ({
list
}, optional) –List of
str
s of element symbols or atomic number of the two atom basis (default: [‘C’, ‘C’])New in version 0.3.10.
- element2 (element1,) –
Element symbol or atomic number of basis
Atom
1 and 2Deprecated since version 0.3.10: Use
basis
instead - bond (float, optional) – bond length between nearest-neighbor atoms in Angstroms.
- nlayers (int, optional) – Number of graphene layers.
- layer_spacing (float, optional) – Distance between layers in Angstroms.
- stacking_order ({'AA', 'AB'}, optional) – Stacking order of graphene layers
- autogen (bool, optional) – automatically generate unit cell and full structure
- verbose (bool, optional) – verbose output
Notes
The
GrapheneGenerator
class and its subclasses generate graphene with either an armchair or zigzag edge using a 4-atom conventional unit cell. If you want to generate graphene as an unrolled nanotube, see theUnrolledSWNTGenerator
class.See also
Examples
Start an interactive python or ipython session, then import the
GrapheneGenerator
class.>>> from sknano.generators import GrapheneGenerator
Now generate a 100 Å AC x 10 Å ZZ graphene nano-ribbon.
>>> armchair_nanoribbon = GrapheneGenerator(armchair_edge_length=100, ... zigzag_edge_length=10)
Save structure data in default
xyz
format:>>> armchair_nanoribbon.save()
The rendered structure look like:
Now let’s generate a 10 Å ZZ x 100 Å AC graphene nano-ribbon.
>>> zigzag_nanoribbon = GrapheneGenerator(armchair_edge_length=10, ... zigzag_edge_length=100) >>> zigzag_nanoribbon.save()
The rendered structure looks like:
Now generate 100 Å AC x 25 Å ZZ, 5 layer,
AB
-stacked graphene.>>> five_layer_graphene = GrapheneGenerator(armchair_edge_length=100, ... zigzag_edge_length=25, ... nlayers=5) >>> five_layer_graphene.save()
The rendered structure looks like:
Now generate single layer, 10 Å x 10 Å sheet of BN Graphene.
>>> BN_graphene = GrapheneGenerator(armchair_edge_length=10, ... zigzag_edge_length=10, ... basis=['B', 'N']) >>> BN_graphene.save()
The rendered structure looks like:
Attributes
N
Number of graphene unit cells. Natoms
N atoms. Natoms_per_layer
Number of atoms per layer. Natoms_per_unit_cell
Number of atoms per unit cell. area
Total area of graphene supercell. atoms
Structure Atoms
.basis
NanoStructureBase
basis objects.crystal_cell
Structure CrystalCell
.element1
Basis element 1 element2
Basis element 2 fmtstr
Format string. lattice
Structure Crystal3DLattice
.lattice_shift
Lattice displacement vector. mass
Total mass of atoms. n1
Number of unit cells along Crystal3DLattice.a1
.n2
Number of unit cells along Crystal3DLattice.a2
.r1
Vector GrapheneMixin.n1
\(\times\)Crystal3DLattice.a1
.r2
Vector GrapheneMixin.n2
\(\times\)Crystal3DLattice.a2
.scaling_matrix
CrystalCell.scaling_matrix
.structure
An alias to self
.unit_cell
Structure UnitCell
.vdw_distance
Van der Waals distance. vdw_radius
Van der Waals radius Methods
clear
()Clear list of StructureMixin.atoms
.finalize
()Finalize structure data by assigning unique ids and types to structure atoms. from_conventional_cell
(**kwargs)classmethod from_primitive_cell
(**kwargs)classmethod generate
([finalize])Generate the full structure coordinates. generate_fname
([armchair_edge_length, ...])Generate a filename string. make_supercell
(scaling_matrix[, wrap_coords])Make supercell. rotate
(**kwargs)Rotate crystal cell lattice, basis, and unit cell. save
([fname])Save structure data. todict
()Return dict
of constructor parameters.transform_lattice
(scaling_matrix[, ...])Transform structure lattice. translate
(t[, fix_anchor_points])Translate crystal cell lattice, basis, and unit cell. write
(*args, **kwargs)Write structure data to file. write_data
(**kwargs)Write LAMMPS data file. write_dump
(**kwargs)Write LAMMPS dump file. write_pdb
(**kwargs)Write pdb file. write_xyz
(**kwargs)Write xyz file. Methods Summary
from_conventional_cell
(**kwargs)classmethod from_primitive_cell
(**kwargs)classmethod Methods Documentation
-
classmethod
from_conventional_cell
(**kwargs)[source] [edit on github][source]¶
-
classmethod
from_primitive_cell
(**kwargs)[source] [edit on github][source]¶
- armchair_edge_length (float, optional) –