Skip to content

quant-sci/optymus

Repository files navigation

PyPI GitHub Documentation Status jax_badge

Structural Optimization and Scientific Computing

optymus is a Python library for solving optimization problems in mechanical engineering and scientific computing. Built on JAX for automatic differentiation, it provides efficient gradient computation and GPU acceleration. The library is designed for structural optimization, topology optimization, and general-purpose numerical optimization.

Getting Started

  1. Install optymus:

    uv add optymus
  2. Basic optimization example:

    from optymus import Optimizer
    from optymus.benchmark import Mccormick
    
    import jax.numpy as jnp
    
    f = Mccormick()
    initial_point = jnp.array([2.0, 2.0])
    
    opt = Optimizer(f_obj=f,
                    x0=initial_point,
                    method='bfgs')
    
    opt.report()
  3. Topology optimization with engineering domains:

    from optymus.benchmark import MbbDomain
    from optymus.methods import polymesher
    
    # MBB beam domain with boundary conditions
    domain = MbbDomain
    
    # Generate polygonal mesh
    result = polymesher(domain=domain, num_elements=100)

Citation

If you use optymus in your research, please cite:

@misc{optymus2024,
  author = {da Costa, Kleyton and Menezes, Ivan and Lopes, Helio},
  title = {Optymus: Optimization Methods in Python},
  year = {2024},
  note = {GitHub Repository},
  url = {https://github.com/quant-sci/optymus}
}

Releases

No releases published

Packages

 
 
 

Contributors

Languages