processpi 0.0.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- processpi-0.1.1/PKG-INFO +203 -0
- processpi-0.1.1/processpi.egg-info/PKG-INFO +203 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi.egg-info/SOURCES.txt +1 -0
- processpi-0.1.1/setup.py +37 -0
- processpi-0.0.0/PKG-INFO +0 -5
- processpi-0.0.0/processpi.egg-info/PKG-INFO +0 -5
- {processpi-0.0.0 → processpi-0.1.1}/LICENSE +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/README.md +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/base.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/engine.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/cool_brook_white.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/flow_type.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/optimium_pipe_dia.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/pressure_drop_darcy.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/pressure_drop_fanning.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/pump_power.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/reynolds_number.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/fluids/velocity.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/heat_transfer/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/heat_transfer/conduction_heat_loss.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/heat_transfer/convection_heat_loss.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/heat_transfer/heat_exchanger_area.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/mass_transfer/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/mass_transfer/distillation_stage_count.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/mass_transfer/drying_rate.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/reaction_engineering/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/reaction_engineering/catalyst_activity.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/reaction_engineering/reaction_rate.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/reaction_engineering/residence_time.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/thermodynamics/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/thermodynamics/enthalpy_change.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/thermodynamics/entropy_change.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/thermodynamics/heat_of_vaporization.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/aceticacid.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/acetone.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/acrylicacid.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/air.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/ammonia.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/base.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/benzene.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/benzoicacid.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/bromine.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/butane.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/carbondioxide.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/carbonmonoxide.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/carbontetrachloride.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/chlorine.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/chlorobenzene.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/chloroform.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/chloromethane.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/cyanogen.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/cyclohexene.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/ethane.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/ethanol.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/ethylacetate.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/methanol.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/toluene.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/components/water.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/base.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/design_rules.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/engine.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/equipment.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/fittings.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/insulation.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/materials.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/network.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/pipelineresults.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/pipes.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/pumps.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/selection.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/standards.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/pipelines/vessel.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/__init__.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/area.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/base.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/density.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/diameter.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/dimensionless.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/heat_flux.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/heat_of_vaporization.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/heat_transfer_coefficient.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/length.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/mass.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/mass_flowrate.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/pressure.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/specific_heat.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/strings.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/temperature.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/thermal_conductivity.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/thermal_resistance.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/velocity.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/viscosity.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/volume.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi/units/volumetric_flowrate.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi.egg-info/dependency_links.txt +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/processpi.egg-info/top_level.txt +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/pyproject.toml +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/setup.cfg +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/tests/test_engine_network.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/tests/test_network.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/tests/test_pipeline_network.py +0 -0
- {processpi-0.0.0 → processpi-0.1.1}/tests/test_variables.py +0 -0
processpi-0.1.1/PKG-INFO
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: processpi
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Python toolkit for chemical engineering simulations, equipment design, and unit conversions
|
|
5
|
+
Home-page: https://github.com/varma666/ProcessPi
|
|
6
|
+
Author: Raviteja Varma Nadimpalli
|
|
7
|
+
Author-email: your_email@example.com
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/varma666/ProcessPi/issues
|
|
9
|
+
Project-URL: Documentation, https://github.com/varma666/ProcessPi#readme
|
|
10
|
+
Project-URL: Source Code, https://github.com/varma666/ProcessPi
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Dynamic: author
|
|
20
|
+
Dynamic: author-email
|
|
21
|
+
Dynamic: classifier
|
|
22
|
+
Dynamic: description
|
|
23
|
+
Dynamic: description-content-type
|
|
24
|
+
Dynamic: home-page
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
Dynamic: project-url
|
|
27
|
+
Dynamic: requires-python
|
|
28
|
+
Dynamic: summary
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
<p align="center">
|
|
32
|
+
<img src="https://img.shields.io/badge/Process_PI-🧪-blue?style=for-the-badge&logo=python" alt="Process PI Logo" height="40"/>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
<h1 align="center">Process PI</h1>
|
|
36
|
+
|
|
37
|
+
<p align="center">
|
|
38
|
+
<strong>Python toolkit for chemical engineering simulations, equipment design, and unit conversions</strong>
|
|
39
|
+
</p>
|
|
40
|
+
|
|
41
|
+
<p align="center">
|
|
42
|
+
<img src="https://img.shields.io/badge/🛠_Unit_Conversions-blue?style=for-the-badge" alt="Unit Conversions"/>
|
|
43
|
+
<img src="https://img.shields.io/badge/💧_Components-blue?style=for-the-badge" alt="Components"/>
|
|
44
|
+
<img src="https://img.shields.io/badge/🏭_Pumps-Pipelines-blue?style=for-the-badge" alt="Pumps & Pipelines"/>
|
|
45
|
+
<img src="https://img.shields.io/badge/♨️_Heat_Exchangers-blue?style=for-the-badge" alt="Heat Exchangers"/>
|
|
46
|
+
<img src="https://img.shields.io/badge/⚗️_Chemical_Flasks-blue?style=for-the-badge" alt="Chemical Flasks"/>
|
|
47
|
+
</p>
|
|
48
|
+
|
|
49
|
+
<p align="center">
|
|
50
|
+
<a href="https://pypi.org/project/processpi/">
|
|
51
|
+
<img src="https://img.shields.io/pypi/v/processpi?style=for-the-badge&logo=pypi" alt="PyPI Version"/>
|
|
52
|
+
</a>
|
|
53
|
+
<a href="https://github.com/varma666/ProcessPi/stargazers">
|
|
54
|
+
<img src="https://img.shields.io/github/stars/varma666/ProcessPi?style=for-the-badge&logo=github" alt="GitHub Stars"/>
|
|
55
|
+
</a>
|
|
56
|
+
<a href="https://github.com/varma666/ProcessPi/network/members">
|
|
57
|
+
<img src="https://img.shields.io/github/forks/varma666/ProcessPi?style=for-the-badge&logo=github" alt="GitHub Forks"/>
|
|
58
|
+
</a>
|
|
59
|
+
<a href="https://github.com/varma666/ProcessPi/actions">
|
|
60
|
+
<img src="https://img.shields.io/github/actions/workflow/status/varma666/ProcessPi/python-package.yml?branch=main&style=for-the-badge" alt="Build Status"/>
|
|
61
|
+
</a>
|
|
62
|
+
</p>
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<em>Built with ❤️ for chemical engineers.</em>
|
|
66
|
+
</p>
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 📖 Overview
|
|
71
|
+
|
|
72
|
+
**Process PI** is a cross-platform **Python toolkit** for chemical engineering equipment design, simulations, and unit conversions.
|
|
73
|
+
It provides a **modular framework** for learning, experimenting, and simulating process systems.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 📑 Table of Contents
|
|
78
|
+
- [Features](#-features)
|
|
79
|
+
- [Installation](#-installation)
|
|
80
|
+
- [Getting Started](#-getting-started)
|
|
81
|
+
- [Unit Conversions](#1-unit-conversions)
|
|
82
|
+
- [Components](#2-components)
|
|
83
|
+
- [Pipeline Network Analysis](#3-pipeline-network-analysis)
|
|
84
|
+
- [Roadmap](#-roadmap)
|
|
85
|
+
- [License](#-license)
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## ⚡ Features
|
|
90
|
+
|
|
91
|
+
- ⚙️ **Unit Conversion System** – Seamless conversion across SI, CGS, and Imperial units.
|
|
92
|
+
- 🧪 **Components Database (Work in Progress)** – Educational thermodynamic properties of 25+ components (Water, Ethanol, CO₂, etc.), expanding regularly.
|
|
93
|
+
- 🏭 **Equipment Design Modules (WIP)** – Pumps, pipelines, heat exchangers, reactors, and more.
|
|
94
|
+
- 🌐 **Pipeline Networks** – Analyze single pipes and complex networked systems, calculate flow, pressure drops, velocity, and Reynolds numbers.
|
|
95
|
+
- 📊 **Simulation Tools (Upcoming)** – Steady-state/dynamic process analysis, flow optimization, and energy management.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 📦 Installation
|
|
100
|
+
|
|
101
|
+
Install via **PyPI**:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
pip install processpi
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 🚀 Getting Started
|
|
110
|
+
|
|
111
|
+
### 1. Unit Conversions
|
|
112
|
+
|
|
113
|
+
Easily convert between SI, CGS, and Imperial units.
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
from processpi.units import Length, Pressure, Temperature
|
|
117
|
+
|
|
118
|
+
# Length
|
|
119
|
+
l1 = Length(1.5, "m")
|
|
120
|
+
print(l1.to("ft")) # Output in feet
|
|
121
|
+
|
|
122
|
+
# Pressure
|
|
123
|
+
p = Pressure(2, "bar")
|
|
124
|
+
print(p.to("Pa")) # Output in Pascals
|
|
125
|
+
|
|
126
|
+
# Temperature
|
|
127
|
+
t = Temperature(100, "C")
|
|
128
|
+
print(t.to("K")) # Output in Kelvin
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### 2. Components
|
|
134
|
+
|
|
135
|
+
Access educational thermodynamic properties of chemical components.
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
from processpi.components import Water, Ethanol
|
|
139
|
+
|
|
140
|
+
water = Water()
|
|
141
|
+
ethanol = Ethanol()
|
|
142
|
+
|
|
143
|
+
print(f"Water density: {water.density()} kg/m³")
|
|
144
|
+
print(f"Ethanol viscosity: {ethanol.viscosity()} Pa·s")
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
⚠️ **Note**: Component data is provided for **educational and demonstration purposes**. The database is continuously expanding.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### 3. Pipeline Network Analysis
|
|
152
|
+
|
|
153
|
+
Perform hydraulic calculations for pipelines and network systems.
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
from processpi.pipelines.engine import PipelineEngine
|
|
157
|
+
from processpi.pipelines.pipes import Pipe
|
|
158
|
+
from processpi.components import Water
|
|
159
|
+
from processpi.units import VolumetricFlowRate, Diameter, Length
|
|
160
|
+
|
|
161
|
+
pipe = Pipe(
|
|
162
|
+
internal_diameter=Diameter(50, "mm"),
|
|
163
|
+
length=Length(10, "m")
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
engine = PipelineEngine()
|
|
167
|
+
engine.fit(
|
|
168
|
+
flowrate=VolumetricFlowRate(0.001, "m^3/s"),
|
|
169
|
+
pipe=pipe,
|
|
170
|
+
fluid=Water()
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
results = engine.run()
|
|
174
|
+
engine.summary()
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
#### Planned Enhancements
|
|
178
|
+
|
|
179
|
+
- Support for branching and parallel pipeline networks
|
|
180
|
+
- Dynamic flow simulations and transient analysis
|
|
181
|
+
- Cost and energy optimization tools for network layouts
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 🛣 Roadmap
|
|
186
|
+
|
|
187
|
+
- Expand the Components Database to 50+ chemicals and fluids
|
|
188
|
+
- Add steady-state and dynamic simulation modules
|
|
189
|
+
- Implement energy optimization and cost analysis tools
|
|
190
|
+
- Build a GUI/web interface for interactive simulations
|
|
191
|
+
- Enable integration with real process data and sensor-driven workflows
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 📜 License
|
|
196
|
+
|
|
197
|
+
This project is licensed under the **MIT License** – see the LICENSE file for details.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
<p align="center">
|
|
202
|
+
<em>Process PI – Built with ❤️ for chemical engineers.</em>
|
|
203
|
+
</p>
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: processpi
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Python toolkit for chemical engineering simulations, equipment design, and unit conversions
|
|
5
|
+
Home-page: https://github.com/varma666/ProcessPi
|
|
6
|
+
Author: Raviteja Varma Nadimpalli
|
|
7
|
+
Author-email: your_email@example.com
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/varma666/ProcessPi/issues
|
|
9
|
+
Project-URL: Documentation, https://github.com/varma666/ProcessPi#readme
|
|
10
|
+
Project-URL: Source Code, https://github.com/varma666/ProcessPi
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Dynamic: author
|
|
20
|
+
Dynamic: author-email
|
|
21
|
+
Dynamic: classifier
|
|
22
|
+
Dynamic: description
|
|
23
|
+
Dynamic: description-content-type
|
|
24
|
+
Dynamic: home-page
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
Dynamic: project-url
|
|
27
|
+
Dynamic: requires-python
|
|
28
|
+
Dynamic: summary
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
<p align="center">
|
|
32
|
+
<img src="https://img.shields.io/badge/Process_PI-🧪-blue?style=for-the-badge&logo=python" alt="Process PI Logo" height="40"/>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
<h1 align="center">Process PI</h1>
|
|
36
|
+
|
|
37
|
+
<p align="center">
|
|
38
|
+
<strong>Python toolkit for chemical engineering simulations, equipment design, and unit conversions</strong>
|
|
39
|
+
</p>
|
|
40
|
+
|
|
41
|
+
<p align="center">
|
|
42
|
+
<img src="https://img.shields.io/badge/🛠_Unit_Conversions-blue?style=for-the-badge" alt="Unit Conversions"/>
|
|
43
|
+
<img src="https://img.shields.io/badge/💧_Components-blue?style=for-the-badge" alt="Components"/>
|
|
44
|
+
<img src="https://img.shields.io/badge/🏭_Pumps-Pipelines-blue?style=for-the-badge" alt="Pumps & Pipelines"/>
|
|
45
|
+
<img src="https://img.shields.io/badge/♨️_Heat_Exchangers-blue?style=for-the-badge" alt="Heat Exchangers"/>
|
|
46
|
+
<img src="https://img.shields.io/badge/⚗️_Chemical_Flasks-blue?style=for-the-badge" alt="Chemical Flasks"/>
|
|
47
|
+
</p>
|
|
48
|
+
|
|
49
|
+
<p align="center">
|
|
50
|
+
<a href="https://pypi.org/project/processpi/">
|
|
51
|
+
<img src="https://img.shields.io/pypi/v/processpi?style=for-the-badge&logo=pypi" alt="PyPI Version"/>
|
|
52
|
+
</a>
|
|
53
|
+
<a href="https://github.com/varma666/ProcessPi/stargazers">
|
|
54
|
+
<img src="https://img.shields.io/github/stars/varma666/ProcessPi?style=for-the-badge&logo=github" alt="GitHub Stars"/>
|
|
55
|
+
</a>
|
|
56
|
+
<a href="https://github.com/varma666/ProcessPi/network/members">
|
|
57
|
+
<img src="https://img.shields.io/github/forks/varma666/ProcessPi?style=for-the-badge&logo=github" alt="GitHub Forks"/>
|
|
58
|
+
</a>
|
|
59
|
+
<a href="https://github.com/varma666/ProcessPi/actions">
|
|
60
|
+
<img src="https://img.shields.io/github/actions/workflow/status/varma666/ProcessPi/python-package.yml?branch=main&style=for-the-badge" alt="Build Status"/>
|
|
61
|
+
</a>
|
|
62
|
+
</p>
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<em>Built with ❤️ for chemical engineers.</em>
|
|
66
|
+
</p>
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 📖 Overview
|
|
71
|
+
|
|
72
|
+
**Process PI** is a cross-platform **Python toolkit** for chemical engineering equipment design, simulations, and unit conversions.
|
|
73
|
+
It provides a **modular framework** for learning, experimenting, and simulating process systems.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 📑 Table of Contents
|
|
78
|
+
- [Features](#-features)
|
|
79
|
+
- [Installation](#-installation)
|
|
80
|
+
- [Getting Started](#-getting-started)
|
|
81
|
+
- [Unit Conversions](#1-unit-conversions)
|
|
82
|
+
- [Components](#2-components)
|
|
83
|
+
- [Pipeline Network Analysis](#3-pipeline-network-analysis)
|
|
84
|
+
- [Roadmap](#-roadmap)
|
|
85
|
+
- [License](#-license)
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## ⚡ Features
|
|
90
|
+
|
|
91
|
+
- ⚙️ **Unit Conversion System** – Seamless conversion across SI, CGS, and Imperial units.
|
|
92
|
+
- 🧪 **Components Database (Work in Progress)** – Educational thermodynamic properties of 25+ components (Water, Ethanol, CO₂, etc.), expanding regularly.
|
|
93
|
+
- 🏭 **Equipment Design Modules (WIP)** – Pumps, pipelines, heat exchangers, reactors, and more.
|
|
94
|
+
- 🌐 **Pipeline Networks** – Analyze single pipes and complex networked systems, calculate flow, pressure drops, velocity, and Reynolds numbers.
|
|
95
|
+
- 📊 **Simulation Tools (Upcoming)** – Steady-state/dynamic process analysis, flow optimization, and energy management.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 📦 Installation
|
|
100
|
+
|
|
101
|
+
Install via **PyPI**:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
pip install processpi
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 🚀 Getting Started
|
|
110
|
+
|
|
111
|
+
### 1. Unit Conversions
|
|
112
|
+
|
|
113
|
+
Easily convert between SI, CGS, and Imperial units.
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
from processpi.units import Length, Pressure, Temperature
|
|
117
|
+
|
|
118
|
+
# Length
|
|
119
|
+
l1 = Length(1.5, "m")
|
|
120
|
+
print(l1.to("ft")) # Output in feet
|
|
121
|
+
|
|
122
|
+
# Pressure
|
|
123
|
+
p = Pressure(2, "bar")
|
|
124
|
+
print(p.to("Pa")) # Output in Pascals
|
|
125
|
+
|
|
126
|
+
# Temperature
|
|
127
|
+
t = Temperature(100, "C")
|
|
128
|
+
print(t.to("K")) # Output in Kelvin
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### 2. Components
|
|
134
|
+
|
|
135
|
+
Access educational thermodynamic properties of chemical components.
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
from processpi.components import Water, Ethanol
|
|
139
|
+
|
|
140
|
+
water = Water()
|
|
141
|
+
ethanol = Ethanol()
|
|
142
|
+
|
|
143
|
+
print(f"Water density: {water.density()} kg/m³")
|
|
144
|
+
print(f"Ethanol viscosity: {ethanol.viscosity()} Pa·s")
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
⚠️ **Note**: Component data is provided for **educational and demonstration purposes**. The database is continuously expanding.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### 3. Pipeline Network Analysis
|
|
152
|
+
|
|
153
|
+
Perform hydraulic calculations for pipelines and network systems.
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
from processpi.pipelines.engine import PipelineEngine
|
|
157
|
+
from processpi.pipelines.pipes import Pipe
|
|
158
|
+
from processpi.components import Water
|
|
159
|
+
from processpi.units import VolumetricFlowRate, Diameter, Length
|
|
160
|
+
|
|
161
|
+
pipe = Pipe(
|
|
162
|
+
internal_diameter=Diameter(50, "mm"),
|
|
163
|
+
length=Length(10, "m")
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
engine = PipelineEngine()
|
|
167
|
+
engine.fit(
|
|
168
|
+
flowrate=VolumetricFlowRate(0.001, "m^3/s"),
|
|
169
|
+
pipe=pipe,
|
|
170
|
+
fluid=Water()
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
results = engine.run()
|
|
174
|
+
engine.summary()
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
#### Planned Enhancements
|
|
178
|
+
|
|
179
|
+
- Support for branching and parallel pipeline networks
|
|
180
|
+
- Dynamic flow simulations and transient analysis
|
|
181
|
+
- Cost and energy optimization tools for network layouts
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 🛣 Roadmap
|
|
186
|
+
|
|
187
|
+
- Expand the Components Database to 50+ chemicals and fluids
|
|
188
|
+
- Add steady-state and dynamic simulation modules
|
|
189
|
+
- Implement energy optimization and cost analysis tools
|
|
190
|
+
- Build a GUI/web interface for interactive simulations
|
|
191
|
+
- Enable integration with real process data and sensor-driven workflows
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 📜 License
|
|
196
|
+
|
|
197
|
+
This project is licensed under the **MIT License** – see the LICENSE file for details.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
<p align="center">
|
|
202
|
+
<em>Process PI – Built with ❤️ for chemical engineers.</em>
|
|
203
|
+
</p>
|
processpi-0.1.1/setup.py
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from setuptools import setup, find_packages
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
# Read the README.md for the long description
|
|
5
|
+
this_directory = Path(__file__).parent
|
|
6
|
+
long_description = (this_directory / "README.md").read_text()
|
|
7
|
+
|
|
8
|
+
setup(
|
|
9
|
+
name="processpi", # Make sure this matches your PyPI package name
|
|
10
|
+
version="0.1.1",
|
|
11
|
+
author="Raviteja Varma Nadimpalli",
|
|
12
|
+
author_email="your_email@example.com", # replace with your email
|
|
13
|
+
description="Python toolkit for chemical engineering simulations, equipment design, and unit conversions",
|
|
14
|
+
long_description=long_description,
|
|
15
|
+
long_description_content_type="text/markdown",
|
|
16
|
+
url="https://github.com/varma666/ProcessPi", # replace with your repo URL
|
|
17
|
+
packages=find_packages(exclude=["tests*", "docs*"]),
|
|
18
|
+
python_requires=">=3.8",
|
|
19
|
+
install_requires=[
|
|
20
|
+
# Add your package dependencies here, e.g.:
|
|
21
|
+
# "numpy>=1.25",
|
|
22
|
+
# "scipy>=1.11",
|
|
23
|
+
# "pandas>=2.1"
|
|
24
|
+
],
|
|
25
|
+
classifiers=[
|
|
26
|
+
"Programming Language :: Python :: 3",
|
|
27
|
+
"License :: OSI Approved :: MIT License", # adjust license if needed
|
|
28
|
+
"Operating System :: OS Independent",
|
|
29
|
+
"Intended Audience :: Science/Research",
|
|
30
|
+
"Topic :: Scientific/Engineering :: Chemistry",
|
|
31
|
+
],
|
|
32
|
+
project_urls={
|
|
33
|
+
"Bug Tracker": "https://github.com/varma666/ProcessPi/issues",
|
|
34
|
+
"Documentation": "https://github.com/varma666/ProcessPi#readme",
|
|
35
|
+
"Source Code": "https://github.com/varma666/ProcessPi",
|
|
36
|
+
},
|
|
37
|
+
)
|
processpi-0.0.0/PKG-INFO
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/heat_transfer/conduction_heat_loss.py
RENAMED
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/heat_transfer/convection_heat_loss.py
RENAMED
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/heat_transfer/heat_exchanger_area.py
RENAMED
|
File without changes
|
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/mass_transfer/distillation_stage_count.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/reaction_engineering/catalyst_activity.py
RENAMED
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/reaction_engineering/reaction_rate.py
RENAMED
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/reaction_engineering/residence_time.py
RENAMED
|
File without changes
|
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/thermodynamics/enthalpy_change.py
RENAMED
|
File without changes
|
|
File without changes
|
{processpi-0.0.0 → processpi-0.1.1}/processpi/calculations/thermodynamics/heat_of_vaporization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|