OpenPyTEA 1.2.0__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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Panji Tamarona
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,300 @@
1
+ Metadata-Version: 2.4
2
+ Name: OpenPyTEA
3
+ Version: 1.2.0
4
+ Summary: OpenPyTEA: An open-source Python toolkit for techno-economic assessment of process plants with economic sensitivity and uncertainty evaluation
5
+ Maintainer-email: "Panji B. Tamarona" <P.B.Tamarona@tudelft.nl>
6
+ License-Expression: MIT
7
+ Keywords: chemical-engineering,process-design,power-plant,techno-economic-analysis,process-plant
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: matplotlib>=3.8
12
+ Requires-Dist: numpy>=1.24
13
+ Requires-Dist: pandas>=1.5
14
+ Requires-Dist: scienceplots>=2.2.0
15
+ Requires-Dist: scipy>=1.10
16
+ Requires-Dist: seaborn>=0.12
17
+ Requires-Dist: tqdm>=4.64
18
+ Requires-Dist: jinja2>=3.1
19
+ Provides-Extra: test
20
+ Requires-Dist: pytest>=8.0; extra == "test"
21
+ Provides-Extra: ipython
22
+ Requires-Dist: ipython>=8.0; extra == "ipython"
23
+ Dynamic: license-file
24
+
25
+ # 🧩 OpenPyTEA
26
+
27
+ **OpenPyTEA** is an open-source Python toolkit for performing **techno-economic assessment (TEA)** of chemical and energy systems. It was created to address a persistent gap in the TEA workflow: while process simulators model mass and energy balances, researchers often lack an equally transparent and flexible way to evaluate the **economic feasibility** of their designs. Commercial tools remain *black-box tools*, and many academic TEA implementations are process-specific, undocumented, or difficult to reproduce.
28
+
29
+ **OpenPyTEA** provides a fully open, modular, and traceable framework that brings TEA into the Python ecosystem. By integrating **equipment cost estimation**, **capital and operating expenditure modeling**, **cash-flow analysis**, **cost breakdown plots**, **sensitivity evaluation**, and **Monte Carlo uncertainty propagation**, the toolkit enables users to perform end-to-end TEA with clarity and reproducibility.
30
+
31
+ Beyond its functionality, **OpenPyTEA is designed as a community-driven TEA platform**. Users can contribute new equipment cost correlations, improve economic models, report issues, and expand the toolkit’s capabilities over time. This collaborative approach helps build a shared, transparent, and continually improving TEA resource—similar to the open-source progress seen in the LCA community.
32
+
33
+ Whether used for early-stage process design, technology screening, or teaching, **OpenPyTEA** makes TEA more accessible, consistent, and aligned with FAIR research principles (Findable, Accessible, Interoperable, and Reusable).
34
+
35
+ **For a full walkthrough of the features and usage of OpenPyTEA, refer to the `walkthrough.ipynb` notebook**:
36
+ https://github.com/pbtamarona/OpenPyTEA/blob/main/walkthrough.ipynb
37
+
38
+ **For some case-study examples, please check the `examples` folder:**
39
+ https://github.com/pbtamarona/OpenPyTEA/tree/main/examples
40
+
41
+ ---
42
+
43
+ ## ✨ Key Features
44
+ - **Modular architecture:** clean separation of cost correlations, equipment objects, plant economics, and uncertainty analysis.
45
+ - **Transparent and reproducible:** all algorithms, equations, and assumptions are openly available for full traceability.
46
+ - **Cost breakdown visualization:** built-in helpers to plot stacked bar charts of direct equipment costs, fixed capital, and operating costs.
47
+ - **Built-in uncertainty tools:** automatic generation of sensitivity plots and Monte Carlo simulations.
48
+ - **Interoperable and extensible:** easy integration with process simulators, optimization frameworks, and LCA tools.
49
+ - **Education-friendly:** ideal for teaching TEA and process design without reliance on proprietary software.
50
+ - **Community-driven:** users can contribute new correlations, improve models, request features, and shape the evolution of the platform.
51
+
52
+ ---
53
+
54
+ ## 📦 Installation
55
+
56
+ ### 1. **Install from PyPI (recommended)**
57
+
58
+ ```bash
59
+ pip install openpytea
60
+ ```
61
+
62
+ ### 2. **Install from GitHub (development version)**
63
+
64
+ ```bash
65
+ pip install git+https://github.com/pbtamarona/OpenPyTEA
66
+ ```
67
+
68
+ or with `uv`:
69
+
70
+ ```bash
71
+ uv add git+https://github.com/pbtamarona/OpenPyTEA
72
+ ```
73
+
74
+
75
+ **OpenPyTEA** requires **Python ≥ 3.9**.
76
+ The main dependencies include:
77
+
78
+ - `matplotlib`
79
+ - `numpy`
80
+ - `pandas`
81
+ - `scienceplots`
82
+ - `scipy`
83
+ - `tqdm`
84
+ - `jinja2`
85
+
86
+ ---
87
+
88
+ ## ⚙️ Package (Repository) Structure
89
+ ```
90
+ src/openpytea/
91
+ ├── equipment.py # Equipment-level costing and inflation correction
92
+ ├── plant.py # Plant-level TEA: CAPEX, OPEX, cash flows, financial metrics
93
+ ├── analysis.py # Sensitivity and uncertainty analysis (sensitivity plots, Monte Carlo)
94
+ └── data/ # Cost correlations database and CEPCI data
95
+ examples/ # Example notebooks and case studies
96
+ walkthrough.ipynb # walkthrough of the package
97
+ pyproject.toml
98
+ README.md
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 🧠 Core Concepts
104
+
105
+ ### 1. **Equipment-level costing**
106
+
107
+ Each process unit (e.g., compressor, heat exchanger, reactor) is represented by an `Equipment` object:
108
+
109
+ ```python
110
+ from openpytea.equipment import Equipment
111
+
112
+ compressor = Equipment(
113
+ name='COMP',
114
+ param=5000, # kW
115
+ category='Compressors, fans, & Blowers',
116
+ type='Compressor, centrifugal',
117
+ material='Carbon steel'
118
+ )
119
+
120
+ print(compressor.direct_cost)
121
+ ```
122
+
123
+ Each equipment item retrieves its cost correlation from the internal database in `data/cost_correlations.csv` and adjusts the cost to the desired year using the Chemical Engineering Plant Cost Index (CEPCI).
124
+
125
+ ### 2. **Plant-level techno-economic assessment**
126
+
127
+ Multiple equipment objects can be grouped into a `Plant` instance for full TEA
128
+
129
+ ```python
130
+ from openpytea.plant import Plant
131
+
132
+ ammonia_plant = Plant({
133
+ 'name':'Ammonia Production Plant',
134
+ 'country':'Netherlands',
135
+ 'process_type':'Fluids',
136
+ 'equipment'=[compressor],
137
+ 'interest_rate':0.09,
138
+ 'plant_utilization':0.95,
139
+ 'project_lifetime':20, # in years
140
+ 'plant_products': { # Here we define the product(s) of the plant
141
+ 'ammonia': {
142
+ 'production':125_000, # Daily production in kg/day,
143
+ }
144
+ },
145
+ 'variable_opex_inputs':{
146
+ 'electricity':{
147
+ 'consumption': 110, # Daily consumption, in MWh
148
+ 'price': 75 # US$/MWh
149
+ },
150
+ 'hydrogen':{
151
+ 'consumption': 22_000, # Daily consumption, in kg/day
152
+ 'price': 2 # US$/kg
153
+ },
154
+ },
155
+ })
156
+
157
+ plant.calculate_cash_flow(print_results=True)
158
+ plant.calculate_levelized_cost()
159
+ ```
160
+ Main outputs include:
161
+ - Capital expenditures (CAPEX): inside/outside battery limits, engineering, contingency, and location factors
162
+ - Operating expenditures (OPEX): variable and operating expenditures, including utilities, maintenance, labor, and overhead costs
163
+ - Financial metrics: Net Present Value (NPV), Internal Rate of Return (IRR), Return on Investment (ROI), Payback Time (PBT), and Levelized Cost of Product (LCOP)
164
+
165
+ ### 3. **CAPEX and OPEX breakdown plots**
166
+
167
+ OpenPyTEA includes convenience functions for visualizing the economic structure of a process plant using stacked bar plots:
168
+
169
+ - `plot_direct_costs_bar(plant)`: direct equipment costs (per equipment item).
170
+ - `plot_fixed_capital_bar(plant)`: fixed capital components (ISBL, OSBL, design & engineering, contingency).
171
+ - `plot_variable_opex_bar(plant)`: variable operating costs by input mass and energy stream.
172
+ - `plot_fixed_opex_bar(plant)`: fixed operating expenses, including labor, supervision, maintenance, overhead, R&D, and more.
173
+
174
+ These plots provide a quick visual breakdown of the main CAPEX and OPEX contributors in a flowsheet.
175
+
176
+ ### 4. **Sensitivity and uncertainty analysis**
177
+
178
+ **OpenPyTEA** provides integrated tools for visual sensitivity and probabilistic analysis of cost and performance drivers.
179
+
180
+ One-Way Sensitivity Line Plot
181
+ ```python
182
+ from openpytea.analysis import sensitivity_plot
183
+
184
+ results = sensitivity_plot(
185
+ plant,
186
+ parameter="electricity",
187
+ plus_minus_value =0.5
188
+ )
189
+ ```
190
+ The `plant` input may also be a list of `Plant` objects to generate comparison plots.
191
+
192
+ Tornado Plot (One-at-a-Time Sensitivity)
193
+ ```python
194
+ from openpytea.analysis import tornado_plot
195
+
196
+ tornado_plot(
197
+ plant,
198
+ plus_minus_value = 0.5,
199
+ )
200
+ ```
201
+
202
+ Monte Carlo Simulation
203
+ ```python
204
+ from openpytea.analysis import monte_carlo
205
+
206
+ results = monte_carlo(
207
+ plant,
208
+ num_samples=1_000_000
209
+ )
210
+
211
+ ```
212
+ Outputs include probability distributions and confidence intervals for LCOP or NPV—supporting uncertainty-informed decision-making. With `plot_multiple_monte_carlo`, **OpenPyTEA** can also visualize Monte Carlo results for multiple plants to enable uncertainty comparisons.
213
+
214
+ ---
215
+
216
+ ## 📘 Example Workflows
217
+
218
+ Example notebooks are available in the `examples/` folder, including:
219
+
220
+ - Hydrogen production
221
+ - Hydrogen liquefaction
222
+ - Geothermal heat and power
223
+
224
+ Run any example via:
225
+ ```bash
226
+ jupyter notebook examples/hydrogen_liquefaction.ipynb
227
+ ```
228
+ Each notebook demonstrates:
229
+ - Input definition and equipment configuration
230
+ - Cash-flow and investment evaluation
231
+ - Sensitivity and uncertainty analysis
232
+ - Visualization of key economic indicators
233
+
234
+ ---
235
+
236
+ ## 🧑‍🏫 Educational Use
237
+
238
+ **OpenPyTEA** is suitable for chemical and process engineering education.
239
+ Students can perform full TEA using their simulation outputs—estimating capital, operating, and profitability metrics—without commercial software.
240
+ All algorithms are visible and modifiable, eliminating the “black-box” nature of most TEA tools.
241
+
242
+ ## 🛠️ Contributing
243
+ We welcome community contributions!
244
+ You can help by:
245
+ - Adding or updating equipment cost correlations
246
+ - Improving the documentation or creating tutorials
247
+ - Extending the visualization or uncertainty modules
248
+
249
+ To contribute:
250
+ 1. Fork the repository.
251
+ 2. Create a new branch:
252
+ ```bash
253
+ git checkout -b feature-new-equipment
254
+ ```
255
+ 3. Commit your changes and open a Pull Request.
256
+
257
+ Please follow PEP8 coding conventions and include a short description of your updates.
258
+
259
+ ---
260
+
261
+ ## 📚 Citation
262
+
263
+ If you use **OpenPyTEA** in your research, please cite it using the automatic GitHub citation feature or the `CITATION.cff` file included in this repository.
264
+
265
+ On GitHub, click:
266
+ ```
267
+ Repository page → "Cite this repository"
268
+ ```
269
+ This will provide formatted citation export options (BibTeX, APA, MLA, etc.) based on the CITATION.cff metadata.
270
+
271
+ Or if you prefer to cite manually, you may use:
272
+
273
+ > Tamarona, P.B., Vlugt, T.J.H., & Ramdin, M. (2025). *OpenPyTEA: An open-source python toolkit for techno-economic assessment of process plants with economic sensitivity and uncertainty evaluation.* GitHub Repository. Available at: [https://github.com/pbtamarona/OpenPyTEA](https://github.com/pbtamarona/OpenPyTEA)
274
+
275
+ **BibTeX:**
276
+ ```bibtex
277
+ @misc{tamarona2025openpytea,
278
+ author = {Panji B. Tamarona and Thijs J.H. Vlugt and Mahinder Ramdin},
279
+ title = {OpenPyTEA: An open-source python toolkit for techno-economic assessment of process plants with economic sensitivity and uncertainty evaluation},
280
+ year = {2025},
281
+ url = {\url{https://github.com/pbtamarona/OpenPyTEA}},
282
+ version = {1.2.0},
283
+ note = {Accessed: YYYY-MM-DD}
284
+ }
285
+ ```
286
+
287
+ ---
288
+
289
+ ## 📄 License
290
+
291
+ **OpenPyTEA** is released under the MIT License.
292
+
293
+ You are free to use, modify, and distribute the code with proper attribution.
294
+
295
+ ## 📬 Contact
296
+ Panji B. Tamarona
297
+
298
+ 📧 P.B.Tamarona@tudelft.nl
299
+
300
+ Repository: https://github.com/pbtamarona/OpenPyTEA
@@ -0,0 +1,276 @@
1
+ # 🧩 OpenPyTEA
2
+
3
+ **OpenPyTEA** is an open-source Python toolkit for performing **techno-economic assessment (TEA)** of chemical and energy systems. It was created to address a persistent gap in the TEA workflow: while process simulators model mass and energy balances, researchers often lack an equally transparent and flexible way to evaluate the **economic feasibility** of their designs. Commercial tools remain *black-box tools*, and many academic TEA implementations are process-specific, undocumented, or difficult to reproduce.
4
+
5
+ **OpenPyTEA** provides a fully open, modular, and traceable framework that brings TEA into the Python ecosystem. By integrating **equipment cost estimation**, **capital and operating expenditure modeling**, **cash-flow analysis**, **cost breakdown plots**, **sensitivity evaluation**, and **Monte Carlo uncertainty propagation**, the toolkit enables users to perform end-to-end TEA with clarity and reproducibility.
6
+
7
+ Beyond its functionality, **OpenPyTEA is designed as a community-driven TEA platform**. Users can contribute new equipment cost correlations, improve economic models, report issues, and expand the toolkit’s capabilities over time. This collaborative approach helps build a shared, transparent, and continually improving TEA resource—similar to the open-source progress seen in the LCA community.
8
+
9
+ Whether used for early-stage process design, technology screening, or teaching, **OpenPyTEA** makes TEA more accessible, consistent, and aligned with FAIR research principles (Findable, Accessible, Interoperable, and Reusable).
10
+
11
+ **For a full walkthrough of the features and usage of OpenPyTEA, refer to the `walkthrough.ipynb` notebook**:
12
+ https://github.com/pbtamarona/OpenPyTEA/blob/main/walkthrough.ipynb
13
+
14
+ **For some case-study examples, please check the `examples` folder:**
15
+ https://github.com/pbtamarona/OpenPyTEA/tree/main/examples
16
+
17
+ ---
18
+
19
+ ## ✨ Key Features
20
+ - **Modular architecture:** clean separation of cost correlations, equipment objects, plant economics, and uncertainty analysis.
21
+ - **Transparent and reproducible:** all algorithms, equations, and assumptions are openly available for full traceability.
22
+ - **Cost breakdown visualization:** built-in helpers to plot stacked bar charts of direct equipment costs, fixed capital, and operating costs.
23
+ - **Built-in uncertainty tools:** automatic generation of sensitivity plots and Monte Carlo simulations.
24
+ - **Interoperable and extensible:** easy integration with process simulators, optimization frameworks, and LCA tools.
25
+ - **Education-friendly:** ideal for teaching TEA and process design without reliance on proprietary software.
26
+ - **Community-driven:** users can contribute new correlations, improve models, request features, and shape the evolution of the platform.
27
+
28
+ ---
29
+
30
+ ## 📦 Installation
31
+
32
+ ### 1. **Install from PyPI (recommended)**
33
+
34
+ ```bash
35
+ pip install openpytea
36
+ ```
37
+
38
+ ### 2. **Install from GitHub (development version)**
39
+
40
+ ```bash
41
+ pip install git+https://github.com/pbtamarona/OpenPyTEA
42
+ ```
43
+
44
+ or with `uv`:
45
+
46
+ ```bash
47
+ uv add git+https://github.com/pbtamarona/OpenPyTEA
48
+ ```
49
+
50
+
51
+ **OpenPyTEA** requires **Python ≥ 3.9**.
52
+ The main dependencies include:
53
+
54
+ - `matplotlib`
55
+ - `numpy`
56
+ - `pandas`
57
+ - `scienceplots`
58
+ - `scipy`
59
+ - `tqdm`
60
+ - `jinja2`
61
+
62
+ ---
63
+
64
+ ## ⚙️ Package (Repository) Structure
65
+ ```
66
+ src/openpytea/
67
+ ├── equipment.py # Equipment-level costing and inflation correction
68
+ ├── plant.py # Plant-level TEA: CAPEX, OPEX, cash flows, financial metrics
69
+ ├── analysis.py # Sensitivity and uncertainty analysis (sensitivity plots, Monte Carlo)
70
+ └── data/ # Cost correlations database and CEPCI data
71
+ examples/ # Example notebooks and case studies
72
+ walkthrough.ipynb # walkthrough of the package
73
+ pyproject.toml
74
+ README.md
75
+ ```
76
+
77
+ ---
78
+
79
+ ## 🧠 Core Concepts
80
+
81
+ ### 1. **Equipment-level costing**
82
+
83
+ Each process unit (e.g., compressor, heat exchanger, reactor) is represented by an `Equipment` object:
84
+
85
+ ```python
86
+ from openpytea.equipment import Equipment
87
+
88
+ compressor = Equipment(
89
+ name='COMP',
90
+ param=5000, # kW
91
+ category='Compressors, fans, & Blowers',
92
+ type='Compressor, centrifugal',
93
+ material='Carbon steel'
94
+ )
95
+
96
+ print(compressor.direct_cost)
97
+ ```
98
+
99
+ Each equipment item retrieves its cost correlation from the internal database in `data/cost_correlations.csv` and adjusts the cost to the desired year using the Chemical Engineering Plant Cost Index (CEPCI).
100
+
101
+ ### 2. **Plant-level techno-economic assessment**
102
+
103
+ Multiple equipment objects can be grouped into a `Plant` instance for full TEA
104
+
105
+ ```python
106
+ from openpytea.plant import Plant
107
+
108
+ ammonia_plant = Plant({
109
+ 'name':'Ammonia Production Plant',
110
+ 'country':'Netherlands',
111
+ 'process_type':'Fluids',
112
+ 'equipment'=[compressor],
113
+ 'interest_rate':0.09,
114
+ 'plant_utilization':0.95,
115
+ 'project_lifetime':20, # in years
116
+ 'plant_products': { # Here we define the product(s) of the plant
117
+ 'ammonia': {
118
+ 'production':125_000, # Daily production in kg/day,
119
+ }
120
+ },
121
+ 'variable_opex_inputs':{
122
+ 'electricity':{
123
+ 'consumption': 110, # Daily consumption, in MWh
124
+ 'price': 75 # US$/MWh
125
+ },
126
+ 'hydrogen':{
127
+ 'consumption': 22_000, # Daily consumption, in kg/day
128
+ 'price': 2 # US$/kg
129
+ },
130
+ },
131
+ })
132
+
133
+ plant.calculate_cash_flow(print_results=True)
134
+ plant.calculate_levelized_cost()
135
+ ```
136
+ Main outputs include:
137
+ - Capital expenditures (CAPEX): inside/outside battery limits, engineering, contingency, and location factors
138
+ - Operating expenditures (OPEX): variable and operating expenditures, including utilities, maintenance, labor, and overhead costs
139
+ - Financial metrics: Net Present Value (NPV), Internal Rate of Return (IRR), Return on Investment (ROI), Payback Time (PBT), and Levelized Cost of Product (LCOP)
140
+
141
+ ### 3. **CAPEX and OPEX breakdown plots**
142
+
143
+ OpenPyTEA includes convenience functions for visualizing the economic structure of a process plant using stacked bar plots:
144
+
145
+ - `plot_direct_costs_bar(plant)`: direct equipment costs (per equipment item).
146
+ - `plot_fixed_capital_bar(plant)`: fixed capital components (ISBL, OSBL, design & engineering, contingency).
147
+ - `plot_variable_opex_bar(plant)`: variable operating costs by input mass and energy stream.
148
+ - `plot_fixed_opex_bar(plant)`: fixed operating expenses, including labor, supervision, maintenance, overhead, R&D, and more.
149
+
150
+ These plots provide a quick visual breakdown of the main CAPEX and OPEX contributors in a flowsheet.
151
+
152
+ ### 4. **Sensitivity and uncertainty analysis**
153
+
154
+ **OpenPyTEA** provides integrated tools for visual sensitivity and probabilistic analysis of cost and performance drivers.
155
+
156
+ One-Way Sensitivity Line Plot
157
+ ```python
158
+ from openpytea.analysis import sensitivity_plot
159
+
160
+ results = sensitivity_plot(
161
+ plant,
162
+ parameter="electricity",
163
+ plus_minus_value =0.5
164
+ )
165
+ ```
166
+ The `plant` input may also be a list of `Plant` objects to generate comparison plots.
167
+
168
+ Tornado Plot (One-at-a-Time Sensitivity)
169
+ ```python
170
+ from openpytea.analysis import tornado_plot
171
+
172
+ tornado_plot(
173
+ plant,
174
+ plus_minus_value = 0.5,
175
+ )
176
+ ```
177
+
178
+ Monte Carlo Simulation
179
+ ```python
180
+ from openpytea.analysis import monte_carlo
181
+
182
+ results = monte_carlo(
183
+ plant,
184
+ num_samples=1_000_000
185
+ )
186
+
187
+ ```
188
+ Outputs include probability distributions and confidence intervals for LCOP or NPV—supporting uncertainty-informed decision-making. With `plot_multiple_monte_carlo`, **OpenPyTEA** can also visualize Monte Carlo results for multiple plants to enable uncertainty comparisons.
189
+
190
+ ---
191
+
192
+ ## 📘 Example Workflows
193
+
194
+ Example notebooks are available in the `examples/` folder, including:
195
+
196
+ - Hydrogen production
197
+ - Hydrogen liquefaction
198
+ - Geothermal heat and power
199
+
200
+ Run any example via:
201
+ ```bash
202
+ jupyter notebook examples/hydrogen_liquefaction.ipynb
203
+ ```
204
+ Each notebook demonstrates:
205
+ - Input definition and equipment configuration
206
+ - Cash-flow and investment evaluation
207
+ - Sensitivity and uncertainty analysis
208
+ - Visualization of key economic indicators
209
+
210
+ ---
211
+
212
+ ## 🧑‍🏫 Educational Use
213
+
214
+ **OpenPyTEA** is suitable for chemical and process engineering education.
215
+ Students can perform full TEA using their simulation outputs—estimating capital, operating, and profitability metrics—without commercial software.
216
+ All algorithms are visible and modifiable, eliminating the “black-box” nature of most TEA tools.
217
+
218
+ ## 🛠️ Contributing
219
+ We welcome community contributions!
220
+ You can help by:
221
+ - Adding or updating equipment cost correlations
222
+ - Improving the documentation or creating tutorials
223
+ - Extending the visualization or uncertainty modules
224
+
225
+ To contribute:
226
+ 1. Fork the repository.
227
+ 2. Create a new branch:
228
+ ```bash
229
+ git checkout -b feature-new-equipment
230
+ ```
231
+ 3. Commit your changes and open a Pull Request.
232
+
233
+ Please follow PEP8 coding conventions and include a short description of your updates.
234
+
235
+ ---
236
+
237
+ ## 📚 Citation
238
+
239
+ If you use **OpenPyTEA** in your research, please cite it using the automatic GitHub citation feature or the `CITATION.cff` file included in this repository.
240
+
241
+ On GitHub, click:
242
+ ```
243
+ Repository page → "Cite this repository"
244
+ ```
245
+ This will provide formatted citation export options (BibTeX, APA, MLA, etc.) based on the CITATION.cff metadata.
246
+
247
+ Or if you prefer to cite manually, you may use:
248
+
249
+ > Tamarona, P.B., Vlugt, T.J.H., & Ramdin, M. (2025). *OpenPyTEA: An open-source python toolkit for techno-economic assessment of process plants with economic sensitivity and uncertainty evaluation.* GitHub Repository. Available at: [https://github.com/pbtamarona/OpenPyTEA](https://github.com/pbtamarona/OpenPyTEA)
250
+
251
+ **BibTeX:**
252
+ ```bibtex
253
+ @misc{tamarona2025openpytea,
254
+ author = {Panji B. Tamarona and Thijs J.H. Vlugt and Mahinder Ramdin},
255
+ title = {OpenPyTEA: An open-source python toolkit for techno-economic assessment of process plants with economic sensitivity and uncertainty evaluation},
256
+ year = {2025},
257
+ url = {\url{https://github.com/pbtamarona/OpenPyTEA}},
258
+ version = {1.2.0},
259
+ note = {Accessed: YYYY-MM-DD}
260
+ }
261
+ ```
262
+
263
+ ---
264
+
265
+ ## 📄 License
266
+
267
+ **OpenPyTEA** is released under the MIT License.
268
+
269
+ You are free to use, modify, and distribute the code with proper attribution.
270
+
271
+ ## 📬 Contact
272
+ Panji B. Tamarona
273
+
274
+ 📧 P.B.Tamarona@tudelft.nl
275
+
276
+ Repository: https://github.com/pbtamarona/OpenPyTEA
@@ -0,0 +1,59 @@
1
+ [project]
2
+ name = "OpenPyTEA"
3
+ version = "1.2.0"
4
+ description = "OpenPyTEA: An open-source Python toolkit for techno-economic assessment of process plants with economic sensitivity and uncertainty evaluation"
5
+ readme = "README.md"
6
+ license = "MIT"
7
+ license-files = ["LICENSE"]
8
+ keywords = [
9
+ "chemical-engineering",
10
+ "process-design",
11
+ "power-plant",
12
+ "techno-economic-analysis",
13
+ "process-plant",
14
+ ]
15
+ requires-python = ">=3.10"
16
+
17
+ dependencies = [
18
+ "matplotlib>=3.8",
19
+ "numpy>=1.24",
20
+ "pandas>=1.5",
21
+ "scienceplots>=2.2.0",
22
+ "scipy>=1.10",
23
+ "seaborn>=0.12",
24
+ "tqdm>=4.64",
25
+ "jinja2>=3.1",
26
+ ]
27
+
28
+ maintainers = [
29
+ { name = "Panji B. Tamarona", email = "P.B.Tamarona@tudelft.nl" }
30
+ ]
31
+
32
+ [project.optional-dependencies]
33
+ test = [
34
+ "pytest>=8.0",
35
+ ]
36
+ ipython = [
37
+ "ipython>=8.0",
38
+ ]
39
+
40
+ [urls]
41
+ Repository = "https://github.com/PBTamarona/OpenPyTEA"
42
+ Issues = "https://github.com/PBTamarona/OpenPyTEA/issues"
43
+
44
+ [build-system]
45
+ requires = ["setuptools>=68", "wheel"]
46
+ build-backend = "setuptools.build_meta"
47
+
48
+ [tool.black]
49
+ line-length = 60
50
+ target-version = ['py310']
51
+
52
+ [tool.setuptools]
53
+ package-dir = {"" = "src"}
54
+
55
+ [tool.setuptools.packages.find]
56
+ where = ["src"]
57
+
58
+ [tool.setuptools.package-data]
59
+ openpytea = ["data/*.csv"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+