pyfebiopt.optimize.jacobian

Finite-difference Jacobian helper used by the optimization engine.

Classes

JacobianComputer

Simple forward-difference Jacobian generator.

Module Contents

class pyfebiopt.optimize.jacobian.JacobianComputer

Simple forward-difference Jacobian generator.

Parameters:
  • perturbation – Step size applied to each optimization parameter (in φ-space).

  • parallel – When True the evaluator distributes column perturbations across a worker pool so FEBio simulations can run concurrently.

  • max_workers – Optional override for the number of worker threads used for parallel evaluation. Defaults to os.cpu_count() when unset.

perturbation: float = 1e-06
parallel: bool = True
max_workers: int | None = None
compute(phi0: Array, theta_fn: collections.abc.Callable[[Array], Array], residual_fn: collections.abc.Callable[[Array, str | None], Array], *, label_fn: collections.abc.Callable[[int], str | None] | None = None, base_residual: Array | None = None) tuple[Array, Array]

Compute residuals and a forward-difference Jacobian.

Returns:

Tuple (r0, J) where r0 is the base residual vector and J is the forward-difference Jacobian matrix.