Skip to main content

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:

  1. Build POUNCE from source and put it on PATH — the plugin resolves pounce via shutil.which, so any binary on PATH works:

    # in the pounce repo
    cargo build --release --bin pounce
    export PATH="$PWD/target/release:$PATH"
    pip install --no-deps pyomo-pounce pyomo
    
  2. Install pounce-solver from 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyomo_pounce-0.4.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyomo_pounce-0.4.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file pyomo_pounce-0.4.0.tar.gz.

File metadata

  • Download URL: pyomo_pounce-0.4.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

Hashes for pyomo_pounce-0.4.0.tar.gz
Algorithm Hash digest
SHA256 69175a45bdd03167e370b0b4347660eb12c5f5ebf4b0c4b2a5965c95400b2930
MD5 9bc3d286242fc01222637852bdbfa7d5
BLAKE2b-256 228ade46693c8892a280bea2b6872bc7193099089183e5f318b8f0b39a7c9879

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyomo_pounce-0.4.0.tar.gz:

Publisher: release-pyomo-pounce.yml on jkitchin/pounce

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyomo_pounce-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: pyomo_pounce-0.4.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

Hashes for pyomo_pounce-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 943e654ec1fbfabc7322d8250719a5f3db57c4a09014efcaff54be7af9ef92d3
MD5 c4e7b73fcd6024d69f154483b190a144
BLAKE2b-256 1c720b5d3e524510058bfc13d6e87141c9f3f9e0bc8ef1b70354895c2a9caa5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyomo_pounce-0.4.0-py3-none-any.whl:

Publisher: release-pyomo-pounce.yml on jkitchin/pounce

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page