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

"""
Meta solvers.

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

Example:

    >>> import meta
    >>> meta.ThresholdSearch2D('mysolver')
    <meta.shockley.ThresholdSearch2D at 0x42ac2b8>

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

.. autosummary::
   :toctree: meta
   :template: solver.rst

   shockley.ThermoElectric2D
   shockley.ThermoElectricCyl
   shockley.ThermoElectric3D
   shockley.ThresholdSearchCyl
   shockley.ThresholdSearchBesselCyl
   shockley.ThresholdSearch2D
"""


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

    This function automatically loads ``shockley`` submodule and creates
    :class:`~shockley.ThermoElectric2D` class.

    Args:
        name (str): Solver name.
    """
    import meta.shockley
    return meta.shockley.ThermoElectric2D(name)


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

    This function automatically loads ``shockley`` submodule and creates
    :class:`~shockley.ThermoElectricCyl` class.

    Args:
        name (str): Solver name.
    """
    import meta.shockley
    return meta.shockley.ThermoElectricCyl(name)


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

    This function automatically loads ``shockley`` submodule and creates
    :class:`~shockley.ThermoElectric3D` class.

    Args:
        name (str): Solver name.
    """
    import meta.shockley
    return meta.shockley.ThermoElectric3D(name)


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

    This function automatically loads ``shockley`` submodule and creates
    :class:`~shockley.ThresholdSearchCyl` class.

    Args:
        name (str): Solver name.
    """
    import meta.shockley
    return meta.shockley.ThresholdSearchCyl(name)


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

    This function automatically loads ``shockley`` submodule and creates
    :class:`~shockley.ThresholdSearchBesselCyl` class.

    Args:
        name (str): Solver name.
    """
    import meta.shockley
    return meta.shockley.ThresholdSearchBesselCyl(name)


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

    This function automatically loads ``shockley`` submodule and creates
    :class:`~shockley.ThresholdSearch2D` class.

    Args:
        name (str): Solver name.
    """
    import meta.shockley
    return meta.shockley.ThresholdSearch2D(name)
