UnrolledSWNTGenerator

class sknano.generators.UnrolledSWNTGenerator(*args, autogen=True, finalize=True, **kwargs)[source] [edit on github][source]

Bases: sknano.generators.NanoStructureGenerator, sknano.core.structures.UnrolledSWNT

Class for generating unrolled nanotube structures.

New in version 0.2.23.

Parameters:
  • m (n,) – Chiral indices defining the nanotube chiral vector \(\mathbf{C}_{h} = n\mathbf{a}_{1} + m\mathbf{a}_{2} = (n, m)\).
  • ny, nz (nx,) – Number of repeat unit cells in the \(x, y, z\) dimensions
  • 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.
  • Ly, Lz (Lx,) –

    Length of bundle in \(x, y, z\) dimensions in Angstroms. Overrides the \(n_x, n_y, n_z\) cell values.

    Changed in version 0.4.0: Changed units from nanometers to Angstroms

  • 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.
  • autogen (bool, optional) – if True, automatically call generate.
  • verbose (bool, optional) – if True, show verbose output

Notes

The UnrolledSWNTGenerator class generates graphene using the nanotube unit cell defined by the chiral vector \(\mathbf{C}_{h} = n\mathbf{a}_{1} + m\mathbf{a}_{2} = (n, m)\). If you want to generate graphene with an armchair or zigzag edge using length and width parameters, see the GrapheneGenerator class.

Examples

First, load the UnrolledSWNTGenerator class.

>>> from sknano.generators import UnrolledSWNTGenerator

Now let’s generate an unrolled \(\mathbf{C}_{\mathrm{h}} = (10, 5)\) SWCNT unit cell.

>>> unrolled_swnt = UnrolledSWNTGenerator(10, 5)
>>> unrolled_swnt.save()

The rendered structure looks like:

../_images/unrolled_1005_1cellx1cell-2.png

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 N atoms.
Natoms_per_layer Number of atoms per layer.
Natoms_per_tube Number of atoms in nanotube \(N_{\mathrm{atoms/tube}}\).
Natoms_per_unit_cell Number of atoms in nanotube unit cell.
R Symmetry vector \(\mathbf{R} = (p, q)\).
T Length of nanotube unit cell \(|\mathbf{T}|\) in Å.
Tvec SWNT translation vector.
area Total area of graphene supercell.
atoms Structure Atoms.
basis NanoStructureBase basis objects.
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_Lx bool indicating whether UnrolledSWNTMixin.Lx is fixed or calculated.
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 Total mass of atoms.
n Chiral index \(n\).
n1 Number of unit cells along Crystal3DLattice.a1.
n2 Number of unit cells along Crystal3DLattice.a2.
nlayers Number of layers.
nx Number of unit cells along the \(x\)-axis.
ny An alias for UnrolledSWNTMixin.nlayers.
nz Number of nanotube unit cells along the \(z\)-axis.
r1 Vector GrapheneMixin.n1 \(\times\) Crystal3DLattice.a1.
r2 Vector GrapheneMixin.n2 \(\times\) Crystal3DLattice.a2.
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.
finalize() Finalize structure data by assigning unique ids and types to structure atoms.
generate([finalize]) Generate structure data.
generate_fname([n, m, nx, nz, fix_Lx, fix_Lz])
generate_unit_cell() Generate the nanotube unit cell.
make_supercell(scaling_matrix[, wrap_coords]) Make supercell.
rotate(**kwargs) Rotate crystal cell lattice, basis, and unit cell.
save([fname, outpath, structure_format, ...]) Save structure data.
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.
write(*args, **kwargs) Write structure data to file.
write_data(**kwargs) Write LAMMPS data file.
write_dump(**kwargs) Write LAMMPS dump file.
write_pdb(**kwargs) Write pdb file.
write_xyz(**kwargs) Write xyz file.

Methods Summary

generate([finalize]) Generate structure data.
generate_fname([n, m, nx, nz, fix_Lx, fix_Lz])
save([fname, outpath, structure_format, ...]) Save structure data.

Methods Documentation

generate(finalize=True)[source] [edit on github][source]

Generate structure data.

classmethod generate_fname(n=None, m=None, nx=None, nz=None, fix_Lx=False, fix_Lz=False, **kwargs)[source] [edit on github][source]
save(fname=None, outpath=None, structure_format=None, center_centroid=True, **kwargs)[source] [edit on github][source]

Save structure data.

See save method for documentation.