Metadata-Version: 2.4
Name: ccp-performance
Version: 0.4.1
Summary: Centrifugal Compressor Performance calculation.
Author-email: Raphael Timbó <raphaelts@petrobras.com.br>
License: Apache-2.0
Project-URL: Documentation, https://ccp-centrifugal-compressor-performance.readthedocs.io/en/stable/
Project-URL: Bug Tracker, https://github.com/petrobras/ccp/issues
Project-URL: Source Code, https://github.com/petrobras/ccp
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pandas>=0.23
Requires-Dist: pyarrow
Requires-Dist: CoolProp
Requires-Dist: pint>=0.18
Requires-Dist: plotly>=4.7.0
Requires-Dist: toml>=0.10.1
Requires-Dist: openpyxl
Requires-Dist: tqdm
Requires-Dist: ctREFPROP
Requires-Dist: xlsxwriter
Requires-Dist: scikit-learn
Requires-Dist: xlwings; sys_platform == "win32" or sys_platform == "cygwin" or sys_platform == "msys"
Requires-Dist: google-generativeai>=0.8.6
Requires-Dist: markdown>=3.9
Provides-Extra: app
Requires-Dist: streamlit>=1.21.0; extra == "app"
Requires-Dist: sentry-sdk; extra == "app"
Dynamic: license-file

# <img src="https://ccp-centrifugal-compressor-performance.readthedocs.io/en/latest/_static/ccp.png" alt="drawing" width="40"/> Centrifugal Compressor Performance

[![PyPI Version](https://img.shields.io/pypi/v/ccp-performance.svg)](https://pypi.org/project/ccp-performance/)
[![License](https://img.shields.io/pypi/l/ccp-performance.svg)](https://github.com/petrobras/ccp/blob/main/LICENSE)
[![CI](https://github.com/petrobras/ccp/actions/workflows/tests.yml/badge.svg)](https://github.com/petrobras/ccp/actions/workflows/tests.yml)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

ccp is a python library for calculation of centrifugal compressor performance. It uses CoolProp/REFPROP for the gas properties calculations.

```python
import ccp

# ccp uses pint to handle units. Q_ is a pint quantity.
# If a pint quantity is not provided, SI units are assumed.
Q_ = ccp.Q_
ps = Q_(3, 'bar')
Ts = 300

# Define the fluid as a dictionary:
fluid = {
    "CarbonDioxide": 0.8,
    "Nitrogen": 0.2,
}

# Define suction and discharge states:

suc0 = ccp.State(fluid=fluid, p=ps, T=Ts)
disch0 = ccp.State(fluid=fluid, p=Q_(7.255, 'bar'), T=391.1)
disch1 = ccp.State(fluid=fluid, p=Q_(6.754, 'bar'), T=382.1)

# Create performance point(s):

point0 = ccp.Point(
    suc=suc0,
    disch=disch0,
    speed=Q_(7941, 'RPM'),
    flow_m=Q_(34203.6, 'kg/hr'),
    b=0.0285,
    D=0.365,
)
point1 = ccp.Point(
    suc=suc0,
    disch=disch1,
    speed=Q_(7941, 'RPM'),
    flow_m=Q_(36204.8, 'kg/hr'),
    b=0.0285,
    D=0.365,
)

# Create an impeller with those points:

imp = ccp.Impeller([point0, point1])

# Get results from the Impeller with methods such as
imp.head_plot()
imp.disch.T_plot()
```

# Installation

Install ccp with:

```bash
pip install ccp-performance
```

If you work with an AI coding agent (Claude Code, GitHub Copilot, Cursor, Codex), install the ccp agent skill so your agent knows how to build states, points and impellers and run performance analyses:

```bash
ccp-install-skill
```

The skill activates automatically whenever you ask your agent about centrifugal compressor performance with ccp. In Claude Code you can also invoke it explicitly:

```
/ccp create an impeller from these test points and convert the curves to the new suction condition
```

# Documentation 
Access the documentation [here](https://ccp-centrifugal-compressor-performance.readthedocs.io/en/stable/).

# Questions
If you have any questions, you can use the [Discussions](https://github.com/petrobras/ccp/discussions) area in the repository.

# Contributing to ccp
ccp is a community-driven project. If you want to contribute to the project, please
check [CONTRIBUTING.md](https://github.com/petrobras/ccp/blob/main/CONTRIBUTING.md). 
