sknano.generators.MWNTBundleGenerator

class sknano.generators.MWNTBundleGenerator(autogen=True, **kwargs)[source][source]

Class for generating multi-walled nanotube bundles.

New in version 0.2.20.

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.

vdw_spacing : float, optional

van der Waals distance between nearest neighbor tubes

bundle_packing : {‘hcp’, ‘ccp’}, optional

Packing arrangement of MWNT bundles. If bundle_packing is None, then it will be determined by the bundle_geometry parameter if bundle_geometry is not None. If both bundle_packing and bundle_geometry are None, then bundle_packing defaults to hcp.

bundle_geometry : {‘triangle’, ‘hexagon’, ‘square’, ‘rectangle’}, optional

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 MWNTBundleGenerator
>>> mwntbundle = MWNTBundleGenerator(max_shells=5, Lz=1.0, fix_Lz=True,
...                                  bundle_geometry='hexagon')
>>> mwntbundle.save_data()
../_images/5shell_mwnt_4040_outer_Ch_hcp_7tube_hexagon-01.png

Attributes

Lx
Ly
Lz MWNT length \(L_z = L_{\mathrm{tube}}\) in nanometers.
Natoms Number of atoms in nanotube.
Natoms_per_bundle
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
Nwalls
T Length of MWNT unit cell \(|\mathbf{T}|\) in Å.
atoms Return structure Atoms.
bond Bond length in .
bundle_mass
bundle_packing
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
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 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

compute_bundle_params() Compute/update nanotube bundle parameters.
generate_bundle()
generate_structure_data() Generate structure data.
generate_unit_cell() Generate the MWNT unit cell.
save_data([fname, outpath, ...]) Save structure data.
todict()