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

Class Grow

object --+
         |
        Grow

Manage the details of how to attach cells to the lattice of the desired shape. Most of this class is really just to manage grow parameters which are derived by applying the symmetry operations on a set of basic grow parameters given below.

Instance Methods [hide private]
 
__init__(self, edgetype1, edgetype2, ncell1, ncell2, no_double_bonds)
Create an instance.
numpy.array, numpy.array
getGrowVectors(self, lattvec1, lattvec2)
Return the two vectors needed to grow the honeycomb lattice with the specified types of edges.
dict
getNeighborTypes(self)
Return a dictionary of neighbor types.
 
organizeDoubleBonds(self, growindex1, growindex2, cellstructure)
Organize double bonds in the cell so that they do not conflict with neighboring cells.
list of ints
getRedundantAtoms(self, deltas, neighbortypes)
Return a list of atoms in the current cell that will be redundant with its neighboring cells when placed in the lattice.
dict
getBondingInfo(self, deltas, neighbortypes)
Return the details for attaching cells to the lattice.
list of ints
getAtomsToTerminate(self, growindex1, growindex2, logger=None)
Return a list of atoms in the current cell that are not shared with any other cell.

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

Class Variables [hide private]
  TERMINDICIES = [1, 2, 6]
  GROWINDICIES = [3, 4, 5]
  ALLINDICIES = [1, 2, 3, 4, 5, 6]
  ZIGZAG_BY_ONE_BASE = [2]
  ARMCHAIR_BY_ONE_BASE = [1, 2]
  ONE_BY_ZIGZAG_BASE = [6]
  ONE_BY_ARMCHAIR_BASE = [1, 6]
  TYPE1NEIGHBOR = (-1, 0)
  TYPE2NEIGHBOR = (0, -1)
  TYPEZZNEIGHBOR = (-1, 1)
  TYPEAANEIGHBOR = (-1, -1)
  index = 6
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, edgetype1, edgetype2, ncell1, ncell2, no_double_bonds)
(Constructor)

 

Create an instance.

Parameters:
  • edgetype1 (str) - type of edge for lattice side 1
  • edgetype2 (str) - type of edge for lattice side 2
  • ncell1 (int) - number of cells along lattice side 1
  • ncell2 (int) - number of cells along lattice side 2
  • no_double_bonds (bool) - disable the formation of double bonds
Overrides: object.__init__

getGrowVectors(self, lattvec1, lattvec2)

 

Return the two vectors needed to grow the honeycomb lattice with the specified types of edges.

Parameters:
  • lattvec1 (numpy.array) - lattice vector 1
  • lattvec2 (numpy.array) - lattice vector 2
Returns: numpy.array, numpy.array
growvec1, growvec2, the two lattice grow vectors

getNeighborTypes(self)

 

Return a dictionary of neighbor types.

Returns: dict
neighbortypes, as keys has tuples of deltas to neighboring positions and as values has NeighborTypes

organizeDoubleBonds(self, growindex1, growindex2, cellstructure)

 

Organize double bonds in the cell so that they do not conflict with neighboring cells.

Parameters:
  • growindex1 (int) - grow index 1
  • growindex2 (int) - grow index 2
  • cellstructure (schrodinger.structure.Structure) - structure for this cell

getRedundantAtoms(self, deltas, neighbortypes)

 

Return a list of atoms in the current cell that will be redundant with its neighboring cells when placed in the lattice. Unit cell numbering, rather than lattice numbering, is used.

Parameters:
  • deltas (list of tuples) - deltas to neighboring cells
  • neighbortypes (dict) - contains as keys the deltas for potential neighbors and as values NeighborTypes
Returns: list of ints
redundantatoms, list of redundant atoms

getBondingInfo(self, deltas, neighbortypes)

 

Return the details for attaching cells to the lattice.

Parameters:
  • deltas (list of tuples) - deltas to neighboring cells
  • neighbortypes (dict) - contains as keys the deltas for potential neighbors and as values NeighborTypes
Returns: dict
bonds_to_neighbors, dictionary containing as keys the deltas to neighboring cells from cell (growindex1, growindex2) and as values a list of neighbor-cell atom pairs to bond along with the maximum possible bond order as the last entry. Pairs are given using the unit cell numbering rather than the lattice numbering.

getAtomsToTerminate(self, growindex1, growindex2, logger=None)

 

Return a list of atoms in the current cell that are not shared with any other cell. Unit cell numbering, rather than lattice numbering, is used.

Parameters:
  • growindex1 (int) - grow index 1
  • growindex2 (int) - grow index 2
  • logger (logging.getLogger) - output logger
Returns: list of ints
atoms_to_terminate, list of unshared atoms