ThermoData#

class ThermoData(data)[source]#

Create a ThermoData object for creating thermodynamic property packages and streams.

Parameters:

data (dict) –

Examples

>>> import thermosteam as tmo
>>> data = {
... 'Chemicals': {
...     'Water': {},
...     'Ethanol': {},
...     'O2': {'phase': 'gas'},
...     'Cellulose': {
...          'search_db': False,
...          'phase': 'solid',
...          'formula': 'C6H10O5',
...          'Hf': -975708.8,
...          'default': True
...          },
...     'Octane': {}
...     },
... 'Streams': {
...     'process_water': {
...         'Water': 500,
...         'units': 'kg/hr',
...         'price': 0.00035,
...         },
...     'gasoline': {
...         'Octane': 400,
...         'units': 'kg/hr',
...         'price': 0.756,
...         },
...     }
... }
>>> thermo_data = tmo.ThermoData(data)
>>> chemicals = thermo_data.create_chemicals()
>>> chemicals
Chemicals([Water, Ethanol, O2, Cellulose, Octane])
>>> tmo.settings.set_thermo(chemicals)
>>> thermo_data.create_streams()
[<Stream: process_water>, <Stream: gasoline>]

It is also possible to create a ThermoData object from json or yaml files For example, lets say we have a yaml file that looks like this:

# File name: example_chemicals.yaml
Chemicals:
  Water:
  Ethanol:
  O2:
    phase: gas
  Cellulose:
    search_db: False
    phase: solid
    formula: C6H10O5
    Hf: -975708.8
    default: True
  Octane:

Then we could create the chemicals in just a few lines:

>>> # thermo_data = tmo.ThermoData.from_yaml('example_chemicals.yaml')
>>> # thermo_data.create_chemicals()
>>> # Chemicals([Water, Ethanol, O2, Cellulose, Octane])
classmethod from_yaml(file)[source]#

Create a ThermoData object from a yaml file given its directory.

classmethod from_json(file)[source]#

Create a ThermoData object from a json file given its directory.

create_stream(ID)[source]#

Create stream from data.

Parameters:

ID=None (str) – ID of stream to create.

create_streams(IDs=None)[source]#

Create streams from data.

Parameters:

IDs=None (Iterable[str], optional) – IDs of streams to create. Defaults to all streams.

create_chemicals(IDs=None)[source]#

Create chemicals from data.

Parameters:

IDs=None (Iterable[str] or str, optional) – IDs of chemicals to create. Defaults to all chemicals.