pyfebiopt.optimize.optimizers

Adapters that bridge scipy optimizers to the engine interface.

Attributes

BoundsLike

Callback

Classes

OptimizerAdapter

Abstract interface implemented by optimizer adapters.

ScipyLeastSquaresAdapter

Adapter that wraps scipy.optimize.least_squares().

ScipyMinimizeAdapter

Adapter that wraps scipy.optimize.minimize().

Module Contents

pyfebiopt.optimize.optimizers.BoundsLike
pyfebiopt.optimize.optimizers.Callback
class pyfebiopt.optimize.optimizers.OptimizerAdapter

Abstract interface implemented by optimizer adapters.

abstractmethod 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]]

Minimise the objective using the configured optimizer.

Returns:

Tuple of optimal vector and optimizer metadata dictionary.

static build(name: str, options: collections.abc.Mapping[str, float | str | int] | None) OptimizerAdapter

Construct an adapter by name.

Returns:

Concrete OptimizerAdapter ready for use with the engine.

class pyfebiopt.optimize.optimizers.ScipyLeastSquaresAdapter(**kwargs: float | str | int)

Bases: OptimizerAdapter

Adapter that wraps scipy.optimize.least_squares().

Store keyword arguments forwarded to SciPy.

kwargs: dict[str, float | str | int]
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.

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

Bases: OptimizerAdapter

Adapter that wraps scipy.optimize.minimize().

Store method name and keyword arguments.

method = 'L-BFGS-B'
kwargs
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.