# -*- coding: utf-8 -*-
"""
==============================================================================
MWNT bundle class (:mod:`sknano.structures._mwnt_bundle`)
==============================================================================

.. currentmodule:: sknano.structures._mwnt_bundle

"""
from __future__ import absolute_import, division, print_function
from __future__ import unicode_literals
__docformat__ = 'restructuredtext en'

from ._nanotube_bundle import NanotubeBundleBase
from ._mwnt import MWNT

__all__ = ['MWNTBundle']


class MWNTBundle(NanotubeBundleBase, MWNT):
    """MWNT bundle structure class."""
    """Class for generating multi-walled nanotube bundles.

    .. versionadded:: 0.2.20

    Parameters
    ----------
    Ch_list : :class:`python:list`, optional
        (:attr:`~SWNT.n`, :attr:`~SWNT.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 :attr:`~SWNT.chiral_type` of each `MWNT` walls
        will be random and determined by the set of randomly selected
        chiral indices (:attr:`~SWNT.n`, :attr:`~SWNT.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 :math:`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_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
    basis : {:class:`python:list`}, optional
        List of :class:`python:str`\ s of element symbols or atomic number
        of the two atom basis (default: ['C', 'C'])

        .. versionadded:: 0.3.10

    element1, element2 : {str, int}, optional
        Element symbol or atomic number of basis
        :class:`~sknano.core.Atom` 1 and 2

        .. deprecated:: 0.3.10
           Use `basis` instead

    bond : float, optional
        :math:`\\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 MWNTBundle

    """
    pass

# -*- coding: utf-8 -*-
"""
==============================================================================
MWNT bundle class (:mod:`sknano.structures._mwnt_bundle`)
==============================================================================

.. currentmodule:: sknano.structures._mwnt_bundle

"""
from __future__ import absolute_import, division, print_function
from __future__ import unicode_literals
__docformat__ = 'restructuredtext en'

from ._nanotube_bundle import NanotubeBundleBase
from ._mwnt import MWNT

__all__ = ['MWNTBundle']


class MWNTBundle(NanotubeBundleBase, MWNT):
    """MWNT bundle structure class."""
    """Class for generating multi-walled nanotube bundles.

    .. versionadded:: 0.2.20

    Parameters
    ----------
    Ch_list : :class:`python:list`, optional
        (:attr:`~SWNT.n`, :attr:`~SWNT.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 :attr:`~SWNT.chiral_type` of each `MWNT` walls
        will be random and determined by the set of randomly selected
        chiral indices (:attr:`~SWNT.n`, :attr:`~SWNT.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 :math:`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_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
    basis : {:class:`python:list`}, optional
        List of :class:`python:str`\ s of element symbols or atomic number
        of the two atom basis (default: ['C', 'C'])

        .. versionadded:: 0.3.10

    element1, element2 : {str, int}, optional
        Element symbol or atomic number of basis
        :class:`~sknano.core.Atom` 1 and 2

        .. deprecated:: 0.3.10
           Use `basis` instead

    bond : float, optional
        :math:`\\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 MWNTBundle

    """
    pass

# -*- coding: utf-8 -*- ============================================================================== MWNT bundle class (:mod:`sknano.structures._mwnt_bundle`) ==============================================================================  .. currentmodule:: sknano.structures._mwnt_bundle MWNT bundle structure class. Class for generating multi-walled nanotube bundles.      .. versionadded:: 0.2.20      Parameters     ----------     Ch_list : :class:`python:list`, optional         (:attr:`~SWNT.n`, :attr:`~SWNT.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 :attr:`~SWNT.chiral_type` of each `MWNT` walls         will be random and determined by the set of randomly selected         chiral indices (:attr:`~SWNT.n`, :attr:`~SWNT.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 :math:`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_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     basis : {:class:`python:list`}, optional         List of :class:`python:str`\ s of element symbols or atomic number         of the two atom basis (default: ['C', 'C'])          .. versionadded:: 0.3.10      element1, element2 : {str, int}, optional         Element symbol or atomic number of basis         :class:`~sknano.core.Atom` 1 and 2          .. deprecated:: 0.3.10            Use `basis` instead      bond : float, optional         :math:`\\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 MWNTBundle