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.SWNTBase

SWNT 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 Atom 1 and 2

    Deprecated since version 0.3.10: Use basis instead

  • 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 nz value.

    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 nz value.

    Deprecated since version 0.2.5: Use Lz instead

  • 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\) SWNT bundle.

>>> 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

Ch SWNT circumference \(|\mathbf{C}_h|\) in
Ch_vec SWNT chiral vector.
Lx Axis-aligned length along the x-axis in Angstroms.
Ly Axis-aligned length along the y-axis in Angstroms.
Lz SWNT length \(L_z = L_{\mathrm{tube}}\) in Angstroms.
M \(M = np - nq\)
N Number of graphene hexagons in nanotube unit cell.
Natoms Number of atoms in nanotube bundle.
Natoms_list list of Natoms per nanotube in bundle.
Natoms_per_bundle Alias for Natoms.
Natoms_per_tube Alias for Natoms_list.
Natoms_per_unit_cell Number of atoms in nanotube unit cell.
Ntubes Number of nanotubes in bundle.
R Symmetry vector \(\mathbf{R} = (p, q)\).
T Length of nanotube unit cell \(|\mathbf{T}|\) in Å.
Tvec SWNT translation vector.
atoms Structure Atoms.
basis NanoStructureBase basis objects.
bundle_density Compute the nanotube bundle density.
bundle_geometry Bundle geometry.
bundle_mass An alias for mass.
bundle_packing Bundle packing.
chiral_angle Chiral angle \(\theta_c\) in degrees.
chiral_type SWNT chiral type.
crystal_cell Structure CrystalCell.
d \(d=\gcd{(n, m)}\)
dR \(d_R=\gcd{(2n + m, 2m + n)}\)
dt Nanotube diameter \(d_t = \frac{|\mathbf{C}_h|}{\pi}\) in Å.
electronic_type SWNT electronic type.
element1 Basis element 1
element2 Basis element 2
fix_Lz bool indicating whether SWNTMixin.Lz is fixed or calculated.
fmtstr Format string.
lattice Structure Crystal3DLattice.
lattice_shift Lattice displacement vector.
linear_mass_density Linear mass density of nanotube in g/Å.
m Chiral index \(m\).
mass Bundle mass.
n Chiral index \(n\).
nx Number of nanotubes along the \(x\)-axis.
ny Number of nanotubes along the \(y\)-axis.
nz Number of nanotube unit cells along the \(z\)-axis.
rt Nanotube radius \(r_t = \frac{|\mathbf{C}_h|}{2\pi}\) in Å.
scaling_matrix CrystalCell.scaling_matrix.
structure An alias to self.
t1 \(t_{1} = \frac{2m + n}{d_{R}}\)
t2 \(t_2 = -\frac{2n + m}{d_R}\)
tube_length Alias for SWNT.Lz
tube_mass An alias for mass.
unit_cell Structure UnitCell.
unit_cell_mass Unit cell mass in atomic mass units.
unit_cell_symmetry_params Tuple of SWNT unit cell symmetry parameters.
vdw_distance Van der Waals distance.
vdw_radius Van 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 dict of constructor parameters.
transform_lattice(scaling_matrix[, ...]) Transform structure lattice.
translate(t[, fix_anchor_points]) Translate crystal cell lattice, basis, and unit cell.