Package schrodinger :: Package application :: Package matsci :: Package nano :: Module tube :: Class NanoTube
[hide private]
[frames] | no frames]

Class NanoTube

object --+
         |
        NanoTube

Create a nanotube by rolling up a nanotube sheet.

Instance Methods [hide private]
 
__init__(self, element1, element2, bondlength, no_double_bonds, nindex, mindex, ncells, termfrag, min_term_frags)
Create an instance.
 
getChiralAngle(self, logger=None)
Determine the chiral angle of the tube in degrees where the chiral angle is angle(lattvec1, chiral) and is in [0.0, 30.0], 0.0 for zigzag and 30.0 for armchair and the rest are chiral.
 
tubularizeNanoTubeSheet(self, logger=None)
Tubularize the nanotube sheet.
 
rotateTube(self, logger=None)
Rotate the nanotube so that the tube axis is the translation vector.
list of ints
preprocessMatchAtoms(self, inmatch)
Dangling match atoms require two bonding partners so make those atom indicies redundant in the list.
 
bondMatchingEdges(self, matchleft, matchright)
Properly bond the left and right edges which meet each other after rolling.
list of ints
doTermination(self, nanosheet_obj, fragment)
Terminate the nanotube.
 
doBondOrders(self, logger=None)
Assign bond orders to the nanotube.
 
removeHydrogens(self)
Remove all hydrogens from the structure.
 
minTerminatingFrags(self, nanosheet_obj)
Minimize terminating fragments.
 
handleProps(self, chorus_properties)
Handle the structure properties of the tube.
 
printProps(self, logger=None)
Print the properties of this nanotube.
list
getChorusPBC(self)
Return the chorus box PBC.
 
translateTube(self)
Translate the tube so that it is inside the box.
 
buildTube(self, use_finite_bos=True, logger=None)
Build a tube.

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

Class Variables [hide private]
  TITLEKEY = 's_m_title'
  ENTRYKEY = 's_m_entry_name'
  TITLENAME = 'nanotube'
  NINDEX = 'i_matsci_N_Index'
  MINDEX = 'i_matsci_M_Index'
  NCELLS = 'i_matsci_N_Cells'
  RADIUS = 'r_matsci_Radius/Ang.'
  LENGTH = 'r_matsci_Length/Ang.'
  TWOPI = 6.28318530718
  MSGWIDTH = 50
  NUMDECIMAL = 3
hash(x)
  A_VACUUM = 3.35
  C_VACUUM = 3.35
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, element1, element2, bondlength, no_double_bonds, nindex, mindex, ncells, termfrag, min_term_frags)
(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
  • nindex (int) - first chiral index
  • mindex (int) - second chiral index
  • ncells (int) - number of unit cells
  • termfrag (str) - terminate the lattice with a given fragment
  • min_term_frags (bool) - minimize the geometry of terminating fragments
Overrides: object.__init__

getChiralAngle(self, logger=None)

 

Determine the chiral angle of the tube in degrees where the chiral angle is angle(lattvec1, chiral) and is in [0.0, 30.0], 0.0 for zigzag and 30.0 for armchair and the rest are chiral.

Parameters:
  • logger (logging.getLogger) - output logger

tubularizeNanoTubeSheet(self, logger=None)

 

Tubularize the nanotube sheet.

Parameters:
  • logger (logging.getLogger) - output logger

preprocessMatchAtoms(self, inmatch)

 

Dangling match atoms require two bonding partners so make those atom indicies redundant in the list.

Parameters:
  • inmatch (list of ints) - non-redundant list
Returns: list of ints
outmatch, redundant list

bondMatchingEdges(self, matchleft, matchright)

 

Properly bond the left and right edges which meet each other after rolling.

Parameters:
  • matchleft (list of ints) - indicies of atoms on the left
  • matchright (list of ints) - indicies of atoms on the right

doTermination(self, nanosheet_obj, fragment)

 

Terminate the nanotube. Do this by hijacking the HoneycombLattice instance and overwriting some attributes.

Parameters:
  • nanosheet_obj (sheet.HoneycombLattice) - contains information shared between this instance and the nanotube instance
  • fragment (str) - fragment name
Returns: list of ints
nanosheet_obj.frozenatoms, those fragment atoms bound to the nanotube

doBondOrders(self, logger=None)

 

Assign bond orders to the nanotube.

Parameters:
  • logger (logging.getLogger) - output logger

minTerminatingFrags(self, nanosheet_obj)

 

Minimize terminating fragments. Do this by hijacking the HoneycombLattice instance and overwriting some attributes.

Parameters:
  • nanosheet_obj (sheet.HoneycombLattice) - contains information shared between this instance and the nanotube instance

handleProps(self, chorus_properties)

 

Handle the structure properties of the tube.

Parameters:
  • chorus_properties (list) - contains the nine chorus properties, i.e. ax, ay, az, bx, ..., cz

printProps(self, logger=None)

 

Print the properties of this nanotube.

Parameters:
  • logger (logging.getLogger) - output logger

getChorusPBC(self)

 

Return the chorus box PBC.

Returns: list
contains the nine chorus properties, i.e. ax, ay, az, bx, ..., cz

buildTube(self, use_finite_bos=True, logger=None)

 

Build a tube.

Parameters:
  • use_finite_bos (bool) - use a bond order protocol meant for finite molecules
  • logger (logging.getLogger) - output logger