sknano.generators.BilayerGrapheneGenerator¶
-
class
sknano.generators.BilayerGrapheneGenerator(autogen=True, **kwargs)[source][source]¶ Bilayer graphene structure generator class.
Parameters: length : float
Length of graphene sheet in nanometers
width : float
Width of graphene sheet in nanometers
edge : {‘AC’, ‘armchair’, ‘ZZ’, ‘zigzag’}, optional
ArmChair or ZigZag edge along the length of the sheet.
element1, element2 : {str, int}, optional
Element symbol or atomic number of basis
Atom1 and 2bond : float, optional
bond length between nearest-neighbor atoms in Angstroms.
layer_spacing : float, optional
Distance between layers in Angstroms.
stacking_order : {‘AA’, ‘AB’}, optional
Stacking order of graphene layers
layer_rotation_angle : {None, float}, optional
Rotation angle of second layer specified in degrees. If specified in radians, then you must set deg2rad=False
deg2rad : bool, optional
The layer_rotation_angle is specified in degrees and needs to be converted to radians.
autogen : bool, optional
if True, automatically generate unit cell and full structure
verbose : bool, optional
verbose output
Examples
Import the BilayerGrapheneGenerator class
>>> from sknano.generators import BilayerGrapheneGenerator
Generate 10 nm wide by 1 nm long AB stacked bilayer-graphene with a ZZ edge:
>>> bi_graphene = BilayerGrapheneGenerator(length=10, width=1, edge='ZZ')
Save structure data in xyz format:
>>> bi_graphene.save_data()
The rendered structure looks like (after rotating 90 degrees so that it better fits the page):
Now generate bilayer-graphene with top layer rotated by 45 degrees.
>>> rotated_bilayer = BilayerGrapheneGenerator(length=10, width=10, ... edge='armchair', ... layer_rotation_angle=45) >>> rotated_bilayer.save_data(fname='rotated_bilayer.xyz')
The rendered structure looks like:
Now generate BN bilayer-graphene with top layer rotated 45 degrees.
>>> rotated_BN_bilayer = BilayerGrapheneGenerator(length=10, width=10, ... edge='zigzag', ... element1='B', ... element2='N', ... layer_rotation_angle=45) >>> rotated_BN_bilayer.save_data(fname='BN_bilayer_rotated_45deg.xyz')
The rendered structure looks like:
Attributes
atomsReturn structure Atoms.bondBond length in Å. element1Element symbol of Atom1.element2Element symbol of Atom2.structureAlias to structure_data.structure_dataReturn StructureDatainstance.Methods
generate_structure_data()Generate the full structure coordinates. save_data([fname, outpath, ...])Save structure data.