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 Atom 1 and 2

bond : 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):

../_images/10nmx1nm_bilayer.png

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:

../_images/rotated_bilayer.png

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:

../_images/BN_bilayer_rotated_45deg.png

Attributes

atoms Return structure Atoms.
bond Bond length in .
element1 Element symbol of Atom 1.
element2 Element symbol of Atom 2.
structure Alias to structure_data.
structure_data Return StructureData instance.

Methods

generate_structure_data() Generate the full structure coordinates.
save_data([fname, outpath, ...]) Save structure data.