Coder Social home page Coder Social logo

oemof / tespy Goto Github PK

View Code? Open in Web Editor NEW
251.0 24.0 79.0 11.98 MB

Thermal Engineering Systems in Python (TESPy). This package provides a powerful simulation toolkit for thermal engineering plants such as power plants, district heating systems or heat pumps.

Home Page: https://tespy.readthedocs.io

License: MIT License

Python 99.47% TeX 0.53%
thermodynamics process-engineering cooling heating energy-system powerplant python simulation exergy refrigeration

tespy's Introduction

Thermal Engineering Systems in Python

TESPy stands for "Thermal Engineering Systems in Python" and provides a powerful simulation toolkit for thermal engineering plants such as power plants, district heating systems or heat pumps. It is an external extension module within the Open Energy Modelling Framework oemof and can be used as a standalone package.

With the TESPy package you are able to calculate stationary operation in order to design the process of thermal energy systems. From that point it is possible to simulate the offdesign behavior of your plant using underlying characteristics for each of the plants components. The package includes basic components, such as turbines, pumps, compressors, heat exchangers, pipes, mixers and splitters as well as some advanced components (derivatives of heat exchangers, drum).

Everybody is welcome to use and/or develop TESPy. Contribution is already possible on a low level by simply fixing typos in TESPy's documentation or rephrasing sections which are unclear. If you want to support us that way please fork the TESPy repository to your own GitHub account and make changes as described in the GitHub guidelines: https://guides.github.com/activities/hello-world/

Key Features

  • Open Source
  • Generic thermal engineering applications
  • Automatic model documentation in LaTeX for high transparency and reproducibility
  • Extendable framework for the implementation of custom components and component groups
  • Postprocessing features like exergy analysis and fluid property plotting
docs Documentation Status
tests tox pytest tox checks packaging Coverage Status
package
PyPI Package latest release PyPI Wheel Supported Python versions Commits since latest release
reference Software Paper in JOSS Release archive

Documentation

You can find the full documentation at readthedocs. Use the project site of readthedocs to choose the version of the documentation. Go to the download page to download different versions and formats (pdf, html, epub) of the documentation.

To get the latest news visit and follow our website.

Installing TESPy

If you have a working Python3 environment, use pypi to install the latest tespy version:

pip install tespy

If you want to use the latest features, you might want to install the developer version. See section Developing TESPy for more information. The developer version is not recommended for productive use.

Get in touch

Online "Stammtisch"

We have decided to start a reoccurring "Stammtisch" meeting for all interested TESPy users and (potential) developers. You are invited to join us on every 3rd Monday of a month at 17:00 CE(S)T for a casual get together. The first meeting will be held at June, 20, 2022. The intent of this meeting is to establish a more active and well-connected network of TESPy users and developers.

If you are interested, you can simply join the meeting at https://meet.jit.si/tespy_user_meeting. We are looking forward to seeing you!

User forum

We have implemented a discussion room on GitHub as user forum. If you have issues with setting up your model or any other question about using the software, you are invited to start a discussion there.

Examples

For a short introduction on how TESPy works and how you can use it, we provide an extensive user guide. You can download all python scripts of the examples and tutorials from this GitHub repository. They are included in the "tutorial" directory.

Citation

The scope and functionalities of TESPy have been documented in a paper published in the Journal of Open Source Software with an Open-Access license. Download the paper from https://doi.org/10.21105/joss.02178. As TESPy is a free software, we kindly ask that you add a reference to TESPy if you use the software for your scientific work. Please cite the article with the BibTeX citation below.

BibTeX citation:

@article{Witte2020,
    doi = {10.21105/joss.02178},
    year = {2020},
    publisher = {The Open Journal},
    volume = {5},
    number = {49},
    pages = {2178},
    author = {Francesco Witte and Ilja Tuschy},
    title = {{TESPy}: {T}hermal {E}ngineering {S}ystems in {P}ython},
    journal = {Journal of Open Source Software}
}

