Package schrodinger :: Package application :: Package matsci :: Package nano :: Module sheet :: Class HoneycombUnitCell
[hide private]
[frames] | no frames]

Class HoneycombUnitCell

object --+
         |
        HoneycombUnitCell

Create a unit cell of a honeycomb lattice. The unit cell will be a regular hexagon according to the following coordinate system:

----------------------------------------- | Y | | -------------------- | | / 6 5 \ | | / \ | | / \ | | / \ | | / \ | | / \ | | | 1 O 4 | X | | \ / | | \ / | | \ / | | \ / | | \ / | | \ 2 3 / | | -------------------- | -----------------------------------------

The hexagon will be centered on the origin O where vec(X, O) and vec(Y, O) are the X- and Y-axes and the Z-coordinate is zero. All edge lengths are equivalent and internal small triangles, i.e. triangle(1, O, 2) are equilateral. The following angles will be important: angle(1, 2, 3) = 120 degrees, angle(1, 2, O) = 60 degrees, and angle(1, 2, 6) = 30 degrees. In general the asymmetric unit will contain two atoms. The symmetry operation is C3 and thus symmetry equivalent positions fall into two sets, i.e. [1, 3, 5] and [2, 4, 6]. This unit cell will have single bonds assigned to pairs of adjacent atoms. Unless disabled by the user bonds [1, 2], [3, 4], and [5, 6] will be double bonds.

Instance Methods [hide private]
 
__init__(self, element1, element2, bondlength, no_double_bonds)
Create an instance.
numpy.array, numpy.array
getAsymmetricUnit(self)
Return two vectors to the atoms in the asymmetric unit.
schrodinger.structure.Structure
getStructure(self, symgroup1, symgroup2, no_double_bonds)
Create Structure for the unit cell.
 
setAtomProps(self)
Create structure.atom properties for later use.
 
buildUnitCell(self)
Build the unit cell.

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  ANGLELARGE = math.radians(120)
  ANGLEMEDIUM = math.radians(60)
  ANGLESMALL = math.radians(30)
  NUMATOMS = 6
  NUM_EQUIV_SETS = 2
  NUM_SYM_ATOMS = NUMATOMS/ NUM_EQUIV_SETS
  SYMATOMS = [[1, 3, 5], [2, 4, 6]]
  UNITCELLINDEX = 'i_matsci_Unit_Cell_Index'
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, element1, element2, bondlength, no_double_bonds)
(Constructor)

 

Create an instance.

Parameters:
  • element1 (str) - elemental symbol of the first atom
  • element2 (str) - elemental symbol of the second atom
  • bondlength (float) - bond length between the first and second atoms in Angstrom
  • no_double_bonds (bool) - disable the formation of double bonds
Overrides: object.__init__

getAsymmetricUnit(self)

 

Return two vectors to the atoms in the asymmetric unit.

Returns: numpy.array, numpy.array
asupos1, asupos2, positions of the two atoms in the asymmetric unit

getStructure(self, symgroup1, symgroup2, no_double_bonds)

 

Create Structure for the unit cell.

Parameters:
  • symgroup1 (SymmetryEquiv) - first equivalent group
  • symgroup2 (SymmetryEquiv) - second equivalent group
  • no_double_bonds (bool) - disables the formation of double bonds
Returns: schrodinger.structure.Structure
unitcell, structure for the unit cell