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: Ch_list :
list, optional(
n,m) for each SWNT wall in MWNT.Nwalls : int, optional
Number of SWNT walls in MWNT.
Lz : float, optional
MWNT length in nanometers.
min_wall_diameter : float, optional
Minimum MWNT wall diameter, in units of Angstroms.
max_wall_diameter : float, optional
Maximum MWNT wall diameter, in units of Angstroms.
max_walls : int, optional
Maximum number of MWNT walls.
chiral_types : {None, ‘armchair’, ‘zigzag’, ‘achiral’, ‘chiral’}, optional
If None, the
chiral_typeof each MWNT walls will be random and determined by the set of randomly selected chiral indices (n,m).wall_spacing : float, optional
Inter-wall spacing in units of Angstroms. Default value is the van der Waals interaction distance of 3.4 Angstroms.
nx, ny : int, optional
Number of repeat unit cells in the \(x, y\) dimensions.
vdw_radius : float, optional
van der Waals radius of nanotube atoms
bundle_packing : {‘hcp’, ‘ccp’}, optional
Packing arrangement of MWNT bundles. If
bundle_packingis None, then it will be determined by thebundle_geometryparameter ifbundle_geometryis not None. If bothbundle_packingandbundle_geometryare None, thenbundle_packingdefaults to hcp.bundle_geometry : {‘triangle’, ‘hexagon’, ‘square’, ‘rectangle’}, optional
autogen : bool, optional
if True, automatically call
generate.basis : {
list}, optionalList of
strs of element symbols or atomic number of the two atom basis (default: [‘C’, ‘C’])New in version 0.3.10.
element1, element2 : {str, int}, optional
Element symbol or atomic number of basis
Atom1 and 2Deprecated since version 0.3.10: Use
basisinsteadbond : float, optional
\(\mathrm{a}_{\mathrm{CC}} =\) distance between nearest neighbor atoms, in units of Angstroms.
verbose : bool, optional
if True, show verbose output
Examples
>>> from sknano.generators import MWNTBundleGenerator >>> mwntbundle = MWNTBundleGenerator(Nwalls=5, min_wall_diameter=5, Lz=5, ... bundle_geometry='hexagon') >>> mwntbundle.save()
Attributes
Ch_listLxLyLz_listMWNT length \(L_z = L_{\mathrm{tube}}\) in nanometers. NatomsNumber of atoms in nanotube bundle. Natoms_listNatoms_per_bundleNatoms_per_tubeAlias for Natoms_list.Natoms_per_wallAlias for MWNT.Natoms_listNtubesNwallsNumber of MWNT walls. T_listLength of MWNT unit cell \(|\mathbf{T}|\) in Å. atomsStructure StructureAtoms.basisNanoStructureBasebasis atoms.bundle_geometrybundle_massbundle_packingchiral_setSet of all chiral types in MWNT. chiral_typesList of chiral types for each MWNT wall. crystal_cellStructure CrystalCell.dtMWNT wall diameters \(d_t=\frac{|\mathbf{C}_h|}{\pi}\) in Å. dt_listList of MWNT SWNT wall diameters dt\(d_t=\frac{|\mathbf{C}_h|}{\pi}\) in Å.element1Basis element 1 element2Basis element 2 fmtstrFormat string. latticeStructure Crystal3DLattice.max_wall_diametermax_wallsmin_wall_diameternxNumber of nanotubes along the \(x\)-axis. nyNumber of nanotubes along the \(y\)-axis. nz_listNumber of nanotube unit cells along the \(z\)-axis. rtMWNT wall radii \(r_t=\frac{|\mathbf{C}_h|}{2\pi}\) in Å. rt_listList of MWNT SWNT wall radii rt\(r_t=\frac{|\mathbf{C}_h|}{2\pi}\) in Å.scaling_matrixCrystalCell.scaling_matrix.structurePointer to self. structure_dataAlias for BaseStructureMixin.structure.tube_massMWNT mass in grams. unit_cellStructure UnitCell.vdw_distancevan der Waals distance. vdw_radiusvan der Waals radius wall_diametersAlias for MWNTMixin.dt_list.wall_radiiAlias for MWNTMixin.rt_list.wall_spacingwallsList of MWNT SWNT wall structures. Methods
clear()Clear list of BaseStructureMixin.atoms.generate([generate_bundle, ...])Generate structure data. generate_Ch_list([Nwalls, max_walls, ...])generate_bundle()generate_bundle_coords()Generate coordinates of bundle tubes. generate_bundle_from_bundle_coords()generate_dt_mask(dt[, max_dt_diff])Generate boolean mask array. generate_fname([Ch_list, Nwalls, Ntubes, ...])get_wall(Ch)Return the SWNTstructure with chirality Ch.make_supercell(scaling_matrix[, wrap_coords])Make supercell. read_data(*args, **kwargs)read_dump(*args, **kwargs)read_xyz(*args, **kwargs)rotate(**kwargs)Rotate crystal cell lattice, basis, and unit cell. save([fname, outpath, structure_format, ...])Save structure data. todict()transform_lattice(scaling_matrix[, ...])translate(t[, fix_anchor_points])Translate crystal cell basis. update_Ch_list([Nwalls, min_wall_diameter, ...])write_data(**kwargs)write_dump(**kwargs)write_xyz(**kwargs)