Nanostructure data structures (sknano.structures)

This package defines classes for creating abstract object representations of nanostructures including fullerenes, graphene, and nanotubes.

See the specific class doc pages below for detailed documentation on its use.

Contents

Structure Classes

StructureBase([element1, element2, bond, ...]) Base class for creating abstract representation of nano structure.
NanotubeBundleBase([nx, ny, Lx, Ly, ...]) Nanotube bundle structure base class.
MWNTMixin Mixin class for MWNTs.
NanotubeBundleMixin Mixin class for nanotube bundles.
UnrolledSWNTMixin Mixin class for unrolled nanotubes.
Fullerene([N, PG, Ni]) Fullerene structure class.
GraphenePrimitiveCell(**kwargs) Graphene primitive unit cell structure class.
Graphene([length, width, edge, nlayers, ...]) Graphene structure class.
BilayerGraphene([layer_rotation_angle]) Bilayer Graphene structure class.
SWNT([n, m, nz, tube_length, Lz, fix_Lz]) SWNT structure class.
SWNTBundle(**kwargs) SWNT bundle structure class.
MWNT([Ch, Nwalls, Lz, fix_Lz, nz, ...]) MWNT structure class.
MWNTBundle(**kwargs) MWNT bundle structure class.

Compute Functions

Nanotube compute functions:

compute_d(n, m) Compute \(d=\gcd{(n, m)}\)
compute_dR(n, m) Compute \(d_R=\gcd{(2n + m, 2m + n)}\)
compute_N(n, m) Compute \(N = \frac{2(n^2+m^2+nm)}{d_R}\).
compute_t1(n, m) Compute \(t_1 = \frac{2m + n}{d_R}\)
compute_t2(n, m) Compute \(t_2 = -\frac{2n + m}{d_R}\)
compute_Ch(n, m[, bond]) Compute nanotube circumference \(|\mathbf{C}_{h}|\) in .
compute_chiral_angle(n, m[, rad2deg]) Compute chiral angle \(\theta_c\).
compute_T(n, m[, bond, length]) Compute length of nanotube unit cell \(|\mathbf{T}|\) in Å.
compute_dt(n, m[, bond]) Compute nanotube diameter \(d_t\) in Å.
compute_rt(n, m[, bond]) Compute nanotube radius \(r_t\) in Å.
compute_M(n, m) Compute \(M = mp - nq\)
compute_R(n, m[, bond, length]) Compute symmetry vector \(\mathbf{R} = (p, q)\).
compute_R_chiral_angle(n, m[, rad2deg]) Compute “chiral angle” of symmetry vector \(\theta_R\).
compute_symmetry_operation(n, m[, bond]) Compute symmetry operation \((\psi|\tau)\).
compute_psi(n, m) Compute rotation component of symmetry operation \(\psi\) in radians.
compute_tau(n, m[, bond]) Compute translation component of symmetry operation \(\tau\) in .
compute_Lz(n, m, nz[, bond]) Compute \(L_z = L_{\mathrm{tube}}\) in nanometers.
compute_electronic_type(n, m) Compute nanotube electronic type.
compute_Natoms_per_unit_cell(n, m) Compute \(N_{\mathrm{atoms/cell}} = 2N\).
compute_Natoms_per_tube(n, m, nz) Compute \(N_{\mathrm{atoms/tube}}\)
compute_Natoms(n, m, nz) Compute \(N_{\mathrm{atoms/tube}}\)
compute_unit_cell_mass(n, m[, element1, ...]) Compute nanotube unit cell mass in Daltons/atomic mass units (amu) units.
compute_linear_mass_density(n, m[, bond, ...]) Compute nanotube linear mass density (mass per unit length) in grams/nm.
compute_tube_mass(n, m, nz[, element1, element2]) Compute nanotube mass in grams.
compute_bundle_density(n, m[, d_vdw, bond, ...]) Compute nanotube bundle mass density \(\rho_{\mathrm{bundle}}(n, m)\) in \(\mathrm{g/cm^3}\).

Helper functions for working with \((n, m)\) chirality data

cmp_Ch(Ch1, Ch2) Custom comparator function for sorting chirality lists.
filter_Ch(Ch[, even_only, odd_only, ...]) Filter for testing if chirality satisfies given constraint parameters.
filter_Ch_list(Ch_list[, property_filters]) Filter list of chiralities by properties.
generate_Ch_list([ns, ni, nf, dn, ms, mi, ...]) Generate a list of \((n, m)\) chiralities.
generate_Ch_property_grid([compute, imax]) Generate a 2-dimensional, \(i_{\mathrm{max}}\times i_{\mathrm{max}}\) grid of nanotube properties.
get_Ch_indices(Ch) Return the chiral indicies n and m.
get_Ch_type(Ch) Identify the type of nanotube based on its chirality
map_Ch(Ch[, compute]) Map compute function using Ch as input.