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: MWNTGenerator no longer generates MWNT bundles, only single MWNTs. To generate bundled MWNT structure data, use the MWNTBundleGenerator class.

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

bond : 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 by generate_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()
../_images/5shell_mwnt_4040_outer_Ch_1cellx1cellx4.06cells-01.png

Attributes

Lz MWNT length \(L_z = L_{\mathrm{tube}}\) in nanometers.
Natoms Number of atoms in nanotube.
Natoms_per_tube Number of atoms in nanotube \(N_{\mathrm{atoms/tube}}\).
Natoms_per_unit_cell Number of atoms in nanotube unit cell.
Nshells
Ntubes Number of MWNT.
Nwalls
T Length of MWNT unit cell \(|\mathbf{T}|\) in Å.
atoms Return structure Atoms.
bond Bond length in .
chiral_set
chiral_types
dt MWNT diameter \(d_t=\frac{|\mathbf{C}_h|}{\pi}\) in Å.
element1 Element symbol of Atom 1.
element2 Element symbol of Atom 2.
fix_Lz
nz Number of nanotube unit cells along the \(z\)-axis.
rt MWNT radius \(r_t=\frac{|\mathbf{C}_h|}{2\pi}\) in Å.
structure Alias to structure_data.
structure_data Return StructureData instance.
tube_mass MWNT mass in grams.
unit_cell_mass Unit 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()