thermofluids 2.0.3__tar.gz → 2.0.4__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.
Files changed (121) hide show
  1. thermofluids-2.0.4/PKG-INFO +78 -0
  2. thermofluids-2.0.4/README.md +61 -0
  3. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/doctrees/environment.pickle +0 -0
  4. thermofluids-2.0.4/docs/build/doctrees/index.doctree +0 -0
  5. thermofluids-2.0.4/docs/build/html/_sources/index.rst.txt +120 -0
  6. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/index.html +54 -0
  7. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/searchindex.js +1 -1
  8. thermofluids-2.0.4/docs/source/index.rst +120 -0
  9. {thermofluids-2.0.3 → thermofluids-2.0.4}/pyproject.toml +3 -2
  10. thermofluids-2.0.3/PKG-INFO +0 -33
  11. thermofluids-2.0.3/README.md +0 -17
  12. thermofluids-2.0.3/docs/build/doctrees/index.doctree +0 -0
  13. thermofluids-2.0.3/docs/build/html/_sources/index.rst.txt +0 -68
  14. thermofluids-2.0.3/docs/source/index.rst +0 -68
  15. {thermofluids-2.0.3 → thermofluids-2.0.4}/.gitlab-ci.yml +0 -0
  16. {thermofluids-2.0.3 → thermofluids-2.0.4}/.idea/.gitignore +0 -0
  17. {thermofluids-2.0.3 → thermofluids-2.0.4}/.idea/thermofluids.iml +0 -0
  18. {thermofluids-2.0.3 → thermofluids-2.0.4}/.idea/workspace.xml +0 -0
  19. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/Makefile +0 -0
  20. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/.buildinfo +0 -0
  21. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  22. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/base-stemmer.js +0 -0
  23. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/basic.css +0 -0
  24. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/badge_only.css +0 -0
  25. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  26. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  27. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  28. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  29. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  30. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  31. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  32. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  33. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  34. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  35. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  36. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
  37. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  38. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  39. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  40. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
  41. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  42. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/css/theme.css +0 -0
  43. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/doctools.js +0 -0
  44. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/documentation_options.js +0 -0
  45. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/english-stemmer.js +0 -0
  46. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/file.png +0 -0
  47. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bold.eot +0 -0
  48. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
  49. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bold.woff +0 -0
  50. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
  51. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  52. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  53. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  54. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  55. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-italic.eot +0 -0
  56. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
  57. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-italic.woff +0 -0
  58. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
  59. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-regular.eot +0 -0
  60. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
  61. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-regular.woff +0 -0
  62. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
  63. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  64. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  65. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  66. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  67. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  68. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  69. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  70. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  71. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/jquery.js +0 -0
  72. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/js/badge_only.js +0 -0
  73. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/js/theme.js +0 -0
  74. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/js/versions.js +0 -0
  75. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/language_data.js +0 -0
  76. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/minus.png +0 -0
  77. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/plus.png +0 -0
  78. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/pygments.css +0 -0
  79. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/searchtools.js +0 -0
  80. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/_static/sphinx_highlight.js +0 -0
  81. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/genindex.html +0 -0
  82. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/objects.inv +0 -0
  83. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/py-modindex.html +0 -0
  84. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/build/html/search.html +0 -0
  85. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/make.bat +0 -0
  86. {thermofluids-2.0.3 → thermofluids-2.0.4}/docs/source/conf.py +0 -0
  87. {thermofluids-2.0.3 → thermofluids-2.0.4}/poetry.lock +0 -0
  88. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/__init__.py +0 -0
  89. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Base/Quantity.py +0 -0
  90. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Base/Statepoint.py +0 -0
  91. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Base/ThermoExceptions.py +0 -0
  92. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Base/__init__.py +0 -0
  93. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Base/thermofluids_registry.txt +0 -0
  94. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Fluids/Drag.py +0 -0
  95. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Fluids/Moody.py +0 -0
  96. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Fluids/PressureDrop.py +0 -0
  97. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Fluids/Re.py +0 -0
  98. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Fluids/__init__.py +0 -0
  99. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/HeatTransfer/Gr.py +0 -0
  100. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/HeatTransfer/NTU.py +0 -0
  101. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/HeatTransfer/Nusselt.py +0 -0
  102. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/HeatTransfer/Ra.py +0 -0
  103. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/HeatTransfer/TwoPhase.py +0 -0
  104. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/HeatTransfer/__init__.py +0 -0
  105. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/HeatTransfer/lmtd.py +0 -0
  106. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/Column.py +0 -0
  107. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/Compressor.py +0 -0
  108. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/Ejector.py +0 -0
  109. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/HeatExchanger.py +0 -0
  110. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/IsoCompressor.py +0 -0
  111. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/Pipe.py +0 -0
  112. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/Pump.py +0 -0
  113. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/Turbine.py +0 -0
  114. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/Valve.py +0 -0
  115. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/ProcessEquipment/__init__.py +0 -0
  116. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Properties/BrineProps.py +0 -0
  117. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Properties/VLE_data.py +0 -0
  118. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Properties/__init__.py +0 -0
  119. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Utilities/FlowDiagram.py +0 -0
  120. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/Utilities/__init__.py +0 -0
  121. {thermofluids-2.0.3 → thermofluids-2.0.4}/src/thermofluids/__init__.py +0 -0
