Return a supercell.

    This functions takes the input unitcell and creates a supercell of it that
    is returned as a new :class:`pywindow.molecular.MolecularSystem`.

    Parameters
    ----------
    system : :attr:`pywindow.molecular.MolecularSystem.system`
        The unit cell for creation of the supercell

    matrix : :class:`numpy.array`
        The unit cell parameters in form of a lattice.

    supercell : :class:`list`, optional
        A list that specifies the size of the supercell in the a, b and c
        direction. (default=[1, 1, 1])

    Returns
    -------
    :class:`pywindow.molecular.MolecularSystem`
        Returns the created supercell as a new :class:`MolecularSystem`.

def make_supercell(system, matrix, supercell=[1, 1, 1]):
    """
    Return a supercell.

    This functions takes the input unitcell and creates a supercell of it that
    is returned as a new :class:`pywindow.molecular.MolecularSystem`.

    Parameters
    ----------
    system : :attr:`pywindow.molecular.MolecularSystem.system`
        The unit cell for creation of the supercell

    matrix : :class:`numpy.array`
        The unit cell parameters in form of a lattice.

    supercell : :class:`list`, optional
        A list that specifies the size of the supercell in the a, b and c
        direction. (default=[1, 1, 1])

    Returns
    -------
    :class:`pywindow.molecular.MolecularSystem`
        Returns the created supercell as a new :class:`MolecularSystem`.

    """
    user_supercell = [[1, supercell[0]], [1, supercell[1]], [1, supercell[1]]]
    system = create_supercell(system, matrix, supercell=user_supercell)
    return MolecularSystem.load_system(system)