# Automatically generated. All your changes will be lost on recompilation!

"""
Gain solvers.

This package combines all gain solvers and helper functions that can
create solver classes without a need to explicitly import the proper binary
module.

Example:

    >>> import gain
    >>> gain.FreeCarrierCyl('mysolver')
    <gain.freecarrier.FreeCarrierCyl at 0x42ac2b8>

Solver classes
--------------

.. autosummary::
   :toctree: gain
   :template: solver.rst

   freecarrier.FreeCarrier2D
   freecarrier.FreeCarrierCyl
"""


def FreeCarrier2D(name=''):
    """
    Create FreeCarrier2D solver.

    This function automatically loads ``freecarrier`` submodule and creates
    :class:`~freecarrier.FreeCarrier2D` class.

    Args:
        name (str): Solver name.
    """
    import gain.freecarrier
    return gain.freecarrier.FreeCarrier2D(name)


def FreeCarrierCyl(name=''):
    """
    Create FreeCarrierCyl solver.

    This function automatically loads ``freecarrier`` submodule and creates
    :class:`~freecarrier.FreeCarrierCyl` class.

    Args:
        name (str): Solver name.
    """
    import gain.freecarrier
    return gain.freecarrier.FreeCarrierCyl(name)