Furthermore, a paper on the exergy analysis feature has been published in the mdpi journal energies. You can download the pdf at https://doi.org/10.3390/en15114087. If you are using this feature specifically, you can reference it with the following BibTeX citation:

BibTeX citation:

@article{Witte2022,
    doi = {10.3390/en15114087},
    year = {2022},
    volume = {15},
    number = {11},
    article-number = {4087},
    issn = {1996-1073},
    author = {Witte, Francesco and Hofmann, Mathias and Meier, Julius and Tuschy, Ilja and Tsatsaronis, George},
    title = {Generic and Open-Source Exergy Analysis—Extending the Simulation Framework TESPy},
    journal = {Energies}
}

Additionally, you have the possibility to cite a specific version of TESPy to make your work reproducible. The source code of every version is published on zenodo. Find your version here: https://doi.org/10.5281/zenodo.2555866.

License

Copyright (c) Francesco Witte

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

tespy's People

Contributors

aburabazam avatar anmartens avatar benportner avatar chaofanchen avatar dk-teknologisk-enp avatar franzipl avatar fwitte avatar govind-menon110 avatar jbueck avatar jfreissmann avatar jowr avatar juliusmeier avatar maltefritz avatar marbrandt avatar matbock avatar nicholasfry avatar nilsstolze avatar nkawerau avatar pjhansen avatar shuangchen88 avatar stianchris avatar tboussaid avatar timhoener avatar uvchik avatar vily-ipu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tespy's Issues

Superheater control via expansion valve

Hello,
for a study research project I try to model a heat pump with tespy. On the whole it looks quite good, except that my resulting COP's are a little bit lower than for heat pumps at similar power ranges (about 10 - 15 kW_th). In my opinion, one main reason could be that I didn't implement the superheater yet, as heat pumps control them via the expansion valve, which is not possible in the tespy model.
Is it possible to realize that somehow with the current release? Help would be very appreciated.

Accessing connections from an imported network is complicated

The connections can be accessed using nwk.imp_conns['source label:source id_target label:target id']. Adding an optional keyword to label connections would be helpful here. The connection label would be identical to the syntax applied at the moment, if the user does not specify a label.

Bus efficiency/characteristic line specification may be unintuitive for motors

When specifying the efficiency or the characteristic line of a motor, the inverse value of the efficiency has to be used as TESPy uses the component bus value as basis. Implementing the efficiency printout feature in #157 requires an information whether the component or the bus represent the basis. This can be resolved by adding an additional parameter for the bus components (e. g. "base", with specification values "bus" or "comp"). Since this is an API breaking change, the feature requires a major release.

Remove access barriers for new devs in several modules

Some modules have grown very much (components.py in special, nearly 11.000 lines). This may obstruct new devs in gaining a good overview on the code. The code should be reorganised in a more friendly way. Also, a template for custom components could be added.

Add new data container for parameter groups

Some components require to have specified groups of parameters (e. g. simple heat exchangers), creating a new data container holding these properties would be useful. Also, different calculation methods given identical parameter groups could be selected this way (e. g. darcy friction vs. hazen williams for pressure drop in pipes).

Documentation now available online

You can find the first version on tespy.readthedocs.io.

TODO

  • documentation for the components characteristics is still missing.
  • update "Using TESPy" after renaming of some parameters.
  • add TESPy components part (similar to oemof/oemof-solph documentation)
  • fix broken links to equations of splitter, condenser, desuperheater and pipe in Using TESPy/TESPy Components.
  • adjust the docstrings for the component convergence checks

Full documentation review

A full documentation review should be issued before the release of the next major version of TESPy. We will start the review the upcoming dev-meeting in December. Specific TODOs are listed below. I have added a short task description, feel free to comment/ask question. More specific information will be given at the dev-meeting.

