pyfebiopt.optimize.optimizers
=============================

.. py:module:: pyfebiopt.optimize.optimizers

.. autoapi-nested-parse::

   Adapters that bridge scipy optimizers to the engine interface.



Attributes
----------

.. autoapisummary::

   pyfebiopt.optimize.optimizers.BoundsLike
   pyfebiopt.optimize.optimizers.Callback


Classes
-------

.. autoapisummary::

   pyfebiopt.optimize.optimizers.OptimizerAdapter
   pyfebiopt.optimize.optimizers.ScipyLeastSquaresAdapter
   pyfebiopt.optimize.optimizers.ScipyMinimizeAdapter


Module Contents
---------------

.. py:data:: BoundsLike

.. py:data:: Callback

.. py:class:: OptimizerAdapter

   Abstract interface implemented by optimizer adapters.


   .. py:method:: minimize(fun: collections.abc.Callable[[numpy.ndarray], numpy.ndarray], jac: collections.abc.Callable[[numpy.ndarray], numpy.ndarray] | None, phi0: numpy.ndarray, bounds: BoundsLike, callbacks: collections.abc.Iterable[Callback] | None = None) -> tuple[numpy.ndarray, dict[str, object]]
      :abstractmethod:


      Minimise the objective using the configured optimizer.

      :returns: Tuple of optimal vector and optimizer metadata dictionary.



   .. py:method:: build(name: str, options: collections.abc.Mapping[str, float | str | int] | None) -> OptimizerAdapter
      :staticmethod:


      Construct an adapter by name.

      :returns: Concrete OptimizerAdapter ready for use with the engine.



.. py:class:: ScipyLeastSquaresAdapter(**kwargs: float | str | int)

   Bases: :py:obj:`OptimizerAdapter`


   Adapter that wraps :func:`scipy.optimize.least_squares`.

   Store keyword arguments forwarded to SciPy.


   .. py:attribute:: kwargs
      :type:  dict[str, float | str | int]


   .. py:method:: minimize(fun: collections.abc.Callable[[numpy.ndarray], numpy.ndarray], jac: collections.abc.Callable[[numpy.ndarray], numpy.ndarray] | None, phi0: numpy.ndarray, bounds: BoundsLike, callbacks: collections.abc.Iterable[Callback] | None = None) -> tuple[numpy.ndarray, dict[str, object]]

      Run SciPy least_squares and report optimizer metadata.

      :returns: Tuple of optimal φ vector and metadata dictionary.



.. py:class:: ScipyMinimizeAdapter(method: str = 'L-BFGS-B', **kwargs: float | str | int)

   Bases: :py:obj:`OptimizerAdapter`


   Adapter that wraps :func:`scipy.optimize.minimize`.

   Store method name and keyword arguments.


   .. py:attribute:: method
      :value: 'L-BFGS-B'



   .. py:attribute:: kwargs


   .. py:method:: minimize(fun: collections.abc.Callable[[numpy.ndarray], numpy.ndarray], jac: collections.abc.Callable[[numpy.ndarray], numpy.ndarray] | None, phi0: numpy.ndarray, bounds: BoundsLike, callbacks: collections.abc.Iterable[Callback] | None = None) -> tuple[numpy.ndarray, dict[str, object]]

      Run SciPy minimize and report optimizer metadata.

      :returns: Tuple of optimal φ vector and metadata dictionary.



