sknano.generators.MWNTGenerator¶
-
class
sknano.generators.MWNTGenerator(autogen=True, **kwargs)[source][source]¶ Class for generating single, multi-walled nanotubes.
Changed in version 0.2.20:
MWNTGeneratorno longer generates MWNT bundles, only single MWNTs. To generate bundled MWNT structure data, use theMWNTBundleGeneratorclass.New in version 0.2.8.
Parameters: n, m : int
Chiral indices defining the nanotube chiral vector \(\mathbf{C}_{h} = n\mathbf{a}_{1} + m\mathbf{a}_{2} = (n, m)\).
nx, ny, nz : int, optional
Number of repeat unit cells in the \(x, y, z\) dimensions.
element1, element2 : {str, int}, optional
Element symbol or atomic number of basis
Atom1 and 2bond : float, optional
\(\mathrm{a}_{\mathrm{CC}} =\) distance between nearest neighbor atoms. Must be in units of Angstroms.
Lx, Ly, Lz : float, optional
length of bundle in \(x, y, z\) dimensions in nanometers. Overrides the \(n_x, n_y, n_z\) cell values.
fix_Lz : bool, optional
Generate the nanotube with length as close to the specified \(L_z\) as possible. If True, then non integer \(n_z\) cells are permitted.
add_outer_shells : bool, optional
Build the MWNT by adding outer shells
New in version 0.2.23.
add_inner_shells : bool, optional
Build the MWNT by adding inner shells
New in version 0.2.23.
max_shells : int, optional
Maximum number of shells per MWNT.
max_shell_diameter : float, optional
Maximum shell diameter, in units of Angstroms.
min_shells : int, optional
Minimum number of shells per MWNT.
min_shell_diameter : float, optional
Minimum shell diameter, in units of Angstroms.
new_shell_type : {None, ‘AC’, ‘ZZ’, ‘achiral’, ‘chiral’}, optional
If None, the chiralities of the new shells are constrained only by their diameter and will be chosen randomly if more than one candidate chirality exists. If not None, then the new_shell_type will be added as a constraint.
shell_spacing : float, optional
Shell spacing in units of Angstroms. Default value is the van der Waals interaction distance of 3.4 Angstroms.
autogen : bool, optional
if True, automatically call
generate_unit_cell, followed bygenerate_structure_data.verbose : bool, optional
if True, show verbose output
Examples
>>> from sknano.generators import MWNTGenerator >>> mwnt = MWNTGenerator(n=40, m=40, max_shells=5, Lz=1.0, fix_Lz=True) >>> mwnt.save_data()
Attributes
LzMWNT length \(L_z = L_{\mathrm{tube}}\) in nanometers. NatomsNumber of atoms in nanotube. Natoms_per_tubeNumber of atoms in nanotube \(N_{\mathrm{atoms/tube}}\). Natoms_per_unit_cellNumber of atoms in nanotube unit cell. NshellsNtubesNumber of MWNT. NwallsTLength of MWNT unit cell \(|\mathbf{T}|\) in Å. atomsReturn structure Atoms.bondBond length in Å. chiral_setchiral_typesdtMWNT diameter \(d_t=\frac{|\mathbf{C}_h|}{\pi}\) in Å. element1Element symbol of Atom1.element2Element symbol of Atom2.fix_LznzNumber of nanotube unit cells along the \(z\)-axis. rtMWNT radius \(r_t=\frac{|\mathbf{C}_h|}{2\pi}\) in Å. structureAlias to structure_data.structure_dataReturn StructureDatainstance.tube_massMWNT mass in grams. unit_cell_massUnit cell mass in atomic mass units. Methods
generate_structure_data()Generate structure data. generate_unit_cell()Generate the MWNT unit cell. save_data([fname, outpath, ...])Save structure data. todict()