workflow

  1. If you did not fork oemof/tespy before:
    • fork tespy to your repositories
  2. clone your repository
    • https: git clone https://github.com/YOURUSERNAME/tespy.git or use
    • ssh: [email protected]:YOURUSERNAME/tespy.git
  3. if the branch oemof_doc_review is in your fork:
    • check out your oemof_doc_review branch (git checkout -b oemof_doc_review origin/oemof_doc_review)
  4. Else:
    • create new local branch and pull from upstream (to add before).
    • git remote add upstream https://github.com/oemof/tespy.git
    • git checkout -b oemof_doc_review
    • git pull upstream/oemof_doc_review
  5. push your adjustments to your remote branch (git push or git push --set-upstream origin oemof_doc_review)
  6. create a PR on oemof/tespy to merge your remote branch in oemof/tespy oemof_doc_review
  7. profit :)! (see https://github.com/oemof/oemof/pull/661)

documentation review

online documentation
In the online documentation we need to check for

  • typos,

  • comprehensibility (would a new user understand the main ideas?) and

  • structure (does the structure of the chapters help the user understand how to use tespy?).

  • README/Introduction

  • Examples

  • Tutorials

  • Installation and setup

    • Revision
    • Add missing part for Mac
  • Using TESPy

    • Introduction
    • networs and network reader
    • components
    • subsystems
    • connections
    • fluid properties
  • What's New

    • add examples regarding API changes

doc-strings and inline comments
In the doc-strings and the inline comments we need to check for the following:

  • Are there any typos?

  • Are the examples comprehensible?

  • Is information well placed (are the equations and parameters apparent)?

  • Are the links in the doc-strings working?

  • Are the inline comments clear?

  • tespy/components/

    • components.py
    • turbomachinery.py
    • heat_exchangers.py
    • piping.py
    • combustion.py
    • reactors.py
    • nodes.py
    • subsystem_interfaces.py
    • subsystems.py
  • tespy/tools/

    • helpers.py
    • fluid_properties.py
    • data_containers.py
    • characteristics.py
  • tespy/connections/

    • connections.py
    • busses.py
    • refs.py
  • tespy/networks/

    • networks.py
    • network_reader.py

Bug: Parallel code execution not working on windows

Running a calculation with parallel=True (commit: 89e83a4) on Windows causes the following error:

RuntimeError:
Attempt to start a new process before the current process
has finished its bootstrapping phase.

This probably means that you are on Windows and you have forgotten to use the proper idiom in the main module:

if __name__ == '__main__':
    freeze_support()
    ...

The "freeze_support()" line can be omitted if the program is not going to be frozen to produce a Windows executable.

Help: network loading error when using LUT

A Suspected error occurred when loading a network with LUT for tespy_fluid ( The error message please see the following png).
error_message

In attachment please find the related python scripts for the test case. It was found that no error occurred when creating and saving a network with LUT by running 3bhes.py. But when reloading the network by running test.py, the error message appears.

I would like to ask for help if you could check my test case code and give me some suggestions. Thanks!

Attached:
test_example.zip

Best regards,
Shuang

subsystem implementation and usage are very unclear

The example/explanation on the subsystems must be updated:

  • What are subsystems and what are the benefits?
  • What functionality does the base class subsystem provide?
  • How to define your own subsystem as an example?
  • How to implement your own subsystem in a tespy network?

Roadmap to TESPy version 0.1.0

TESPy version 0.1.0 will come in the near future, some milestones and features will have to be implemented on the way (also see #2).

  • make network export and network reader handle compressor maps, see #46
    • add z1, z2 dimensions
    • handle different characteristics by type of characteristics
    • add characteristics type field in char.csv
  • make components work with negative or zero mass flow
    • negative massflow #43
    • zero massflow (optional!)
  • write tests, test coverage > 75 %
    • integrate examples with tests in docstrings (for class components and subsystems), see #45
    • write testfiles for other parts of code, see pr #52
    • benchmark cases.
  • test examples from examples repository, done, will upload with release!
  • add log-file export, see #51
    • add logging support
    • look for overlap with print_level
  • fix issue #41
    • pre- and postprocessing for design and offdesign modes
  • speed up calculation
    • use CoolProp abstractstate instead of PropsSI interface
    • others?
  • documentation revision, merge #45
  • register a doi for TESPy

Remodel connection.bus __init__ and set_attr

The bus initialisation and set_attr methods have to be adjusted in a way an error is prompted, if wrong parameters are passed to **kwargs. Passing a wrong argument to **kwargs does not prompt a warning and the solver consequently is missing one parameter (see example below).

heat_bus = con.bus('heat')
heat_bus.add_comps({'c': dh_heater_1, 'p': 'Q'},
                                    {'c': dh_heater_2, 'p': 'Q'})
heat_bus.set_attr(Q=-1e6)

The user thought he provided the total heat flow for the bus (by .set_attr(Q=...)) but only P will be taken as argument.

Release of version 0.1.4

The current status of the dev branch will be released as version 0.1.4 until the end of this year as last version before the release of 0.2.0.

Automatic fluid property plots

CoolProp provides the possibility to generate fluid property plots such as T,s or log p, h diagrams. It is possible to draw the fluid's states into these diagrams using a StateContainer. The StateContainer and the plots could be generated automatically from the fluid's states within a tespy network in post-processing or via an additional module.

Improvements for TESPy

If you have ideas for possible improvements feel free to post them here.

Components

  • add design/offdesign-switch for connections (for now, available for components only), done: 7eb61fa.
  • improve design/offdesign-switch for components, done: 093d560.
  • add custom variables to your calculation (e. g. calculate a pipes diameter at a given pressure drop, mass flow rate and pipe length), done: 977a5be.
  • add motoric chp component, done: 79a1177.
  • add electrolysis, fuel cell, methanisation reactor.
  • add solar thermal components, done: b5990e1.
  • improve architecture for grouped parameters, done: 83c9ff4.

Heat Exchanger

  • add the partial derivatives for specified logarithmic temperature difference (if required).
  • add direct current or cross current heat exchangers.

Combustion Chamber

  • add example code/tutorial, done: 8c0034d.
  • add support for stoichmetric combustion chamber, done: 5ce60aa.

Turbine

  • add documentation on how to handle different types of turbines/turbine stages.

Fluid Properties

  • add support for different fluid property databases/calculation methods.
  • add liquid mixtures.

Other

  • add network export and network reader (from/to .csv/.xlsx), done: 70ae908.
  • improve fluid initialisation for component drum.
  • improved calculation speed by using CoolProp tabular interpolation feature, modules/packages
    • CoolProp.abstract_state
    • dill/pickle
  • make network export and network reader handle compressor maps
  • make components work with negative or zero mass flow

Networks with small massflow do not converge

In a solar air thermal collector with leakage of air, no solution was found, as the massflow in kg/s was too low. In such cases, newton-raphson does not converge. Possible solution would be to check for parameters, that are below a specific limit and in such cases, switch the calculation to a different unit for this parameter. In the example: switch the unit of the massflow to g/s. This needs to be done internally and not just in the unit-definition in the setup of the network.

'' hydro_group'' could not be able to be used in subsystems

While running a btes network script(please see in attachment) with using a predefined subsystem, The
following error messages from the TESPy will be caused when the pipeline attribute is specified with "hydro_group ='HW''' in the subsystem:

< if np.isnan(kwargs[key]):
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''>

I'm not sure if an attribute with string type or an attribute with data_container likes ''dc_gcp'' is supported for the input types in a subsystem or not. Could you please be kindly to give your opinions on that.

btes_script.txt
sub_btes_para.txt

The specification of the CoolProp backend can save calculation time

The user should be able to chose the CoolProp backend manually. The options would be:

  • HEOS::fluid (default, full EOS)
  • TTSE::fluid (tabular data interpolation)
  • IF97::water (only water is available for this case).

The default method would be HEOS (as it is at the moment). Using TTSE:: or IF97:: back-end, calculation times could be cut significantly.

Full review of software tests

As for the documentation (see #87). Also, the test should be adapted and maybe ordered similar to the restructured package (#88).

  • doc-tests (#109)
  • fluid_property_tests
  • component_tests
  • error_tests
  • network_tests
  • full_model_test (heat pump model)

TESPy v0.0.3

A new version of TESPy is available! For installation simply use:
pip install --upgrade tespy
Have a nice week!

BUG: Incorrect syntax in the filename by using tespy_fluid feature in Windows

When trying to use the feature tespy_fluid in Windows system, a error report from os comes out to point that a incorrect syntax is in the filename. it is suspect that it may be a bug for Windows, since Windows could not create a folder containing the name with character":". Please have a check about this issue. Thanks.

Characteristics classes are not named properly and miss generic functionality

The classes of module tespy.tools.characteristics are not named intuitively. They should be named

  • char_line and
  • char_map.

The import will therefore be:

from tespy.tools.characteristics import char_line, char_map

Also, the char_map class is working for compressor maps only at the moment. The class can not be reused for other components, if a char_map should be implemented there. The compressor specific functionalities should be moved into the compressor class.

Get in touch

Hi @elvau4 and @jbueck, I noted your addition to tespy and would like to get in contact with you. Maybe we can include your work in oemof/tespy for the next major release. If you like to contribute, I would be happy hearing from you. Feel free to contact me at [email protected]! You may also consider to participate in the upcoming oemof-dev meeting in Berlin: click.

Link in README does not work

The examples and tutorials-link in section Examples of the README.rst file does not lead nowhere.

This might be caused by the new structure of the documentation (readthedocs) because it seems to point to a section that does not exist any more... but I am not sure.

TESpy has moved into the oemof cosmos!

Hi everybody,

we have now moved the first version of the TESpy package into the oemof-cosmos.

I have created a group @oemof/oemof-tespy and added some people who might be involved within the development process!

@fwitte will keep on developing here with the major goal to provide a stable version.

Merry christmas to everyone!
Cord

A Suspected error when reload the network by using network_reader.load_nwk function

Dear Francesco,

When i was testing my tespy based python script to get the hydraulic results of my network, i got a different computed pipe flow rate results from tespy after reload the network by using nwkr.load_nwk() function, compared with the results directly solved by tespy without reload the network.

After several testing i found that, if i reset each pipe's hydraulic properties after reload the network by using nwkr.load_nwk() function( in my case i reset them with c.set_attr( hydro_group ='HW')), I could finally re-get the right results from tespy. Based on this finding i am a little doubtful that if the 'hydro_group' of the pipe in my network are not saved in csv file when saving the network.

I would like to ask you if you could please check that if the attribute of 'hydro_group' in components is missing when saving the network and reload the network.

Best regards and have a good Christmastime!
Shuang

No/Wrong errormessage, if the network has no connections

If no connections have been added to the network, an AttributeError is thrown: AttributeError: 'DataFrame' object has no attribute 'tolist'. The message should be more clear, to indicate, that the user forgot to add connections to his network.

Update for the network initialisation

With #84 it is possible to specify individual design cases for components and connections individually. This feature needs to be extended, in order to combine plant layout with partial offdesign and vice versa. An update for the initialisation process is required for this feature.

Absolute path specification

The network load, network export and design_path as well as init_path do not work with absolute path specification. This requires a check of

  • how the path is specified and
  • which operating system TESPy is executed on.

Always finding non-negative solution for P and T

While testing a benchmark for TESPy, we encountered a problem of non-convergence. The error messages from the TESPy are like follows:

ValueError: ('unable to solve 1phase PY flash with Tmin=273.16, Tmax=3000 due to error: HSU_P_flash_singlephase_Brent could not find a solution because Hmolar [0.760517 J/mol] is below the minimum value of 45064.4615885 J/mol : PropsSI("S","P",2,"H",42.21513643,"water")', 'occurred at index <tespy.components.components.pump object at 0x000001CC019BFB38>')
-------------------------------------------------------------------------------------------------------------------After analyzing this error, we realized that during the Newton iteration, a negative pressure value was passed to the CoolProp library, when the enthalpy value for water was needed. In the real physical world, the negative pressure will never happen. This is a numerical issue caused by the Newton iteration, when the primary variable p and T are updated.

By looking into the code and communication with the author:

tespy/tespy/networks.py

Lines 1175 to 1184 in 27dd934

# check properties for consistency
if self.iter < 5:
for c in self.conns.index:
self.solve_check_properties(c)
for cp in self.comps.index:
cp.convergence_check(self)
for c in self.conns.index:
self.solve_check_properties(c)

We learned that the author is aware of this issue, thus decided to add some protection in the code above when solving the process. The author's method is to check primary unknowns and parameters in the first 3 Newton iterations. If either the primary variable or the parameter is beyond the valid range, they are then set to the lower or upper bound set externally by the user. By changing the 3 iterations to 6 iterations, our error message disappeared and the benchmark converged without any further issue. However, I personally believe this is not the best solution to prevent Pressure and Temperature values entering the negative range during Newton iterations.

This non-negative problem also exists in chemical equilibrium calculation, where the primary variables there are the concentrations of each chemical component. Same as the pressure (in Pa) and temperature (in Kelvin), concentrations are always non-negative. During the Newton iteration, the concentrations are never updated directly, but instead with a relaxation factor. Assuming we have the standard newton update procedure as,

$$c_i^{n+1} = c_i^{n} + \Delta c_i$$

The proposed relaxation factor $\delta$ is multiplied before the suggested change

$$c_i^{n+1} = c_i^{n} + \delta \cdot \Delta C_i,$$

and the calculation of relaxation factor $\delta$ follows,

$$ \frac{1}{\delta} = max{ 1, -\frac{\Delta C_i}{0.5 * C_i^{n}} } $$

Assuming we have a concentration value C_i^n equals to 20 mol/kg of water, and the calculated change would be -50 mol/lg of water, then the updated C_i^{n+1} would be -30 if no relaxation is applied. When inserting these values, the relaxation factor can be calculated as 0.2. With this factor multiplied, the updated concentration C_i^{n+1} would be 20 + 0.2 * (-50) = 10 instead of -30 mol/kg water. With the presence of this relaxation factor, the concentration value will be always non-negative through out the Newton iteration.

As the above algorithm has been widely adopted in chemical reaction simulation and has been proven to be very effective, I would suggest to adopt the same treatment in TESPy when updating pressure and temperature values. Just my suggestion for consideration.

Improve convergence stability for temperature specification near boiling point

Specifying temperature and pressure values near boiling point often leads the jacobian matrix being not invertible. The user will have the option to specify weather the temperature is above or below boiling point. The convergence check will manipulate the enthalpy values according to that information. I will attach this modification to #64.

New components: Fuel cell, methanation and/or generic reactor

A fuel cell, a methanation (or some kind of generic reactor) would suit TESPy very well in order to allow the simulation of power-to-gas-to-powe applications, I think. The implementation of fuel cell and the methanation should be pretty straight forward. The implementation of a generic reactor component could be working with a user specified reaction balance.

Add elektrolyser to TESPy

PR #59

Equations

  • mass flow balance (electrolysis)
  • reaction balance
  • pressure equations
  • mass flow balance (cooling)
  • pressure equation (cooling)
  • energy balance (power input to hydrogen production) -> efficiency
  • energy balance cooling water

The default characteristics are not clear to the user

The default characteristic functions for turbine efficiency, kA-factors of heat exchangers, etc. are very intransparent. The default value should be constant as inexperienced users might not know about the lines. The default lines available at the moment could be moved in a tespy.tools library, so the user must actively choose characteristc lines from there or define them himself.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.