Source code for sknano.core.atoms._basis_atoms
# -*- coding: utf-8 -*-
"""
===============================================================================
Atom classes for crystal structures (:mod:`sknano.core.atoms._basis_atoms`)
===============================================================================
.. currentmodule:: sknano.core.atoms._basis_atoms
"""
from __future__ import absolute_import, division, print_function
from __future__ import unicode_literals
__docformat__ = 'restructuredtext en'
from ._lattice_atoms import LatticeAtom, LatticeAtoms
from ._periodic_atoms import PBCAtom, PBCAtoms
from ._xyz_atoms import XYZAtom, XYZAtoms
__all__ = ['BasisAtom', 'BasisAtoms']
[docs]class BasisAtom(PBCAtom, LatticeAtom, XYZAtom):
"""An abstract object representation of a crystal structure basis atom.
Parameters
----------
lattice : :class:`~sknano.core.crystallography.Crystal3DLattice`
xs, ys, zs : float
"""
pass
[docs]class BasisAtoms(PBCAtoms, LatticeAtoms, XYZAtoms):
"""An `Atoms` sub-class for crystal structure basis atoms.
Sub-class of `Atoms` class, and a container class for lists of
:class:`~sknano.core.atoms.BasisAtom` instances.
Parameters
----------
atoms : {None, sequence, `BasisAtoms`}, optional
if not `None`, then a list of `BasisAtom` instance objects or an
existing `BasisAtoms` instance object.
"""
@property
def __atom_class__(self):
return BasisAtom