# HYPER: HYdroPowER Simulation and Optimization Toolbox
Welcome to the HYPER repository! This repository hosts Python code for HYPER (HYdroPowER), an advanced tool crafted to simulate and optimize the performance of run-of-river (RoR) hydropower plants. Built entirely in Python, this toolbox represents an evolution of an earlier version introduced in the paper by V. Yildiz and J. Vrugt, titled "A toolbox for the optimal design of run-of-river hydropower plants," which was published in Environmental Modelling & Software.
## Overview
HYPER uses a daily time step to simulate various aspects of RoR hydropower plants, including:
Technical performance
Energy production
Maintenance and operational costs
Economic profit
The toolbox accounts for different design and construction variables and utilizes historical river flow records. It also includes an evolutionary algorithm to optimize various design parameters, such as:
Penstock diameter
Turbine type (Kaplan, Francis, Pelton)
Turbine design flow
Turbine configuration (single or multiple)
Additionally, HYPER allows for the simulation of predefined designs.
## Contents
global_parameters.json: Contains global parameters for both optimization and simulation.
Run_Simulation.py: Main script to simulate energy production based on predefined design parameters.
sim_energy_functions.py: Includes functions for daily power production and objective functions for single and multiple operation modes in simulations.
model_functions.py: Contains all required sub-functions for the simulation and optimization processes.
Run_Optimisation.py: Main script to optimize the design of an RoR project.
opt_energy_functions.py: Includes functions for daily power production and objective functions for single and multiple operation modes in optimization.
## Getting Started
### Prerequisites
1. **Project Folder:** Create a project folder on your desktop.
- Example: `HYPER_Project`
2. **Input Data:** Inside the project folder, create a subfolder named `input` and place the necessary input data files there.
- Example: `HYPER_Project/input/b_observed.txt` (containing river flow records)
3. **Global Parameters:** Modify the `global_parameters.json` file to suit your specific project requirements.
### Installation
To install the HYPER package:
1. Navigate to the project directory in your command line interface.
2. Create a virtual environment:
- Windows: `py -m venv .venv`
- macOS / Linux: `python3 -m venv .venv`
3. Activate the virtual environment:
- Windows: `.venv\Scripts\activate`
- macOS / Linux: `source .venv/bin/activate`
4. Install the package:
- `py -m pip install .`
- For editable install: `py -m pip install -e .`
## Usage
Single Objective Optimization
To run a single objective optimization from the command line:
`py run-SO-opt`
Multi Objective Optimization
To run a multi-objective optimization from the command line:
`py run-MO-opt`
If you are developing on the package you may wish to do an editable install: `py -m pip install -e .`
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
The development of this toolbox was introduced in the following papers:
V. Yildiz and J. Vrugt, "A toolbox for the optimal design of run-of-river hydropower plants," published in Environmental Modelling & Software.
V. Yildiz, S. Brown, and C. Rouge, "Robust and Computationally Efficient Design for Run-of-River Hydropower," submitted to Environmental Modelling & Software.
These papers laid the foundation for the methodologies and algorithms implemented in this HYPER toolbox.
Raw data
{
"_id": null,
"home_page": null,
"name": "hyper-ford",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "hydropower, optimization, simulation, toolbox",
"author": null,
"author_email": "Veysel Yildiz <vyildiz1@sheffield.ac.uk>",
"download_url": "https://files.pythonhosted.org/packages/65/40/acb9f86a5b6fc30acd834a7035bbcaebffea8d5b5efd08efa182f34c1422/hyper_ford-0.0.2.tar.gz",
"platform": null,
"description": "\n# HYPER: HYdroPowER Simulation and Optimization Toolbox\n\nWelcome to the HYPER repository! This repository hosts Python code for HYPER (HYdroPowER), an advanced tool crafted to simulate and optimize the performance of run-of-river (RoR) hydropower plants. Built entirely in Python, this toolbox represents an evolution of an earlier version introduced in the paper by V. Yildiz and J. Vrugt, titled \"A toolbox for the optimal design of run-of-river hydropower plants,\" which was published in Environmental Modelling & Software.\n\n## Overview \n\nHYPER uses a daily time step to simulate various aspects of RoR hydropower plants, including:\nTechnical performance\nEnergy production\nMaintenance and operational costs\nEconomic profit\n\nThe toolbox accounts for different design and construction variables and utilizes historical river flow records. It also includes an evolutionary algorithm to optimize various design parameters, such as:\nPenstock diameter\nTurbine type (Kaplan, Francis, Pelton)\nTurbine design flow\nTurbine configuration (single or multiple)\n\nAdditionally, HYPER allows for the simulation of predefined designs.\n\n## Contents\n\nglobal_parameters.json: Contains global parameters for both optimization and simulation.\n\nRun_Simulation.py: Main script to simulate energy production based on predefined design parameters.\n\nsim_energy_functions.py: Includes functions for daily power production and objective functions for single and multiple operation modes in simulations.\n\nmodel_functions.py: Contains all required sub-functions for the simulation and optimization processes.\n\nRun_Optimisation.py: Main script to optimize the design of an RoR project.\n\nopt_energy_functions.py: Includes functions for daily power production and objective functions for single and multiple operation modes in optimization.\n\n## Getting Started\n\n### Prerequisites\n\n1. **Project Folder:** Create a project folder on your desktop.\n - Example: `HYPER_Project`\n \n2. **Input Data:** Inside the project folder, create a subfolder named `input` and place the necessary input data files there.\n - Example: `HYPER_Project/input/b_observed.txt` (containing river flow records)\n\n3. **Global Parameters:** Modify the `global_parameters.json` file to suit your specific project requirements.\n\n### Installation\n\nTo install the HYPER package:\n\n1. Navigate to the project directory in your command line interface.\n2. Create a virtual environment:\n - Windows: `py -m venv .venv`\n - macOS / Linux: `python3 -m venv .venv`\n3. Activate the virtual environment:\n - Windows: `.venv\\Scripts\\activate`\n - macOS / Linux: `source .venv/bin/activate`\n4. Install the package:\n - `py -m pip install .`\n - For editable install: `py -m pip install -e .`\n\n## Usage\n\nSingle Objective Optimization\nTo run a single objective optimization from the command line:\n `py run-SO-opt`\n\nMulti Objective Optimization\nTo run a multi-objective optimization from the command line:\n`py run-MO-opt`\n\nIf you are developing on the package you may wish to do an editable install: `py -m pip install -e .`\n\n\n## License\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgments\nThe development of this toolbox was introduced in the following papers:\n\nV. Yildiz and J. Vrugt, \"A toolbox for the optimal design of run-of-river hydropower plants,\" published in Environmental Modelling & Software.\nV. Yildiz, S. Brown, and C. Rouge, \"Robust and Computationally Efficient Design for Run-of-River Hydropower,\" submitted to Environmental Modelling & Software.\nThese papers laid the foundation for the methodologies and algorithms implemented in this HYPER toolbox.\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "HYdroPowER Simulation and Optimization Toolbox",
"version": "0.0.2",
"project_urls": null,
"split_keywords": [
"hydropower",
" optimization",
" simulation",
" toolbox"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6f1c3332cb47a8f186b9ddae47d9f7f90d373925faea1f2aaf4c9c4997b1aa78",
"md5": "0e01f33025e07350c2e539849977b2fd",
"sha256": "aa464d87e15be332ef826486760f6696182c1ba460ad3f88195fc025f41147ee"
},
"downloads": -1,
"filename": "hyper_ford-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0e01f33025e07350c2e539849977b2fd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 34921,
"upload_time": "2024-07-10T13:17:23",
"upload_time_iso_8601": "2024-07-10T13:17:23.549363Z",
"url": "https://files.pythonhosted.org/packages/6f/1c/3332cb47a8f186b9ddae47d9f7f90d373925faea1f2aaf4c9c4997b1aa78/hyper_ford-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6540acb9f86a5b6fc30acd834a7035bbcaebffea8d5b5efd08efa182f34c1422",
"md5": "f80bed9928f24f6152b73c4c35dc51f6",
"sha256": "1141c6cb2727bd77cae5a37acbfc4ac697cda0ede3eede2460976301e3bd0573"
},
"downloads": -1,
"filename": "hyper_ford-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "f80bed9928f24f6152b73c4c35dc51f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 19573,
"upload_time": "2024-07-10T13:17:24",
"upload_time_iso_8601": "2024-07-10T13:17:24.598335Z",
"url": "https://files.pythonhosted.org/packages/65/40/acb9f86a5b6fc30acd834a7035bbcaebffea8d5b5efd08efa182f34c1422/hyper_ford-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-10 13:17:24",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "hyper-ford"
}