@@ -0,0 +1,78 @@
1
+ Metadata-Version: 2.5
2
+ Name: thermofluids
3
+ Version: 2.0.4
4
+ Summary: Physically-consistent thermal and fluids modeling tools
5
+ Project-URL: Documentation, https://thermofluids-24bc0b.gitlab.io/
6
+ Project-URL: Repository, https://gitlab.com/ericksonla/thermofluids
7
+ Author: Luke Erickson, Russell Goldfarbmuren
8
+ Author-email: russell@rebound-tech.com
9
+ License-Expression: MIT
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3
12
+ Requires-Python: >3.11
13
+ Requires-Dist: coolprop
14
+ Requires-Dist: pint
15
+ Requires-Dist: scipy
16
+ Description-Content-Type: text/markdown
17
+
18
+ # Thermofluids
19
+
20
+ Thermofluids makes modeling thermofluid systems easier. The essential element is the `statepoint`. `statepoint` objects work like physical statepoints: they have two independent variables, many dependent variables, and sometimes extensive variables. You can use them like this:
21
+ ````python
22
+ sp = Statepoint(fluid='water', # define a fluid
23
+ t=25.0, # define one independent variable
24
+ p=1.0, # define a second independent variable
25
+ m=0.1) # define extensive varible
26
+
27
+ sp.rho, sp.h, sp.visc
28
+ # (<Quantity(997.047039, 'kilogram / meter ** 3')>, <Quantity(104.918893, 'kilojoule / kilogram')>, <Quantity(0.000890022674, 'kilogram / meter / second')>)
29
+ ````
30
+
31
+ Representing statepoints this way makes it easy to model thermodynamic cycles. The module includes some common
32
+ thermodynamic unit processes to manipulate statepoints in physically meaningful ways. For example, we can model a
33
+ refrigeration cycle:
34
+
35
+ ````python
36
+ from thermofluids import Statepoint, Quantity
37
+ from thermofluids.ProcessEquipment import Compressor
38
+
39
+
40
+ # Select a refrigerant
41
+ REFR = 'R134A'
42
+
43
+ # Find the saturation pressures of the refrigerant
44
+ ssp = Statepoint(fluid=REFR, t=-10, x=1.).p
45
+ scp = Statepoint(fluid=REFR, t=25., x=1.).p
46
+
47
+ # Define a statepoint representing the state between the evaporator and compressor
48
+ evap_to_comp = Statepoint(fluid=REFR, t=-5., p=ssp, m=0.1)
49
+
50
+ # Use the built in compressor object to calculate the statepoint at the compressor outlet
51
+ comp = Compressor(inlet=evap_to_comp,
52
+ eta=0.7,
53
+ Pout=scp)
54
+ comp_to_cond = comp.get_outlet()
55
+ print(f'Compressor work: {comp.work.to("kW")}')
56
+
57
+ # Derive the statepoint representing the condensed state between the condenser and expansion valve
58
+ cond_to_exp = Statepoint(fluid=REFR, t=20., p=scp, m=evap_to_comp.m)
59
+ q_cond = cond_to_exp.m * (comp_to_cond.h - cond_to_exp.h)
60
+ print(f'Condenser heat: {q_cond.to("kW")}')
61
+
62
+ # Derive the statepoint representing the isenthalpically expanded refrigerant
63
+ exp_to_evap = Statepoint(fluid=REFR, p=ssp, h=cond_to_exp.h, m=cond_to_exp.m)
64
+ q_evap = evap_to_comp.m * (evap_to_comp.h - exp_to_evap.h)
65
+ print(f'Evaporator heat: {q_evap.to("kW")}')
66
+ cop = q_evap / comp.work
67
+ print(f'Coefficient of performance: {cop.to("")}')
68
+ ````
69
+
70
+ ```
71
+ >>> Compressor work: 3.637 kW
72
+ >>> Condenser heat: 20.58 kW
73
+ >>> Evaporator heat: 16.95 kW
74
+ >>> Coefficient of performance: 4.659
75
+ ```
76
+
77
+ # Documentation
78
+ Read the full documentation at https://thermofluids-24bc0b.gitlab.io/
@@ -0,0 +1,61 @@
1
+ # Thermofluids
2
+
3
+ Thermofluids makes modeling thermofluid systems easier. The essential element is the `statepoint`. `statepoint` objects work like physical statepoints: they have two independent variables, many dependent variables, and sometimes extensive variables. You can use them like this:
4
+ ````python
5
+ sp = Statepoint(fluid='water', # define a fluid
6
+ t=25.0, # define one independent variable
7
+ p=1.0, # define a second independent variable
8
+ m=0.1) # define extensive varible
9
+
10
+ sp.rho, sp.h, sp.visc
11
+ # (<Quantity(997.047039, 'kilogram / meter ** 3')>, <Quantity(104.918893, 'kilojoule / kilogram')>, <Quantity(0.000890022674, 'kilogram / meter / second')>)
12
+ ````
13
+
14
+ Representing statepoints this way makes it easy to model thermodynamic cycles. The module includes some common
15
+ thermodynamic unit processes to manipulate statepoints in physically meaningful ways. For example, we can model a
16
+ refrigeration cycle:
17
+
18
+ ````python
19
+ from thermofluids import Statepoint, Quantity
20
+ from thermofluids.ProcessEquipment import Compressor
21
+
22
+
23
+ # Select a refrigerant
24
+ REFR = 'R134A'
25
+
26
+ # Find the saturation pressures of the refrigerant
27
+ ssp = Statepoint(fluid=REFR, t=-10, x=1.).p
28
+ scp = Statepoint(fluid=REFR, t=25., x=1.).p
29
+
30
+ # Define a statepoint representing the state between the evaporator and compressor
31
+ evap_to_comp = Statepoint(fluid=REFR, t=-5., p=ssp, m=0.1)
32
+
33
+ # Use the built in compressor object to calculate the statepoint at the compressor outlet
34
+ comp = Compressor(inlet=evap_to_comp,
35
+ eta=0.7,
36
+ Pout=scp)
37
+ comp_to_cond = comp.get_outlet()
38
+ print(f'Compressor work: {comp.work.to("kW")}')
39
+
40
+ # Derive the statepoint representing the condensed state between the condenser and expansion valve
41
+ cond_to_exp = Statepoint(fluid=REFR, t=20., p=scp, m=evap_to_comp.m)
42
+ q_cond = cond_to_exp.m * (comp_to_cond.h - cond_to_exp.h)
43
+ print(f'Condenser heat: {q_cond.to("kW")}')
44
+
45
+ # Derive the statepoint representing the isenthalpically expanded refrigerant
46
+ exp_to_evap = Statepoint(fluid=REFR, p=ssp, h=cond_to_exp.h, m=cond_to_exp.m)
47
+ q_evap = evap_to_comp.m * (evap_to_comp.h - exp_to_evap.h)
48
+ print(f'Evaporator heat: {q_evap.to("kW")}')
49
+ cop = q_evap / comp.work
50
+ print(f'Coefficient of performance: {cop.to("")}')
51
+ ````
52
+
53
+ ```
54
+ >>> Compressor work: 3.637 kW
55
+ >>> Condenser heat: 20.58 kW
56
+ >>> Evaporator heat: 16.95 kW
57
+ >>> Coefficient of performance: 4.659
58
+ ```
59
+
60
+ # Documentation
61
+ Read the full documentation at https://thermofluids-24bc0b.gitlab.io/
@@ -0,0 +1,120 @@
1
+ .. Thermofluids documentation master file, created by
2
+ sphinx-quickstart on Thu Oct 8 13:47:07 2026.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ Thermofluids
7
+ ============
8
+ Thermofluids makes modeling thermofluid systems easier. The essential element is the `statepoint`. `statepoint` objects work like physical statepoints: they have two independent variables, many dependent variables, and sometimes extensive variables. You can use them like this::
9
+
10
+ sp = Statepoint(fluid='water', # define a fluid
11
+ t=25.0, # define one independent variable
12
+ p=1.0, # define a second independent variable
13
+ m=0.1) # define extensive varible
14
+
15
+ sp.rho, sp.h, sp.visc
16
+
17
+ >>> (<Quantity(997.047039, 'kilogram / meter ** 3')>, <Quantity(104.918893, 'kilojoule / kilogram')>, <Quantity(0.000890022674, 'kilogram / meter / second')>)
18
+
19
+ Representing statepoints this way makes it easy to model thermodynamic cycles. The module includes some common
20
+ thermodynamic unit processes to manipulate statepoints in physically meaningful ways. For example, we can model a
21
+ refrigeration cycle::
22
+
23
+ from thermofluids import Statepoint, Quantity
24
+ from thermofluids.ProcessEquipment import Compressor
25
+
26
+
27
+ # Select a refrigerant
28
+ REFR = 'R134A'
29
+
30
+ # Find the saturation pressures of the refrigerant
31
+ ssp = Statepoint(fluid=REFR, t=-10, x=1.).p
32
+ scp = Statepoint(fluid=REFR, t=25., x=1.).p
33
+
34
+ # Define a statepoint representing the state between the evaporator and compressor
35
+ evap_to_comp = Statepoint(fluid=REFR, t=-5., p=ssp, m=0.1)
36
+
37
+ # Use the built in compressor object to calculate the statepoint at the compressor outlet
38
+ comp = Compressor(inlet=evap_to_comp,
39
+ eta=0.7,
40
+ Pout=scp)
41
+ comp_to_cond = comp.get_outlet()
42
+ print(f'Compressor work: {comp.work.to("kW")}')
43
+
44
+ # Derive the statepoint representing the condensed state between the condenser and expansion valve
45
+ cond_to_exp = Statepoint(fluid=REFR, t=20., p=scp, m=evap_to_comp.m)
46
+ q_cond = cond_to_exp.m * (comp_to_cond.h - cond_to_exp.h)
47
+ print(f'Condenser heat: {q_cond.to("kW")}')
48
+
49
+ # Derive the statepoint representing the isenthalpically expanded refrigerant
50
+ exp_to_evap = Statepoint(fluid=REFR, p=ssp, h=cond_to_exp.h, m=cond_to_exp.m)
51
+ q_evap = evap_to_comp.m * (evap_to_comp.h - exp_to_evap.h)
52
+ print(f'Evaporator heat: {q_evap.to("kW")}')
53
+ cop = q_evap / comp.work
54
+ print(f'Coefficient of performance: {cop.to("")}')
55
+
56
+
57
+ >>> Compressor work: 3.637 kW
58
+ >>> Condenser heat: 20.58 kW
59
+ >>> Evaporator heat: 16.95 kW
60
+ >>> Coefficient of performance: 4.659
61
+
62
+ .. toctree::
63
+ :maxdepth: 2
64
+ :caption: Contents:
65
+
66
+ Essential Functionality
67
+ _______________________
68
+ .. autoclass:: thermofluids.Base.Statepoint.Statepoint
69
+ :members: __add__, __div__
70
+ .. autoclass:: ...src.Base.Quantity
71
+
72
+ Fluids
73
+ ______
74
+ .. automodule:: thermofluids.Fluids.Drag
75
+ :members: f_drag, settling_vel
76
+ .. automodule:: thermofluids.Fluids.Moody
77
+ :members: frictionfactor
78
+ .. automodule:: thermofluids.Fluids.Re
79
+ :members: Re, Re_ext
80
+ .. automodule:: thermofluids.Fluids.PressureDrop
81
+ :members: pressure_drop, pressure_drop_fitting, pressure_drop_packed_bed, pressure_drop_corrugated_plates, flow_at_dp
82
+
83
+ Heat Transfer
84
+ _____________
85
+ .. automodule:: thermofluids.HeatTransfer.lmtd
86
+ :members: lmtd
87
+ .. automodule:: thermofluids.HeatTransfer.Nusselt
88
+ :members: Nu, Nu_natural
89
+ .. automodule:: thermofluids.HeatTransfer.Ra
90
+ :members: Ra
91
+ .. automodule:: thermofluids.HeatTransfer.Gr
92
+ :members: Gr
93
+ .. automodule:: thermofluids.HeatTransfer.NTU
94
+ :members: NTU
95
+ .. automodule:: thermofluids.HeatTransfer.TwoPhase
96
+ :members: Co, Bo, Fr_le, crit_heat_flux, heat_flux_nucleate_boiling, htc_conv_boil
97
+
98
+ Special Properties
99
+ __________________
100
+ .. automodule:: thermofluids.Properties
101
+ .. automodule:: thermofluids.Properties.BrineProps
102
+ :members: get_c_freeze, get_T_liq_sat, get_T_vap_sat, get_P_liq_sat, get_P_vap_sat, get_h_mix, get_C_vap_sat, get_C_liq_sat
103
+
104
+ Process Equipment
105
+ _________________
106
+ .. automodule:: thermofluids.ProcessEquipment
107
+ .. automodule:: thermofluids.ProcessEquipment.Column
108
+ :members: Column
109
+ .. automodule:: thermofluids.ProcessEquipment.Compressor
110
+ :members: Compressor
111
+ .. automodule:: thermofluids.ProcessEquipment.HeatExchanger
112
+ :members: HX_Energy
113
+ .. automodule:: thermofluids.ProcessEquipment.IsoCompressor
114
+ :members: IsoCompressor
115
+ .. automodule:: thermofluids.ProcessEquipment.Pump
116
+ :members: Pump
117
+ .. automodule:: thermofluids.ProcessEquipment.Turbine
118
+ :members: Turbine
119
+ .. automodule:: thermofluids.ProcessEquipment.Valve
120
+ :members: get_valve_flow_rate, get_valve_dP, get_valve_C_v
@@ -128,6 +128,60 @@
128
128
 
129
129
  <section id="thermofluids">
130
130
  <h1>Thermofluids<a class="headerlink" href="#thermofluids" title="Link to this heading"></a></h1>
