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.
Key Features
- Topology Optimization: PolyMesher-based mesh generation with signed distance functions
- Pre-built Engineering Domains: Cook membrane, Michell truss, MBB beam, Wrench, Suspension
- Structural Analysis Support: Boundary conditions, load definitions, and FEM-ready domains
- Multiple Optimization Methods: Gradient-based (BFGS, Conjugate Gradient, Newton), adaptive (Adam, AdaGrad), and evolutionary (CMA-ES, Differential Evolution, Particle Swarm)
- Constraint Handling: Support for equality and inequality constraints via penalty methods
Getting Started
-
Install optymus:
uv add optymus
-
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()
-
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)
Documentation
Visit the official documentation for:
- Complete API reference
- Optimization method guides
- Mechanical engineering examples
- Topology optimization tutorials
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}
}
Metadata
Release files for optymus 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| optymus-0.1.11.tar.gz | 55.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| optymus-0.1.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.2 kB
Release files / optymus-0.1.11.tar.gz
| Download URL | optymus-0.1.11.tar.gz |
|---|---|
| Size | 55.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
444f4161080f002a638971ed4c1b651c9087ec1566da7e76b16242261d0885eb
|
|
BLAKE2b-256 checksum How to use checksums |
b0d9610b22bc267b0ab835061d2fd075dc882cb43cc2c5f46224f12e9af8ebfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / optymus-0.1.11-py3-none-any.whl
| Download URL | optymus-0.1.11-py3-none-any.whl |
|---|---|
| Size | 72.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f6d2495b2abcc0b75da81b9d0b2d8bcce5b7e99b25af990208485f641a6a9ca
|
|
BLAKE2b-256 checksum How to use checksums |
6a6dbbc38c688491ce2f5bc405b5ead564c045237960ab23616eb2118e02a570
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|