Metadata-Version: 2.4
Name: brixta-cement-rawmix
Version: 0.1.0
Summary: Integration-first cement raw-mix optimization contracts and Pyomo/HiGHS orchestration for BRIXTA Cement.
License-Expression: MIT
Project-URL: Repository, https://github.com/habibieebhy/brixta-cement
Project-URL: Issues, https://github.com/habibieebhy/brixta-cement/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyomo<7,>=6.10
Requires-Dist: highspy<2,>=1.8
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: ruff>=0.12; extra == "dev"
Requires-Dist: twine>=6; extra == "dev"
Dynamic: license-file

# brixta-cement-rawmix

`brixta-cement-rawmix` is BRIXTA's integration-first raw-meal optimization layer.

- **Pyomo** owns the algebraic optimization model.
- **HiGHS** owns the LP solve.
- **BRIXTA** owns cement-domain contracts, LSF/SM/AM constraints, material/oxide bounds, orchestration, validation, and normalized results.

No custom optimizer or solver is implemented here.

## 0.1.0 scope

Inputs: raw-material oxide analyses, material percentage bounds, optional cost, LSF/SM/AM target ranges, and optional oxide bounds.

Outputs: optimized material fractions, resulting oxide composition, LSF/SM/AM, objective value, and solver provenance.

Fractions use a `0..1` mass-fraction basis.

The initial formulation is linear. Modulus ratio bounds are expressed as equivalent linear inequalities, avoiding nonlinear division inside the optimization model.

Raw-material chemistry must come from plant/lab data, manual tables, CSV/database imports, or a future XRF adapter.