131
+ <p>Thermofluids makes modeling thermofluid systems easier. The essential element is the <cite>statepoint</cite>. <cite>statepoint</cite> objects work like physical statepoints: they have two independent variables, many dependent variables, and sometimes extensive variables. You can use them like this:</p>
132
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sp</span> <span class="o">=</span> <span class="n">Statepoint</span><span class="p">(</span><span class="n">fluid</span><span class="o">=</span><span class="s1">'water'</span><span class="p">,</span> <span class="c1"># define a fluid</span>
133
+ <span class="n">t</span><span class="o">=</span><span class="mf">25.0</span><span class="p">,</span> <span class="c1"># define one independent variable</span>
134
+ <span class="n">p</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="c1"># define a second independent variable</span>
135
+ <span class="n">m</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span> <span class="c1"># define extensive varible</span>
136
+
137
+ <span class="n">sp</span><span class="o">.</span><span class="n">rho</span><span class="p">,</span> <span class="n">sp</span><span class="o">.</span><span class="n">h</span><span class="p">,</span> <span class="n">sp</span><span class="o">.</span><span class="n">visc</span>
138
+
139
+ <span class="o">&gt;&gt;&gt;</span> <span class="p">(</span><span class="o">&lt;</span><span class="n">Quantity</span><span class="p">(</span><span class="mf">997.047039</span><span class="p">,</span> <span class="s1">'kilogram / meter ** 3'</span><span class="p">)</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">Quantity</span><span class="p">(</span><span class="mf">104.918893</span><span class="p">,</span> <span class="s1">'kilojoule / kilogram'</span><span class="p">)</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="n">Quantity</span><span class="p">(</span><span class="mf">0.000890022674</span><span class="p">,</span> <span class="s1">'kilogram / meter / second'</span><span class="p">)</span><span class="o">&gt;</span><span class="p">)</span>
140
+ </pre></div>
141
+ </div>
142
+ <p>Representing statepoints this way makes it easy to model thermodynamic cycles. The module includes some common
143
+ thermodynamic unit processes to manipulate statepoints in physically meaningful ways. For example, we can model a
144
+ refrigeration cycle:</p>
145
+ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">thermofluids</span><span class="w"> </span><span class="kn">import</span> <span class="n">Statepoint</span><span class="p">,</span> <span class="n">Quantity</span>
146
+ <span class="kn">from</span><span class="w"> </span><span class="nn">thermofluids.ProcessEquipment</span><span class="w"> </span><span class="kn">import</span> <span class="n">Compressor</span>
147
+
148
+
149
+ <span class="c1"># Select a refrigerant</span>
150
+ <span class="n">REFR</span> <span class="o">=</span> <span class="s1">'R134A'</span>
151
+
152
+ <span class="c1"># Find the saturation pressures of the refrigerant</span>
153
+ <span class="n">ssp</span> <span class="o">=</span> <span class="n">Statepoint</span><span class="p">(</span><span class="n">fluid</span><span class="o">=</span><span class="n">REFR</span><span class="p">,</span> <span class="n">t</span><span class="o">=-</span><span class="mi">10</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="mf">1.</span><span class="p">)</span><span class="o">.</span><span class="n">p</span>
154
+ <span class="n">scp</span> <span class="o">=</span> <span class="n">Statepoint</span><span class="p">(</span><span class="n">fluid</span><span class="o">=</span><span class="n">REFR</span><span class="p">,</span> <span class="n">t</span><span class="o">=</span><span class="mf">25.</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="mf">1.</span><span class="p">)</span><span class="o">.</span><span class="n">p</span>
155
+
156
+ <span class="c1"># Define a statepoint representing the state between the evaporator and compressor</span>
157
+ <span class="n">evap_to_comp</span> <span class="o">=</span> <span class="n">Statepoint</span><span class="p">(</span><span class="n">fluid</span><span class="o">=</span><span class="n">REFR</span><span class="p">,</span> <span class="n">t</span><span class="o">=-</span><span class="mf">5.</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="n">ssp</span><span class="p">,</span> <span class="n">m</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
158
+
159
+ <span class="c1"># Use the built in compressor object to calculate the statepoint at the compressor outlet</span>
160
+ <span class="n">comp</span> <span class="o">=</span> <span class="n">Compressor</span><span class="p">(</span><span class="n">inlet</span><span class="o">=</span><span class="n">evap_to_comp</span><span class="p">,</span>
161
+ <span class="n">eta</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span>
162
+ <span class="n">Pout</span><span class="o">=</span><span class="n">scp</span><span class="p">)</span>
163
+ <span class="n">comp_to_cond</span> <span class="o">=</span> <span class="n">comp</span><span class="o">.</span><span class="n">get_outlet</span><span class="p">()</span>
164
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Compressor work: </span><span class="si">{</span><span class="n">comp</span><span class="o">.</span><span class="n">work</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s2">"kW"</span><span class="p">)</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
165
+
166
+ <span class="c1"># Derive the statepoint representing the condensed state between the condenser and expansion valve</span>
167
+ <span class="n">cond_to_exp</span> <span class="o">=</span> <span class="n">Statepoint</span><span class="p">(</span><span class="n">fluid</span><span class="o">=</span><span class="n">REFR</span><span class="p">,</span> <span class="n">t</span><span class="o">=</span><span class="mf">20.</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="n">scp</span><span class="p">,</span> <span class="n">m</span><span class="o">=</span><span class="n">evap_to_comp</span><span class="o">.</span><span class="n">m</span><span class="p">)</span>
168
+ <span class="n">q_cond</span> <span class="o">=</span> <span class="n">cond_to_exp</span><span class="o">.</span><span class="n">m</span> <span class="o">*</span> <span class="p">(</span><span class="n">comp_to_cond</span><span class="o">.</span><span class="n">h</span> <span class="o">-</span> <span class="n">cond_to_exp</span><span class="o">.</span><span class="n">h</span><span class="p">)</span>
169
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Condenser heat: </span><span class="si">{</span><span class="n">q_cond</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s2">"kW"</span><span class="p">)</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
170
+
171
+ <span class="c1"># Derive the statepoint representing the isenthalpically expanded refrigerant</span>
172
+ <span class="n">exp_to_evap</span> <span class="o">=</span> <span class="n">Statepoint</span><span class="p">(</span><span class="n">fluid</span><span class="o">=</span><span class="n">REFR</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="n">ssp</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="n">cond_to_exp</span><span class="o">.</span><span class="n">h</span><span class="p">,</span> <span class="n">m</span><span class="o">=</span><span class="n">cond_to_exp</span><span class="o">.</span><span class="n">m</span><span class="p">)</span>
173
+ <span class="n">q_evap</span> <span class="o">=</span> <span class="n">evap_to_comp</span><span class="o">.</span><span class="n">m</span> <span class="o">*</span> <span class="p">(</span><span class="n">evap_to_comp</span><span class="o">.</span><span class="n">h</span> <span class="o">-</span> <span class="n">exp_to_evap</span><span class="o">.</span><span class="n">h</span><span class="p">)</span>
174
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Evaporator heat: </span><span class="si">{</span><span class="n">q_evap</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s2">"kW"</span><span class="p">)</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
175
+ <span class="n">cop</span> <span class="o">=</span> <span class="n">q_evap</span> <span class="o">/</span> <span class="n">comp</span><span class="o">.</span><span class="n">work</span>
176
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Coefficient of performance: </span><span class="si">{</span><span class="n">cop</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
177
+
178
+
179
+ <span class="o">&gt;&gt;&gt;</span> <span class="n">Compressor</span> <span class="n">work</span><span class="p">:</span> <span class="mf">3.637</span> <span class="n">kW</span>
180
+ <span class="o">&gt;&gt;&gt;</span> <span class="n">Condenser</span> <span class="n">heat</span><span class="p">:</span> <span class="mf">20.58</span> <span class="n">kW</span>
181
+ <span class="o">&gt;&gt;&gt;</span> <span class="n">Evaporator</span> <span class="n">heat</span><span class="p">:</span> <span class="mf">16.95</span> <span class="n">kW</span>
182
+ <span class="o">&gt;&gt;&gt;</span> <span class="n">Coefficient</span> <span class="n">of</span> <span class="n">performance</span><span class="p">:</span> <span class="mf">4.659</span>
183
+ </pre></div>
184
+ </div>
131
185
  <div class="toctree-wrapper compound">
132
186
  </div>
133
187
  <section id="essential-functionality">
@@ -1 +1 @@
1
- Search.setIndex({"alltitles":{"Essential Functionality":[[0,"essential-functionality"]],"Fluids":[[0,"module-thermofluids.Fluids.Drag"]],"Heat Transfer":[[0,"module-thermofluids.HeatTransfer.lmtd"]],"Process Equipment":[[0,"module-thermofluids.ProcessEquipment"]],"Special Properties":[[0,"module-thermofluids.Properties"]],"Thermofluids":[[0,null]]},"docnames":["index"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst"],"indexentries":{"__add__() (thermofluids.base.statepoint.statepoint method)":[[0,"thermofluids.Base.Statepoint.Statepoint.__add__",false]],"__div__() (thermofluids.base.statepoint.statepoint method)":[[0,"thermofluids.Base.Statepoint.Statepoint.__div__",false]],"bo() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.Bo",false]],"co() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.Co",false]],"column (class in thermofluids.processequipment.column)":[[0,"thermofluids.ProcessEquipment.Column.Column",false]],"compressor (class in thermofluids.processequipment.compressor)":[[0,"thermofluids.ProcessEquipment.Compressor.Compressor",false]],"crit_heat_flux() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.crit_heat_flux",false]],"f_drag() (in module thermofluids.fluids.drag)":[[0,"thermofluids.Fluids.Drag.f_drag",false]],"fr_le() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.Fr_le",false]],"frictionfactor() (in module thermofluids.fluids.moody)":[[0,"thermofluids.Fluids.Moody.frictionfactor",false]],"get_c_freeze() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_c_freeze",false]],"get_diabatic_curves() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.get_diabatic_curves",false]],"get_p_liq_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_P_liq_sat",false]],"get_p_vap_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_P_vap_sat",false]],"get_t_liq_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_T_liq_sat",false]],"get_t_vap_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_T_vap_sat",false]],"get_valve_c_v() (in module thermofluids.processequipment.valve)":[[0,"thermofluids.ProcessEquipment.Valve.get_valve_C_v",false]],"get_valve_dp() (in module thermofluids.processequipment.valve)":[[0,"thermofluids.ProcessEquipment.Valve.get_valve_dP",false]],"get_valve_flow_rate() (in module thermofluids.processequipment.valve)":[[0,"thermofluids.ProcessEquipment.Valve.get_valve_flow_rate",false]],"heat_flux_nucleate_boiling() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.heat_flux_nucleate_boiling",false]],"htc_conv_boil() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.htc_conv_boil",false]],"lmtd() (in module thermofluids.heattransfer.lmtd)":[[0,"thermofluids.HeatTransfer.lmtd.lmtd",false]],"mccabe() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.mccabe",false]],"mccabe_diabatic() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.mccabe_diabatic",false]],"me_balance() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.ME_balance",false]],"module":[[0,"module-thermofluids.Fluids.Drag",false],[0,"module-thermofluids.Fluids.Moody",false],[0,"module-thermofluids.Fluids.PressureDrop",false],[0,"module-thermofluids.Fluids.Re",false],[0,"module-thermofluids.HeatTransfer.Gr",false],[0,"module-thermofluids.HeatTransfer.NTU",false],[0,"module-thermofluids.HeatTransfer.Nusselt",false],[0,"module-thermofluids.HeatTransfer.Ra",false],[0,"module-thermofluids.HeatTransfer.TwoPhase",false],[0,"module-thermofluids.HeatTransfer.lmtd",false],[0,"module-thermofluids.ProcessEquipment",false],[0,"module-thermofluids.ProcessEquipment.Column",false],[0,"module-thermofluids.ProcessEquipment.Compressor",false],[0,"module-thermofluids.ProcessEquipment.HeatExchanger",false],[0,"module-thermofluids.ProcessEquipment.IsoCompressor",false],[0,"module-thermofluids.ProcessEquipment.Pump",false],[0,"module-thermofluids.ProcessEquipment.Turbine",false],[0,"module-thermofluids.ProcessEquipment.Valve",false],[0,"module-thermofluids.Properties",false],[0,"module-thermofluids.Properties.BrineProps",false]],"nu() (in module thermofluids.heattransfer.nusselt)":[[0,"thermofluids.HeatTransfer.Nusselt.Nu",false]],"nu_natural() (in module thermofluids.heattransfer.nusselt)":[[0,"thermofluids.HeatTransfer.Nusselt.Nu_natural",false]],"off_design() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.off_design",false]],"pressure_drop() (in module thermofluids.fluids.pressuredrop)":[[0,"thermofluids.Fluids.PressureDrop.pressure_drop",false]],"pressure_drop_corrugated_plates() (in module thermofluids.fluids.pressuredrop)":[[0,"thermofluids.Fluids.PressureDrop.pressure_drop_corrugated_plates",false]],"pressure_drop_fitting() (in module thermofluids.fluids.pressuredrop)":[[0,"thermofluids.Fluids.PressureDrop.pressure_drop_fitting",false]],"ra() (in module thermofluids.heattransfer.ra)":[[0,"thermofluids.HeatTransfer.Ra.Ra",false]],"re_ext() (in module thermofluids.fluids.re)":[[0,"thermofluids.Fluids.Re.Re_ext",false]],"settling_vel() (in module thermofluids.fluids.drag)":[[0,"thermofluids.Fluids.Drag.settling_vel",false]],"statepoint (class in thermofluids.base.statepoint)":[[0,"thermofluids.Base.Statepoint.Statepoint",false]],"thermofluids.fluids.drag":[[0,"module-thermofluids.Fluids.Drag",false]],"thermofluids.fluids.moody":[[0,"module-thermofluids.Fluids.Moody",false]],"thermofluids.fluids.pressuredrop":[[0,"module-thermofluids.Fluids.PressureDrop",false]],"thermofluids.fluids.re":[[0,"module-thermofluids.Fluids.Re",false]],"thermofluids.heattransfer.gr":[[0,"module-thermofluids.HeatTransfer.Gr",false]],"thermofluids.heattransfer.lmtd":[[0,"module-thermofluids.HeatTransfer.lmtd",false]],"thermofluids.heattransfer.ntu":[[0,"module-thermofluids.HeatTransfer.NTU",false]],"thermofluids.heattransfer.nusselt":[[0,"module-thermofluids.HeatTransfer.Nusselt",false]],"thermofluids.heattransfer.ra":[[0,"module-thermofluids.HeatTransfer.Ra",false]],"thermofluids.heattransfer.twophase":[[0,"module-thermofluids.HeatTransfer.TwoPhase",false]],"thermofluids.processequipment":[[0,"module-thermofluids.ProcessEquipment",false]],"thermofluids.processequipment.column":[[0,"module-thermofluids.ProcessEquipment.Column",false]],"thermofluids.processequipment.compressor":[[0,"module-thermofluids.ProcessEquipment.Compressor",false]],"thermofluids.processequipment.heatexchanger":[[0,"module-thermofluids.ProcessEquipment.HeatExchanger",false]],"thermofluids.processequipment.isocompressor":[[0,"module-thermofluids.ProcessEquipment.IsoCompressor",false]],"thermofluids.processequipment.pump":[[0,"module-thermofluids.ProcessEquipment.Pump",false]],"thermofluids.processequipment.turbine":[[0,"module-thermofluids.ProcessEquipment.Turbine",false]],"thermofluids.processequipment.valve":[[0,"module-thermofluids.ProcessEquipment.Valve",false]],"thermofluids.properties":[[0,"module-thermofluids.Properties",false]],"thermofluids.properties.brineprops":[[0,"module-thermofluids.Properties.BrineProps",false]],"turbine (class in thermofluids.processequipment.turbine)":[[0,"thermofluids.ProcessEquipment.Turbine.Turbine",false]]},"objects":{"thermofluids":[[0,2,0,"-","ProcessEquipment"],[0,2,0,"-","Properties"]],"thermofluids.Base.Statepoint":[[0,0,1,"","Statepoint"]],"thermofluids.Base.Statepoint.Statepoint":[[0,1,1,"","__add__"],[0,1,1,"","__div__"]],"thermofluids.Fluids":[[0,2,0,"-","Drag"],[0,2,0,"-","Moody"],[0,2,0,"-","PressureDrop"],[0,2,0,"-","Re"]],"thermofluids.Fluids.Drag":[[0,3,1,"","f_drag"],[0,3,1,"","settling_vel"]],"thermofluids.Fluids.Moody":[[0,3,1,"","frictionfactor"]],"thermofluids.Fluids.PressureDrop":[[0,3,1,"","pressure_drop"],[0,3,1,"","pressure_drop_corrugated_plates"],[0,3,1,"","pressure_drop_fitting"]],"thermofluids.Fluids.Re":[[0,3,1,"","Re_ext"]],"thermofluids.HeatTransfer":[[0,2,0,"-","Gr"],[0,2,0,"-","NTU"],[0,2,0,"-","Nusselt"],[0,2,0,"-","Ra"],[0,2,0,"-","TwoPhase"],[0,2,0,"-","lmtd"]],"thermofluids.HeatTransfer.Nusselt":[[0,3,1,"","Nu"],[0,3,1,"","Nu_natural"]],"thermofluids.HeatTransfer.Ra":[[0,3,1,"","Ra"]],"thermofluids.HeatTransfer.TwoPhase":[[0,3,1,"","Bo"],[0,3,1,"","Co"],[0,3,1,"","Fr_le"],[0,3,1,"","crit_heat_flux"],[0,3,1,"","heat_flux_nucleate_boiling"],[0,3,1,"","htc_conv_boil"]],"thermofluids.HeatTransfer.lmtd":[[0,3,1,"","lmtd"]],"thermofluids.ProcessEquipment":[[0,2,0,"-","Column"],[0,2,0,"-","Compressor"],[0,2,0,"-","HeatExchanger"],[0,2,0,"-","IsoCompressor"],[0,2,0,"-","Pump"],[0,2,0,"-","Turbine"],[0,2,0,"-","Valve"]],"thermofluids.ProcessEquipment.Column":[[0,0,1,"","Column"]],"thermofluids.ProcessEquipment.Column.Column":[[0,1,1,"","ME_balance"],[0,1,1,"","get_diabatic_curves"],[0,1,1,"","mccabe"],[0,1,1,"","mccabe_diabatic"],[0,1,1,"","off_design"]],"thermofluids.ProcessEquipment.Compressor":[[0,0,1,"","Compressor"]],"thermofluids.ProcessEquipment.Turbine":[[0,0,1,"","Turbine"]],"thermofluids.ProcessEquipment.Valve":[[0,3,1,"","get_valve_C_v"],[0,3,1,"","get_valve_dP"],[0,3,1,"","get_valve_flow_rate"]],"thermofluids.Properties":[[0,2,0,"-","BrineProps"]],"thermofluids.Properties.BrineProps":[[0,3,1,"","get_P_liq_sat"],[0,3,1,"","get_P_vap_sat"],[0,3,1,"","get_T_liq_sat"],[0,3,1,"","get_T_vap_sat"],[0,3,1,"","get_c_freeze"]]},"objnames":{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","module","Python module"],"3":["py","function","Python function"]},"objtypes":{"0":"py:class","1":"py:method","2":"py:module","3":"py:function"},"terms":{"1st":0,"3rd":0,"45deg":0,"93thiele_method":0,"A":0,"All":0,"As":0,"Do":0,"For":0,"From":0,"I":0,"If":0,"In":0,"It":0,"Most":0,"Some":0,"That":0,"The":0,"There":0,"This":0,"To":0,"We":0,"You":0,"__add__":0,"__div__":0,"access":0,"accord":0,"account":0,"achp":0,"achpcompon":0,"across":0,"adapt":0,"add":0,"addit":0,"air":0,"aka":0,"al":0,"alfa":0,"allow_warn":0,"also":0,"analysi":0,"angl":0,"ani":0,"anoth":0,"approx":0,"approxim":0,"area":0,"array":0,"assum":0,"attempt":0,"attribut":0,"auto":0,"automat":0,"avail":0,"backend":0,"balanc":0,"bar":0,"base":0,"becaus":0,"best":0,"beta":0,"better":0,"bigger":0,"bo":0,"boil":0,"boiling_heat_transfer_correl":0,"bottom":0,"braze":0,"brine":0,"brineprop":0,"bubbl":0,"buggi":0,"bulb":0,"c":0,"c_v":0,"calcualt":0,"calcul":0,"call":0,"can":0,"capac":0,"carey":0,"celcius":0,"cengel":0,"chang":0,"channel":0,"character":0,"characterist":0,"chevron":0,"chevron_angl":0,"class":0,"co":0,"code":0,"coe":0,"coeffici":0,"column":0,"com":0,"combin":0,"combo":0,"come":0,"compar":0,"complet":0,"complex":0,"compressor":0,"comput":0,"conc":0,"concentr":0,"condit":0,"conduct":0,"conserv":0,"constant":0,"contain":0,"contrast":0,"convect":0,"convenct":0,"converg":0,"cool":0,"coolprop":0,"coordin":0,"correl":0,"correlations_for_critical_heat_flux":0,"corrug":0,"cp":0,"cp_l":0,"creat":0,"crit_heat_flux":0,"criteria":0,"critic":0,"critical_heat_flux":0,"csf":0,"current":0,"curv":0,"cv":0,"cvap":0,"cylind":0,"d":0,"d1":0,"d2":0,"d_col":0,"d_h_ext":0,"d_solid":0,"damp":0,"darci":0,"debug":0,"default":0,"defin":0,"definit":0,"densiti":0,"depend":0,"describ":0,"design":0,"desir":0,"destruct":0,"detail":0,"determin":0,"dew":0,"diabat":0,"diabatic_mccab":0,"diagram":0,"diamet":0,"differ":0,"dimens":0,"direct":0,"distil":0,"dive":0,"divid":0,"doe":0,"don":0,"downward":0,"dp":0,"drag":0,"dri":0,"drop":0,"due":0,"dure":0,"dynam":0,"e2":0,"ed":0,"edit":0,"effici":0,"either":0,"elbow":0,"en":0,"enabl":0,"energi":0,"enthalpi":0,"entrain":0,"entropi":0,"equal":0,"equilibrium":0,"equival":0,"erickson":0,"et":0,"eta":0,"everi":0,"everyth":0,"exampl":0,"except":0,"exchang":0,"exergi":0,"expand":0,"expans":0,"extens":0,"extern":0,"f":0,"f_drag":0,"fact":0,"factor":0,"fals":0,"faster":0,"feed":0,"field":0,"file":0,"find":0,"fiona":0,"fit":0,"fitting_typ":0,"fix":0,"float":0,"flow":0,"flow_coeffici":0,"fluid_flow":0,"flux":0,"follow":0,"forc":0,"fr_le":0,"fraction":0,"freez":0,"friction":0,"frictionfactor":0,"frontal":0,"froud":0,"fulldetail":0,"fulli":0,"g":0,"gamma":0,"gas":0,"get":0,"get_c_freez":0,"get_diabatic_curv":0,"get_p_liq_sat":0,"get_p_vap_sat":0,"get_t_liq_sat":0,"get_t_vap_sat":0,"get_valve_c_v":0,"get_valve_dp":0,"get_valve_flow_r":0,"given":0,"go":0,"gr":0,"graphic":0,"grashof":0,"graviti":0,"h":0,"h_tray":0,"h_v":0,"head":0,"heat_flux_nucleate_boil":0,"heating_stream":0,"heattransf":0,"height":0,"high":0,"higher":0,"horizont":0,"htc":0,"htc_conv_boil":0,"html":0,"http":0,"https":0,"humid":0,"hx":0,"hydraul":0,"hydrodynam":0,"icentrop":0,"implement":0,"import":0,"improv":0,"inclin":0,"includ":0,"incomp":0,"incompress":0,"independ":0,"inertia":0,"info":0,"inform":0,"inject":0,"inlet":0,"input":0,"instanc":0,"instead":0,"integ":0,"intens":0,"interfaci":0,"internal":0,"isenthalp":0,"isoforc":0,"juli":0,"june":0,"just":0,"k":0,"k_l":0,"kg":0,"kinemat":0,"kj":0,"known":0,"kw":0,"l":0,"laminar":0,"latent":0,"laval":0,"leav":0,"left":0,"legal":0,"length":0,"let":0,"librari":0,"libtsl":0,"like":0,"line":0,"linear":0,"liquid":0,"lmtd":0,"log":0,"long":0,"lookup":0,"loss":0,"lower":0,"luke":0,"m":0,"majeau":0,"make":0,"manipul":0,"mass":0,"match":0,"mayb":0,"mccabe":0,"mccabe_diabat":0,"mccabe_diabatic_bottomup":0,"me_bal":0,"mean":0,"methanol":0,"method":0,"metropump":0,"minim":0,"minimum":0,"mix":0,"mixtur":0,"mma":0,"mode":0,"model":0,"moodi":0,"move":0,"mr_darci":0,"mu":0,"mu_l":0,"much":0,"must":0,"n":0,"n_tray":0,"name":0,"natur":0,"necessari":0,"need":0,"net":0,"neutrium":0,"new":0,"non":0,"none":0,"nov":0,"now":0,"nu":0,"nu_natur":0,"nucleat":0,"nucleate_boil":0,"nulleg":0,"num_tray":0,"number":0,"nusselt":0,"object":0,"off_design":0,"omega":0,"onc":0,"one":0,"onli":0,"oper":0,"oper_shift":0,"optim":0,"option":0,"order":0,"org":0,"outlet":0,"outlet_liq_c":0,"outlet_vap":0,"output":0,"output_nam":0,"p":0,"p511":0,"p616":0,"p_col":0,"parallel":0,"param":0,"paramet":0,"particl":0,"pdf":0,"perform":0,"perimet":0,"perpendicular":0,"phase":0,"phenomena":0,"pi":0,"pictur":0,"pipe":0,"plate":0,"plateheatexchang":0,"pleas":0,"plot":0,"plotfil":0,"png":0,"point":0,"pout":0,"pr":0,"pr_l":0,"prandtl":0,"pressur":0,"pressure_drop":0,"pressure_drop_corrugated_pl":0,"pressure_drop_fit":0,"pressuredrop":0,"pretti":0,"print":0,"printmod":0,"processequip":0,"produc":0,"product":0,"prop":0,"pump":0,"py":0,"q":0,"q_feed_to_satliq":0,"q_flux":0,"q_input":0,"q_sen":0,"q_total":0,"q_trays_tot":0,"qualiti":0,"quantiti":0,"r404a":0,"ra":0,"radian":0,"rang":0,"rate":0,"ratio":0,"rayleigh":0,"re":0,"re_ext":0,"rebound":0,"rectifi":0,"refer":0,"refprop":0,"regim":0,"region":0,"relat":0,"relrough":0,"remain":0,"repres":0,"represent":0,"requir":0,"resourcesfrictionlossdata":0,"rest":0,"result":0,"return":0,"reynold":0,"rh":0,"rho":0,"rho_l":0,"rho_solid":0,"rho_v":0,"right":0,"rohsenow":0,"room":0,"rough":0,"round":0,"run":0,"s":0,"satisfi":0,"satur":0,"sauar":0,"secondari":0,"section":0,"see":0,"seem":0,"sensibl":0,"set":0,"settl":0,"settling_vel":0,"sg":0,"shah":0,"shape":0,"shift":0,"show":0,"sigma":0,"signific":0,"simpl":0,"simplest":0,"singl":0,"size":0,"slower":0,"solid":0,"solv":0,"solver":0,"someth":0,"sound":0,"sourc":0,"source_var":0,"sourceforg":0,"southeast":0,"sp":0,"space":0,"specif":0,"specifi":0,"speed":0,"sphere":0,"sqrt":0,"squar":0,"src":0,"ss":0,"state":0,"statepoint":0,"step":0,"stoke":0,"str":0,"stream":0,"string":0,"style":0,"subcool":0,"substitut":0,"sum":0,"suppress":0,"surfac":0,"t":0,"t_cold_in":0,"t_cold_out":0,"t_freez":0,"t_hot_in":0,"t_hot_out":0,"t_s":0,"t_sat":0,"t_wall":0,"tdp":0,"technolog":0,"temp":0,"temperatur":0,"tend":0,"tension":0,"theil":0,"thermal":0,"thiel":0,"thing":0,"think":0,"three":0,"time":0,"tlsat":0,"top":0,"total":0,"transit":0,"tray":0,"tray_conc":0,"tray_mass":0,"tray_temp":0,"true":0,"tube":0,"tupl":0,"turbin":0,"turbo":0,"turbul":0,"tvsat":0,"twb":0,"two":0,"twophas":0,"typic":0,"u":0,"unit":0,"use":0,"v":0,"val":0,"valu":0,"valv":0,"vapor":0,"vel":0,"veloc":0,"velocti":0,"vertic":0,"visc":0,"viscos":0,"vle":0,"volum":0,"volumetr":0,"vs":0,"wall":0,"warn":0,"water":0,"way":0,"well":0,"wet":0,"width":0,"wiki":0,"wikipedia":0,"will":0,"wise":0,"within":0,"without":0,"work":0,"written":0,"wt":0,"www":0,"x":0,"x_oper":0,"x_sat":0,"x_vle":0,"y_oper":0,"y_sat":0,"y_vle":0},"titles":["Thermofluids"],"titleterms":{"equip":0,"essenti":0,"fluid":0,"function":0,"heat":0,"process":0,"properti":0,"special":0,"thermofluid":0,"transfer":0}})
1
+ Search.setIndex({"alltitles":{"Essential Functionality":[[0,"essential-functionality"]],"Fluids":[[0,"module-thermofluids.Fluids.Drag"]],"Heat Transfer":[[0,"module-thermofluids.HeatTransfer.lmtd"]],"Process Equipment":[[0,"module-thermofluids.ProcessEquipment"]],"Special Properties":[[0,"module-thermofluids.Properties"]],"Thermofluids":[[0,null]]},"docnames":["index"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst"],"indexentries":{"__add__() (thermofluids.base.statepoint.statepoint method)":[[0,"thermofluids.Base.Statepoint.Statepoint.__add__",false]],"__div__() (thermofluids.base.statepoint.statepoint method)":[[0,"thermofluids.Base.Statepoint.Statepoint.__div__",false]],"bo() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.Bo",false]],"co() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.Co",false]],"column (class in thermofluids.processequipment.column)":[[0,"thermofluids.ProcessEquipment.Column.Column",false]],"compressor (class in thermofluids.processequipment.compressor)":[[0,"thermofluids.ProcessEquipment.Compressor.Compressor",false]],"crit_heat_flux() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.crit_heat_flux",false]],"f_drag() (in module thermofluids.fluids.drag)":[[0,"thermofluids.Fluids.Drag.f_drag",false]],"fr_le() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.Fr_le",false]],"frictionfactor() (in module thermofluids.fluids.moody)":[[0,"thermofluids.Fluids.Moody.frictionfactor",false]],"get_c_freeze() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_c_freeze",false]],"get_diabatic_curves() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.get_diabatic_curves",false]],"get_p_liq_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_P_liq_sat",false]],"get_p_vap_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_P_vap_sat",false]],"get_t_liq_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_T_liq_sat",false]],"get_t_vap_sat() (in module thermofluids.properties.brineprops)":[[0,"thermofluids.Properties.BrineProps.get_T_vap_sat",false]],"get_valve_c_v() (in module thermofluids.processequipment.valve)":[[0,"thermofluids.ProcessEquipment.Valve.get_valve_C_v",false]],"get_valve_dp() (in module thermofluids.processequipment.valve)":[[0,"thermofluids.ProcessEquipment.Valve.get_valve_dP",false]],"get_valve_flow_rate() (in module thermofluids.processequipment.valve)":[[0,"thermofluids.ProcessEquipment.Valve.get_valve_flow_rate",false]],"heat_flux_nucleate_boiling() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.heat_flux_nucleate_boiling",false]],"htc_conv_boil() (in module thermofluids.heattransfer.twophase)":[[0,"thermofluids.HeatTransfer.TwoPhase.htc_conv_boil",false]],"lmtd() (in module thermofluids.heattransfer.lmtd)":[[0,"thermofluids.HeatTransfer.lmtd.lmtd",false]],"mccabe() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.mccabe",false]],"mccabe_diabatic() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.mccabe_diabatic",false]],"me_balance() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.ME_balance",false]],"module":[[0,"module-thermofluids.Fluids.Drag",false],[0,"module-thermofluids.Fluids.Moody",false],[0,"module-thermofluids.Fluids.PressureDrop",false],[0,"module-thermofluids.Fluids.Re",false],[0,"module-thermofluids.HeatTransfer.Gr",false],[0,"module-thermofluids.HeatTransfer.NTU",false],[0,"module-thermofluids.HeatTransfer.Nusselt",false],[0,"module-thermofluids.HeatTransfer.Ra",false],[0,"module-thermofluids.HeatTransfer.TwoPhase",false],[0,"module-thermofluids.HeatTransfer.lmtd",false],[0,"module-thermofluids.ProcessEquipment",false],[0,"module-thermofluids.ProcessEquipment.Column",false],[0,"module-thermofluids.ProcessEquipment.Compressor",false],[0,"module-thermofluids.ProcessEquipment.HeatExchanger",false],[0,"module-thermofluids.ProcessEquipment.IsoCompressor",false],[0,"module-thermofluids.ProcessEquipment.Pump",false],[0,"module-thermofluids.ProcessEquipment.Turbine",false],[0,"module-thermofluids.ProcessEquipment.Valve",false],[0,"module-thermofluids.Properties",false],[0,"module-thermofluids.Properties.BrineProps",false]],"nu() (in module thermofluids.heattransfer.nusselt)":[[0,"thermofluids.HeatTransfer.Nusselt.Nu",false]],"nu_natural() (in module thermofluids.heattransfer.nusselt)":[[0,"thermofluids.HeatTransfer.Nusselt.Nu_natural",false]],"off_design() (thermofluids.processequipment.column.column method)":[[0,"thermofluids.ProcessEquipment.Column.Column.off_design",false]],"pressure_drop() (in module thermofluids.fluids.pressuredrop)":[[0,"thermofluids.Fluids.PressureDrop.pressure_drop",false]],"pressure_drop_corrugated_plates() (in module thermofluids.fluids.pressuredrop)":[[0,"thermofluids.Fluids.PressureDrop.pressure_drop_corrugated_plates",false]],"pressure_drop_fitting() (in module thermofluids.fluids.pressuredrop)":[[0,"thermofluids.Fluids.PressureDrop.pressure_drop_fitting",false]],"ra() (in module thermofluids.heattransfer.ra)":[[0,"thermofluids.HeatTransfer.Ra.Ra",false]],"re_ext() (in module thermofluids.fluids.re)":[[0,"thermofluids.Fluids.Re.Re_ext",false]],"settling_vel() (in module thermofluids.fluids.drag)":[[0,"thermofluids.Fluids.Drag.settling_vel",false]],"statepoint (class in thermofluids.base.statepoint)":[[0,"thermofluids.Base.Statepoint.Statepoint",false]],"thermofluids.fluids.drag":[[0,"module-thermofluids.Fluids.Drag",false]],"thermofluids.fluids.moody":[[0,"module-thermofluids.Fluids.Moody",false]],"thermofluids.fluids.pressuredrop":[[0,"module-thermofluids.Fluids.PressureDrop",false]],"thermofluids.fluids.re":[[0,"module-thermofluids.Fluids.Re",false]],"thermofluids.heattransfer.gr":[[0,"module-thermofluids.HeatTransfer.Gr",false]],"thermofluids.heattransfer.lmtd":[[0,"module-thermofluids.HeatTransfer.lmtd",false]],"thermofluids.heattransfer.ntu":[[0,"module-thermofluids.HeatTransfer.NTU",false]],"thermofluids.heattransfer.nusselt":[[0,"module-thermofluids.HeatTransfer.Nusselt",false]],"thermofluids.heattransfer.ra":[[0,"module-thermofluids.HeatTransfer.Ra",false]],"thermofluids.heattransfer.twophase":[[0,"module-thermofluids.HeatTransfer.TwoPhase",false]],"thermofluids.processequipment":[[0,"module-thermofluids.ProcessEquipment",false]],"thermofluids.processequipment.column":[[0,"module-thermofluids.ProcessEquipment.Column",false]],"thermofluids.processequipment.compressor":[[0,"module-thermofluids.ProcessEquipment.Compressor",false]],"thermofluids.processequipment.heatexchanger":[[0,"module-thermofluids.ProcessEquipment.HeatExchanger",false]],"thermofluids.processequipment.isocompressor":[[0,"module-thermofluids.ProcessEquipment.IsoCompressor",false]],"thermofluids.processequipment.pump":[[0,"module-thermofluids.ProcessEquipment.Pump",false]],"thermofluids.processequipment.turbine":[[0,"module-thermofluids.ProcessEquipment.Turbine",false]],"thermofluids.processequipment.valve":[[0,"module-thermofluids.ProcessEquipment.Valve",false]],"thermofluids.properties":[[0,"module-thermofluids.Properties",false]],"thermofluids.properties.brineprops":[[0,"module-thermofluids.Properties.BrineProps",false]],"turbine (class in thermofluids.processequipment.turbine)":[[0,"thermofluids.ProcessEquipment.Turbine.Turbine",false]]},"objects":{"thermofluids":[[0,2,0,"-","ProcessEquipment"],[0,2,0,"-","Properties"]],"thermofluids.Base.Statepoint":[[0,0,1,"","Statepoint"]],"thermofluids.Base.Statepoint.Statepoint":[[0,1,1,"","__add__"],[0,1,1,"","__div__"]],"thermofluids.Fluids":[[0,2,0,"-","Drag"],[0,2,0,"-","Moody"],[0,2,0,"-","PressureDrop"],[0,2,0,"-","Re"]],"thermofluids.Fluids.Drag":[[0,3,1,"","f_drag"],[0,3,1,"","settling_vel"]],"thermofluids.Fluids.Moody":[[0,3,1,"","frictionfactor"]],"thermofluids.Fluids.PressureDrop":[[0,3,1,"","pressure_drop"],[0,3,1,"","pressure_drop_corrugated_plates"],[0,3,1,"","pressure_drop_fitting"]],"thermofluids.Fluids.Re":[[0,3,1,"","Re_ext"]],"thermofluids.HeatTransfer":[[0,2,0,"-","Gr"],[0,2,0,"-","NTU"],[0,2,0,"-","Nusselt"],[0,2,0,"-","Ra"],[0,2,0,"-","TwoPhase"],[0,2,0,"-","lmtd"]],"thermofluids.HeatTransfer.Nusselt":[[0,3,1,"","Nu"],[0,3,1,"","Nu_natural"]],"thermofluids.HeatTransfer.Ra":[[0,3,1,"","Ra"]],"thermofluids.HeatTransfer.TwoPhase":[[0,3,1,"","Bo"],[0,3,1,"","Co"],[0,3,1,"","Fr_le"],[0,3,1,"","crit_heat_flux"],[0,3,1,"","heat_flux_nucleate_boiling"],[0,3,1,"","htc_conv_boil"]],"thermofluids.HeatTransfer.lmtd":[[0,3,1,"","lmtd"]],"thermofluids.ProcessEquipment":[[0,2,0,"-","Column"],[0,2,0,"-","Compressor"],[0,2,0,"-","HeatExchanger"],[0,2,0,"-","IsoCompressor"],[0,2,0,"-","Pump"],[0,2,0,"-","Turbine"],[0,2,0,"-","Valve"]],"thermofluids.ProcessEquipment.Column":[[0,0,1,"","Column"]],"thermofluids.ProcessEquipment.Column.Column":[[0,1,1,"","ME_balance"],[0,1,1,"","get_diabatic_curves"],[0,1,1,"","mccabe"],[0,1,1,"","mccabe_diabatic"],[0,1,1,"","off_design"]],"thermofluids.ProcessEquipment.Compressor":[[0,0,1,"","Compressor"]],"thermofluids.ProcessEquipment.Turbine":[[0,0,1,"","Turbine"]],"thermofluids.ProcessEquipment.Valve":[[0,3,1,"","get_valve_C_v"],[0,3,1,"","get_valve_dP"],[0,3,1,"","get_valve_flow_rate"]],"thermofluids.Properties":[[0,2,0,"-","BrineProps"]],"thermofluids.Properties.BrineProps":[[0,3,1,"","get_P_liq_sat"],[0,3,1,"","get_P_vap_sat"],[0,3,1,"","get_T_liq_sat"],[0,3,1,"","get_T_vap_sat"],[0,3,1,"","get_c_freeze"]]},"objnames":{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","module","Python module"],"3":["py","function","Python function"]},"objtypes":{"0":"py:class","1":"py:method","2":"py:module","3":"py:function"},"terms":{"1st":0,"3rd":0,"45deg":0,"93thiele_method":0,"A":0,"All":0,"As":0,"Do":0,"For":0,"From":0,"I":0,"If":0,"In":0,"It":0,"Most":0,"Some":0,"That":0,"The":0,"There":0,"This":0,"To":0,"We":0,"You":0,"__add__":0,"__div__":0,"access":0,"accord":0,"account":0,"achp":0,"achpcompon":0,"across":0,"adapt":0,"add":0,"addit":0,"air":0,"aka":0,"al":0,"alfa":0,"allow_warn":0,"also":0,"analysi":0,"angl":0,"ani":0,"anoth":0,"approx":0,"approxim":0,"area":0,"array":0,"assum":0,"attempt":0,"attribut":0,"auto":0,"automat":0,"avail":0,"backend":0,"balanc":0,"bar":0,"base":0,"becaus":0,"best":0,"beta":0,"better":0,"bigger":0,"bo":0,"boil":0,"boiling_heat_transfer_correl":0,"bottom":0,"braze":0,"brine":0,"brineprop":0,"bubbl":0,"buggi":0,"built":0,"bulb":0,"c":0,"c_v":0,"calcualt":0,"calcul":0,"call":0,"can":0,"capac":0,"carey":0,"celcius":0,"cengel":0,"chang":0,"channel":0,"character":0,"characterist":0,"chevron":0,"chevron_angl":0,"class":0,"co":0,"code":0,"coe":0,"coeffici":0,"column":0,"com":0,"combin":0,"combo":0,"come":0,"common":0,"comp":0,"comp_to_cond":0,"compar":0,"complet":0,"complex":0,"compressor":0,"comput":0,"conc":0,"concentr":0,"cond_to_exp":0,"condens":0,"condit":0,"conduct":0,"conserv":0,"constant":0,"contain":0,"contrast":0,"convect":0,"convenct":0,"converg":0,"cool":0,"coolprop":0,"coordin":0,"cop":0,"correl":0,"correlations_for_critical_heat_flux":0,"corrug":0,"cp":0,"cp_l":0,"creat":0,"crit_heat_flux":0,"criteria":0,"critic":0,"critical_heat_flux":0,"csf":0,"current":0,"curv":0,"cv":0,"cvap":0,"cycl":0,"cylind":0,"d":0,"d1":0,"d2":0,"d_col":0,"d_h_ext":0,"d_solid":0,"damp":0,"darci":0,"debug":0,"default":0,"defin":0,"definit":0,"densiti":0,"depend":0,"deriv":0,"describ":0,"design":0,"desir":0,"destruct":0,"detail":0,"determin":0,"dew":0,"diabat":0,"diabatic_mccab":0,"diagram":0,"diamet":0,"differ":0,"dimens":0,"direct":0,"distil":0,"dive":0,"divid":0,"doe":0,"don":0,"downward":0,"dp":0,"drag":0,"dri":0,"drop":0,"due":0,"dure":0,"dynam":0,"e2":0,"easi":0,"easier":0,"ed":0,"edit":0,"effici":0,"either":0,"elbow":0,"element":0,"en":0,"enabl":0,"energi":0,"enthalpi":0,"entrain":0,"entropi":0,"equal":0,"equilibrium":0,"equival":0,"erickson":0,"et":0,"eta":0,"evap_to_comp":0,"evapor":0,"everi":0,"everyth":0,"exampl":0,"except":0,"exchang":0,"exergi":0,"exp_to_evap":0,"expand":0,"expans":0,"extens":0,"extern":0,"f":0,"f_drag":0,"fact":0,"factor":0,"fals":0,"faster":0,"feed":0,"field":0,"file":0,"find":0,"fiona":0,"fit":0,"fitting_typ":0,"fix":0,"float":0,"flow":0,"flow_coeffici":0,"fluid_flow":0,"flux":0,"follow":0,"forc":0,"fr_le":0,"fraction":0,"freez":0,"friction":0,"frictionfactor":0,"frontal":0,"froud":0,"fulldetail":0,"fulli":0,"g":0,"gamma":0,"gas":0,"get":0,"get_c_freez":0,"get_diabatic_curv":0,"get_outlet":0,"get_p_liq_sat":0,"get_p_vap_sat":0,"get_t_liq_sat":0,"get_t_vap_sat":0,"get_valve_c_v":0,"get_valve_dp":0,"get_valve_flow_r":0,"given":0,"go":0,"gr":0,"graphic":0,"grashof":0,"graviti":0,"h":0,"h_tray":0,"h_v":0,"head":0,"heat_flux_nucleate_boil":0,"heating_stream":0,"heattransf":0,"height":0,"high":0,"higher":0,"horizont":0,"htc":0,"htc_conv_boil":0,"html":0,"http":0,"https":0,"humid":0,"hx":0,"hydraul":0,"hydrodynam":0,"icentrop":0,"implement":0,"import":0,"improv":0,"inclin":0,"includ":0,"incomp":0,"incompress":0,"independ":0,"inertia":0,"info":0,"inform":0,"inject":0,"inlet":0,"input":0,"instanc":0,"instead":0,"integ":0,"intens":0,"interfaci":0,"internal":0,"isenthalp":0,"isoforc":0,"juli":0,"june":0,"just":0,"k":0,"k_l":0,"kg":0,"kilogram":0,"kilojoul":0,"kinemat":0,"kj":0,"known":0,"kw":0,"l":0,"laminar":0,"latent":0,"laval":0,"leav":0,"left":0,"legal":0,"length":0,"let":0,"librari":0,"libtsl":0,"like":0,"line":0,"linear":0,"liquid":0,"lmtd":0,"log":0,"long":0,"lookup":0,"loss":0,"lower":0,"luke":0,"m":0,"majeau":0,"make":0,"mani":0,"manipul":0,"mass":0,"match":0,"mayb":0,"mccabe":0,"mccabe_diabat":0,"mccabe_diabatic_bottomup":0,"me_bal":0,"mean":0,"meaning":0,"meter":0,"methanol":0,"method":0,"metropump":0,"minim":0,"minimum":0,"mix":0,"mixtur":0,"mma":0,"mode":0,"model":0,"modul":0,"moodi":0,"move":0,"mr_darci":0,"mu":0,"mu_l":0,"much":0,"must":0,"n":0,"n_tray":0,"name":0,"natur":0,"necessari":0,"need":0,"net":0,"neutrium":0,"new":0,"non":0,"none":0,"nov":0,"now":0,"nu":0,"nu_natur":0,"nucleat":0,"nucleate_boil":0,"nulleg":0,"num_tray":0,"number":0,"nusselt":0,"object":0,"off_design":0,"omega":0,"onc":0,"one":0,"onli":0,"oper":0,"oper_shift":0,"optim":0,"option":0,"order":0,"org":0,"outlet":0,"outlet_liq_c":0,"outlet_vap":0,"output":0,"output_nam":0,"p":0,"p511":0,"p616":0,"p_col":0,"parallel":0,"param":0,"paramet":0,"particl":0,"pdf":0,"perform":0,"perimet":0,"perpendicular":0,"phase":0,"phenomena":0,"physic":0,"pi":0,"pictur":0,"pipe":0,"plate":0,"plateheatexchang":0,"pleas":0,"plot":0,"plotfil":0,"png":0,"point":0,"pout":0,"pr":0,"pr_l":0,"prandtl":0,"pressur":0,"pressure_drop":0,"pressure_drop_corrugated_pl":0,"pressure_drop_fit":0,"pressuredrop":0,"pretti":0,"print":0,"printmod":0,"processequip":0,"produc":0,"product":0,"prop":0,"pump":0,"py":0,"q":0,"q_cond":0,"q_evap":0,"q_feed_to_satliq":0,"q_flux":0,"q_input":0,"q_sen":0,"q_total":0,"q_trays_tot":0,"qualiti":0,"quantiti":0,"r134a":0,"r404a":0,"ra":0,"radian":0,"rang":0,"rate":0,"ratio":0,"rayleigh":0,"re":0,"re_ext":0,"rebound":0,"rectifi":0,"refer":0,"refprop":0,"refr":0,"refriger":0,"regim":0,"region":0,"relat":0,"relrough":0,"remain":0,"repres":0,"represent":0,"requir":0,"resourcesfrictionlossdata":0,"rest":0,"result":0,"return":0,"reynold":0,"rh":0,"rho":0,"rho_l":0,"rho_solid":0,"rho_v":0,"right":0,"rohsenow":0,"room":0,"rough":0,"round":0,"run":0,"s":0,"satisfi":0,"satur":0,"sauar":0,"scp":0,"second":0,"secondari":0,"section":0,"see":0,"seem":0,"select":0,"sensibl":0,"set":0,"settl":0,"settling_vel":0,"sg":0,"shah":0,"shape":0,"shift":0,"show":0,"sigma":0,"signific":0,"simpl":0,"simplest":0,"singl":0,"size":0,"slower":0,"solid":0,"solv":0,"solver":0,"someth":0,"sometim":0,"sound":0,"sourc":0,"source_var":0,"sourceforg":0,"southeast":0,"sp":0,"space":0,"specif":0,"specifi":0,"speed":0,"sphere":0,"sqrt":0,"squar":0,"src":0,"ss":0,"ssp":0,"state":0,"statepoint":0,"step":0,"stoke":0,"str":0,"stream":0,"string":0,"style":0,"subcool":0,"substitut":0,"sum":0,"suppress":0,"surfac":0,"system":0,"t":0,"t_cold_in":0,"t_cold_out":0,"t_freez":0,"t_hot_in":0,"t_hot_out":0,"t_s":0,"t_sat":0,"t_wall":0,"tdp":0,"technolog":0,"temp":0,"temperatur":0,"tend":0,"tension":0,"theil":0,"thermal":0,"thermodynam":0,"thiel":0,"thing":0,"think":0,"three":0,"time":0,"tlsat":0,"top":0,"total":0,"transit":0,"tray":0,"tray_conc":0,"tray_mass":0,"tray_temp":0,"true":0,"tube":0,"tupl":0,"turbin":0,"turbo":0,"turbul":0,"tvsat":0,"twb":0,"two":0,"twophas":0,"typic":0,"u":0,"unit":0,"use":0,"v":0,"val":0,"valu":0,"valv":0,"vapor":0,"variabl":0,"varibl":0,"vel":0,"veloc":0,"velocti":0,"vertic":0,"visc":0,"viscos":0,"vle":0,"volum":0,"volumetr":0,"vs":0,"wall":0,"warn":0,"water":0,"way":0,"well":0,"wet":0,"width":0,"wiki":0,"wikipedia":0,"will":0,"wise":0,"within":0,"without":0,"work":0,"written":0,"wt":0,"www":0,"x":0,"x_oper":0,"x_sat":0,"x_vle":0,"y_oper":0,"y_sat":0,"y_vle":0},"titles":["Thermofluids"],"titleterms":{"equip":0,"essenti":0,"fluid":0,"function":0,"heat":0,"process":0,"properti":0,"special":0,"thermofluid":0,"transfer":0}})
@@ -0,0 +1,120 @@
1
+ .. Thermofluids documentation master file, created by
2
+ sphinx-quickstart on Thu Oct 8 13:47:07 2026.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ Thermofluids
7
+ ============
8
+ Thermofluids makes modeling thermofluid systems easier. The essential element is the `statepoint`. `statepoint` objects work like physical statepoints: they have two independent variables, many dependent variables, and sometimes extensive variables. You can use them like this::
9
+
10
+ sp = Statepoint(fluid='water', # define a fluid
11
+ t=25.0, # define one independent variable
12
+ p=1.0, # define a second independent variable
13
+ m=0.1) # define extensive varible
14
+
15
+ sp.rho, sp.h, sp.visc
16
+
17
+ >>> (<Quantity(997.047039, 'kilogram / meter ** 3')>, <Quantity(104.918893, 'kilojoule / kilogram')>, <Quantity(0.000890022674, 'kilogram / meter / second')>)
18
+
19
+ Representing statepoints this way makes it easy to model thermodynamic cycles. The module includes some common
20
+ thermodynamic unit processes to manipulate statepoints in physically meaningful ways. For example, we can model a
21
+ refrigeration cycle::
22
+
23
+ from thermofluids import Statepoint, Quantity
24
+ from thermofluids.ProcessEquipment import Compressor
25
+
26
+
27
+ # Select a refrigerant
28
+ REFR = 'R134A'
29
+
30
+ # Find the saturation pressures of the refrigerant
31
+ ssp = Statepoint(fluid=REFR, t=-10, x=1.).p
32
+ scp = Statepoint(fluid=REFR, t=25., x=1.).p
33
+
34
+ # Define a statepoint representing the state between the evaporator and compressor
35
+ evap_to_comp = Statepoint(fluid=REFR, t=-5., p=ssp, m=0.1)
36
+
37
+ # Use the built in compressor object to calculate the statepoint at the compressor outlet
38
+ comp = Compressor(inlet=evap_to_comp,
39
+ eta=0.7,
40
+ Pout=scp)
41
+ comp_to_cond = comp.get_outlet()
42
+ print(f'Compressor work: {comp.work.to("kW")}')
43
+
44
+ # Derive the statepoint representing the condensed state between the condenser and expansion valve
45
+ cond_to_exp = Statepoint(fluid=REFR, t=20., p=scp, m=evap_to_comp.m)
46
+ q_cond = cond_to_exp.m * (comp_to_cond.h - cond_to_exp.h)
47
+ print(f'Condenser heat: {q_cond.to("kW")}')
48
+
49
+ # Derive the statepoint representing the isenthalpically expanded refrigerant
50
+ exp_to_evap = Statepoint(fluid=REFR, p=ssp, h=cond_to_exp.h, m=cond_to_exp.m)
51
+ q_evap = evap_to_comp.m * (evap_to_comp.h - exp_to_evap.h)
52
+ print(f'Evaporator heat: {q_evap.to("kW")}')
53
+ cop = q_evap / comp.work
54
+ print(f'Coefficient of performance: {cop.to("")}')
55
+
56
+
57
+ >>> Compressor work: 3.637 kW
58
+ >>> Condenser heat: 20.58 kW
59
+ >>> Evaporator heat: 16.95 kW
60
+ >>> Coefficient of performance: 4.659
61
+
62
+ .. toctree::
63
+ :maxdepth: 2
64
+ :caption: Contents:
65
+
66
+ Essential Functionality
67
+ _______________________
68
+ .. autoclass:: thermofluids.Base.Statepoint.Statepoint
69
+ :members: __add__, __div__
70
+ .. autoclass:: ...src.Base.Quantity
71
+
72
+ Fluids
73
+ ______
74
+ .. automodule:: thermofluids.Fluids.Drag
75
+ :members: f_drag, settling_vel
76
+ .. automodule:: thermofluids.Fluids.Moody
77
+ :members: frictionfactor
78
+ .. automodule:: thermofluids.Fluids.Re
79
+ :members: Re, Re_ext
80
+ .. automodule:: thermofluids.Fluids.PressureDrop
81
+ :members: pressure_drop, pressure_drop_fitting, pressure_drop_packed_bed, pressure_drop_corrugated_plates, flow_at_dp
82
+
83
+ Heat Transfer
84
+ _____________
85
+ .. automodule:: thermofluids.HeatTransfer.lmtd
86
+ :members: lmtd
87
+ .. automodule:: thermofluids.HeatTransfer.Nusselt
88
+ :members: Nu, Nu_natural
89
+ .. automodule:: thermofluids.HeatTransfer.Ra
90
+ :members: Ra
91
+ .. automodule:: thermofluids.HeatTransfer.Gr
92
+ :members: Gr
93
+ .. automodule:: thermofluids.HeatTransfer.NTU
94
+ :members: NTU
95
+ .. automodule:: thermofluids.HeatTransfer.TwoPhase
96
+ :members: Co, Bo, Fr_le, crit_heat_flux, heat_flux_nucleate_boiling, htc_conv_boil
97
+
98
+ Special Properties
99
+ __________________
100
+ .. automodule:: thermofluids.Properties
101
+ .. automodule:: thermofluids.Properties.BrineProps
102
+ :members: get_c_freeze, get_T_liq_sat, get_T_vap_sat, get_P_liq_sat, get_P_vap_sat, get_h_mix, get_C_vap_sat, get_C_liq_sat
103
+
104
+ Process Equipment
105
+ _________________
106
+ .. automodule:: thermofluids.ProcessEquipment
107
+ .. automodule:: thermofluids.ProcessEquipment.Column
108
+ :members: Column
109
+ .. automodule:: thermofluids.ProcessEquipment.Compressor
110
+ :members: Compressor
111
+ .. automodule:: thermofluids.ProcessEquipment.HeatExchanger
112
+ :members: HX_Energy
113
+ .. automodule:: thermofluids.ProcessEquipment.IsoCompressor
114
+ :members: IsoCompressor
115
+ .. automodule:: thermofluids.ProcessEquipment.Pump
116
+ :members: Pump
117
+ .. automodule:: thermofluids.ProcessEquipment.Turbine
118
+ :members: Turbine
119
+ .. automodule:: thermofluids.ProcessEquipment.Valve
120
+ :members: get_valve_flow_rate, get_valve_dP, get_valve_C_v
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "thermofluids"
3
- version = "2.0.3"
3
+ version = "2.0.4"
4
4
  authors = [
5
5
  { email = "russell@rebound-tech.com"},
6
6
  { name="Luke Erickson, Russell Goldfarbmuren"}
@@ -26,7 +26,8 @@ requires =["hatchling >= 1.26"]
26
26
  build-backend = "hatchling.build"
27
27
 
28
28
  [project.urls]
29
- Homepage = "https://gitlab.com/ericksonla/thermofluids"
29
+ Documentation = "https://thermofluids-24bc0b.gitlab.io/"
30
+ Repository = "https://gitlab.com/ericksonla/thermofluids"
30
31
 
31
32
 
32
33
  [tool.poetry]