SWNT¶
-
class
sknano.core.structures.SWNT(*args, nx=1, ny=1, bundle_packing=None, bundle_geometry=None, **kwargs)[source] [edit on github][source]¶ Bases:
sknano.core.structures.NanotubeBundleBase,sknano.core.structures.SWNTBaseSWNT structure class.
Parameters: - *Ch –
Either a 2-tuple of integers (i.e., *Ch = ((n, m)) or 2 integers (i.e., *Ch = (n, m) specifying the chiral indices of the nanotube chiral vector \(\mathbf{C}_h = n\mathbf{a}_1 + m\mathbf{a}_2 = (n, m)\).
- nx (
int, optional) – Number of nanotubes along the \(x\) axis - ny (
int, optional) – Number of nanotubes along the \(y\) axis - nz (
int, optional) – Number of repeat unit cells in the \(z\) direction, along the length of the nanotube. - basis ({
list}, optional) –List of
strs of element symbols or atomic number of the two atom basis (default: [‘C’, ‘C’])New in version 0.3.10.
- element2 (element1,) –
Element symbol or atomic number of basis
Atom1 and 2Deprecated since version 0.3.10: Use
basisinstead - bond (float, optional) – \(\mathrm{a}_{\mathrm{CC}} =\) distance between nearest neighbor atoms. Must be in units of Angstroms.
- Lz (float, optional) –
Length of nanotube in units of Angstroms. Overrides the
nzvalue.New in version 0.2.5.
Changed in version 0.4.0: Changed units from nanometers to Angstroms
- tube_length (float, optional) –
Length of nanotube in units of Angstroms. Overrides the
nzvalue.Deprecated since version 0.2.5: Use
Lzinstead - 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.New in version 0.2.6.
- verbose (bool, optional) – if
True, show verbose output
Examples
>>> from sknano.core.structures import SWNT
Create a SWNT with \(\mathbf{C}_{h} = (10, 10)\) chirality.
>>> swnt = SWNT((10, 10), verbose=True) >>> print(swnt) SWNT((10, 10), nz=1) n: 10 m: 10 t₁: 1 t₂: -1 d: 10 dR: 30 N: 20 R: (1, 0) θc: 30.00° Ch: 42.60 Å T: 2.46 Å dt: 13.56 Å rt: 6.78 Å electronic_type: metallic
Change the chirality to \(\mathbf{C}_{h} = (20, 10)\).
>>> swnt.n = 20 >>> print(swnt) SWNT((20, 10), nz=1) n: 20 m: 10 t₁: 4 t₂: -5 d: 10 dR: 10 N: 140 R: (1, -1) θc: 19.11° Ch: 65.07 Å T: 11.27 Å dt: 20.71 Å rt: 10.36 Å electronic_type: semiconducting, type 2
Change the chirality to \(\mathbf{C}_{h} = (20, 0)\).
>>> swnt.m = 0 >>> print(swnt) SWNT((20, 0), nz=1) n: 20 m: 0 t₁: 1 t₂: -2 d: 20 dR: 20 N: 40 R: (1, -1) θc: 0.00° Ch: 49.19 Å T: 4.26 Å dt: 15.66 Å rt: 7.83 Å electronic_type: semiconducting, type 1
The next example defines a \(\mathbf{C}_{h} = (10, 10)\) hexagonally close packed (hcp) \(5\times 3\times 10\)
SWNTbundle.>>> swnt_bundle = SWNT((10, 10), nx=5, ny=3, nz=10, bundle_packing='hcp') >>> print(swnt_bundle) SWNT((10, 10), nx=5, ny=3, nz=10, basis=['C', 'C'], bond=1.42, bundle_packing='hcp', bundle_geometry=None)
Attributes
ChSWNT circumference \(|\mathbf{C}_h|\) in Å Ch_vecSWNT chiral vector. LxAxis-aligned length along the x-axis in Angstroms.LyAxis-aligned length along the y-axis in Angstroms.LzSWNT length \(L_z = L_{\mathrm{tube}}\) in Angstroms. M\(M = np - nq\) NNumber of graphene hexagons in nanotube unit cell. NatomsNumber of atoms in nanotube bundle. Natoms_listlistofNatomsper nanotube in bundle.Natoms_per_bundleAlias for Natoms.Natoms_per_tubeAlias for Natoms_list.Natoms_per_unit_cellNumber of atoms in nanotube unit cell. NtubesNumber of nanotubes in bundle. RSymmetry vector \(\mathbf{R} = (p, q)\). TLength of nanotube unit cell \(|\mathbf{T}|\) in Å. TvecSWNTtranslation vector.atomsStructure Atoms.basisNanoStructureBasebasis objects.bundle_densityCompute the nanotube bundle density. bundle_geometryBundle geometry. bundle_massAn alias for mass.bundle_packingBundle packing. chiral_angleChiral angle \(\theta_c\) in degrees. chiral_typeSWNTchiral type.crystal_cellStructure CrystalCell.d\(d=\gcd{(n, m)}\) dR\(d_R=\gcd{(2n + m, 2m + n)}\) dtNanotube diameter \(d_t = \frac{|\mathbf{C}_h|}{\pi}\) in Å. electronic_typeSWNT electronic type. element1Basis element 1 element2Basis element 2 fix_Lzboolindicating whetherSWNTMixin.Lzis fixed or calculated.fmtstrFormat string. latticeStructure Crystal3DLattice.lattice_shiftLattice displacement vector. linear_mass_densityLinear mass density of nanotube in g/Å. mChiral index \(m\). massBundle mass. nChiral index \(n\). nxNumber of nanotubes along the \(x\)-axis. nyNumber of nanotubes along the \(y\)-axis. nzNumber of nanotube unit cells along the \(z\)-axis. rtNanotube radius \(r_t = \frac{|\mathbf{C}_h|}{2\pi}\) in Å. scaling_matrixCrystalCell.scaling_matrix.structureAn alias to self.t1\(t_{1} = \frac{2m + n}{d_{R}}\) t2\(t_2 = -\frac{2n + m}{d_R}\) tube_lengthAlias for SWNT.Lztube_massAn alias for mass.unit_cellStructure UnitCell.unit_cell_massUnit cell mass in atomic mass units. unit_cell_symmetry_paramsTuple of SWNTunit cell symmetry parameters.vdw_distanceVan der Waals distance. vdw_radiusVan der Waals radius Methods
clear()Clear list of StructureMixin.atoms.generate_bundle_coords()Generate coordinates of bundle tubes. init_bundle_parameters()Initialize bundle attributes. make_supercell(scaling_matrix[, wrap_coords])Make supercell. rotate(**kwargs)Rotate crystal cell lattice, basis, and unit cell. todict()Return dictof constructor parameters.transform_lattice(scaling_matrix[, ...])Transform structure lattice. translate(t[, fix_anchor_points])Translate crystal cell lattice, basis, and unit cell. - *Ch –