optymus documentation¶
Optimization and Scientific Computing
optymus is a Python library for solving optimization problems in engineering and scientific computing. Built on JAX for automatic differentiation, it provides efficient gradient computation and GPU acceleration. The library supports continuous optimization, topology optimization, and combinatorial optimization (vehicle routing).
Getting Started¶
Install the package:
uv add optymus
Create an optimization problem:
from optymus import Optimizer
from optymus.benchmark import Mccormick
import jax.numpy as jnp
f = Mccormick()
initial_point = jnp.array([2, 2])
Optimize the problem:
opt = Optimizer(f_obj=f,
x0=initial_point,
method='bfgs')
Print the optimization report:
opt.report()
Applications¶
optymus includes specialized support for:
Structural compliance minimization
Topology optimization with PolyMesher
Shape optimization using signed distance functions
Energy minimization in mechanical systems
Vehicle Routing Problem (VRP) with Clarke-Wright savings and local search
See the Examples for detailed tutorials.
Citation¶
If you use optymus in your research, please consider citing the library using the following BibTeX entry:
@software{optymus2025,
author = {da Costa, Kleyton and Menezes, Ivan and Lopes, Helio},
title = {Optymus: Optimization Methods in Python},
year = {2025},
url = {https://github.com/quant-sci/optymus},
note = {Python library for optimization built on JAX}
}