Pyomo solver plugin for the POUNCE interior-point NLP solver
Project description
pyomo-pounce
Pyomo solver plugin for POUNCE, a pure-Rust interior-point NLP solver (a Rust port of IPOPT).
POUNCE speaks the AMPL NL/SOL protocol, so Pyomo drives it through the AMPL Solver Library interface — exactly how Pyomo integrates with IPOPT.
Installation
pip install pyomo-pounce
That single command pulls in the pounce-solver dependency, which
ships a per-platform wheel bundling the pounce executable. After
install, pounce is on your PATH and Pyomo finds it automatically.
Usage
import pyomo_pounce # registers the solver
from pyomo.environ import *
model = ConcreteModel()
model.x = Var(initialize=0.5)
model.obj = Objective(expr=(model.x - 2)**2)
solver = SolverFactory('pounce')
result = solver.solve(model, tee=True)
print(f"x* = {value(model.x)}") # 2.0
Solver Options
Pass options the same way as IPOPT:
solver = SolverFactory('pounce')
solver.options['max_iter'] = 1000
solver.options['tol'] = 1e-10
solver.options['print_level'] = 5
Options are forwarded to POUNCE's OptionsList (ipopt.opt-compatible
keys).
Local development / unsupported platforms
If pounce-solver does not ship a wheel for your platform, the pip
install fails on the dependency. Two workarounds:
-
Build POUNCE from source and put it on
PATH— the plugin resolvespounceviashutil.which, so any binary onPATHworks:# in the pounce repo cargo build --release --bin pounce export PATH="$PWD/target/release:$PATH" pip install --no-deps pyomo-pounce pyomo
-
Install
pounce-solverfrom source via maturin:cd pounce/python && maturin develop --release # then `cargo install --path ../crates/pounce-cli` to get the CLI # since maturin develop does not bundle the binary. pip install pyomo-pounce
License
EPL-2.0, same as POUNCE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyomo_pounce-0.2.0.tar.gz.
File metadata
- Download URL: pyomo_pounce-0.2.0.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80e24a89959713d1bc9da58f369bc57b15fd4629d7dba97c30bb467c3fd7d823
|
|
| MD5 |
237527d8bb54ac3863ae5aa1989954ec
|
|
| BLAKE2b-256 |
dc918747eb9329879f32ae9e203ed7c4a330cb0c85a7bb9db6243116efd3de95
|
Provenance
The following attestation bundles were made for pyomo_pounce-0.2.0.tar.gz:
Publisher:
release-pyomo-pounce.yml on jkitchin/pounce
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyomo_pounce-0.2.0.tar.gz -
Subject digest:
80e24a89959713d1bc9da58f369bc57b15fd4629d7dba97c30bb467c3fd7d823 - Sigstore transparency entry: 1631142927
- Sigstore integration time:
-
Permalink:
jkitchin/pounce@d42f90f02f4c5238b8775b398fdbbb917d6e8694 -
Branch / Tag:
refs/tags/pyomo-pounce-v0.2.0 - Owner: https://github.com/jkitchin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pyomo-pounce.yml@d42f90f02f4c5238b8775b398fdbbb917d6e8694 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyomo_pounce-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pyomo_pounce-0.2.0-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4940f96b9605d0f3a6e2815a50f657b5ec01df23dfdc418e74902996d008c959
|
|
| MD5 |
952ac2dba6c00b25d73445767cfdcbb4
|
|
| BLAKE2b-256 |
cac694437b5b9d0676ed3b21bc475dbf5b5a685079820229af6de3a9bfe52e1f
|
Provenance
The following attestation bundles were made for pyomo_pounce-0.2.0-py3-none-any.whl:
Publisher:
release-pyomo-pounce.yml on jkitchin/pounce
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyomo_pounce-0.2.0-py3-none-any.whl -
Subject digest:
4940f96b9605d0f3a6e2815a50f657b5ec01df23dfdc418e74902996d008c959 - Sigstore transparency entry: 1631142954
- Sigstore integration time:
-
Permalink:
jkitchin/pounce@d42f90f02f4c5238b8775b398fdbbb917d6e8694 -
Branch / Tag:
refs/tags/pyomo-pounce-v0.2.0 - Owner: https://github.com/jkitchin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pyomo-pounce.yml@d42f90f02f4c5238b8775b398fdbbb917d6e8694 -
Trigger Event:
push
-
Statement type: