pyrestoolbox 3.7.3__tar.gz → 3.7.5__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 (198) hide show
  1. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/.gitignore +9 -0
  2. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/Cargo.lock +1 -1
  3. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/Cargo.toml +1 -1
  4. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/PKG-INFO +31 -29
  5. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/README.rst +30 -28
  6. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyproject.toml +1 -1
  7. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/__init__.py +1 -0
  8. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/_lib_maoduan_viscosity.py +6 -4
  9. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/_lib_vle_engine.py +151 -106
  10. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/brine.py +123 -43
  11. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/pr_vphi.py +21 -13
  12. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/viscosity_route.py +2 -1
  13. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/vphi_route.py +21 -19
  14. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/dca/dca.py +1623 -1623
  15. pyrestoolbox-3.7.5/pyrestoolbox/docs/brine.rst +793 -0
  16. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/changelist.rst +52 -18
  17. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/dca.rst +1003 -1003
  18. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/gas.rst +154 -39
  19. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/index.rst +6 -5
  20. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/layer.rst +10 -10
  21. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/library.rst +8 -8
  22. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/matbal.rst +7 -7
  23. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/nodal.rst +14 -13
  24. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/oil.rst +54 -47
  25. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/plyasunov.rst +6 -5
  26. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/recommend.rst +7 -7
  27. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/sensitivity.rst +157 -157
  28. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/simtools.rst +25 -23
  29. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/gas/gas.py +272 -42
  30. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/bip.rs +410 -297
  31. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/components.rs +123 -123
  32. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/flash.rs +27 -8
  33. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/mod.rs +15 -3
  34. pyrestoolbox-3.7.3/benchmark_batch.py +0 -160
  35. pyrestoolbox-3.7.3/benchmark_rust_vs_python.py +0 -220
  36. pyrestoolbox-3.7.3/benchmark_viscosity.py +0 -213
  37. pyrestoolbox-3.7.3/benchmark_zfactor.py +0 -207
  38. pyrestoolbox-3.7.3/benchmarks/_bench_worker.py +0 -192
  39. pyrestoolbox-3.7.3/benchmarks/bench_acceleration.py +0 -103
  40. pyrestoolbox-3.7.3/pyresToolbox_rust_acceleration_instructions.md +0 -1415
  41. pyrestoolbox-3.7.3/pyrestoolbox/docs/brine.rst +0 -549
  42. pyrestoolbox-3.7.3/pyrestoolbox-mcp-0.1.0.zip +0 -0
  43. pyrestoolbox-3.7.3/pyrestoolbox-mcp-email.txt +0 -39
  44. pyrestoolbox-3.7.3/reviews/CONSOLIDATED.md +0 -101
  45. pyrestoolbox-3.7.3/reviews/README.md +0 -68
  46. pyrestoolbox-3.7.3/reviews/api_ux/_summary.md +0 -85
  47. pyrestoolbox-3.7.3/reviews/api_ux/brine.md +0 -74
  48. pyrestoolbox-3.7.3/reviews/api_ux/dca.md +0 -83
  49. pyrestoolbox-3.7.3/reviews/api_ux/gas.md +0 -114
  50. pyrestoolbox-3.7.3/reviews/api_ux/layer.md +0 -63
  51. pyrestoolbox-3.7.3/reviews/api_ux/matbal.md +0 -86
  52. pyrestoolbox-3.7.3/reviews/api_ux/nodal.md +0 -109
  53. pyrestoolbox-3.7.3/reviews/api_ux/oil.md +0 -71
  54. pyrestoolbox-3.7.3/reviews/api_ux/plyasunov.md +0 -55
  55. pyrestoolbox-3.7.3/reviews/api_ux/recommend.md +0 -56
  56. pyrestoolbox-3.7.3/reviews/api_ux/sensitivity.md +0 -62
  57. pyrestoolbox-3.7.3/reviews/api_ux/simtools.md +0 -79
  58. pyrestoolbox-3.7.3/reviews/correctness/_summary.md +0 -49
  59. pyrestoolbox-3.7.3/reviews/correctness/brine.md +0 -45
  60. pyrestoolbox-3.7.3/reviews/correctness/dca.md +0 -186
  61. pyrestoolbox-3.7.3/reviews/correctness/gas.md +0 -18
  62. pyrestoolbox-3.7.3/reviews/correctness/layer.md +0 -106
  63. pyrestoolbox-3.7.3/reviews/correctness/matbal.md +0 -193
  64. pyrestoolbox-3.7.3/reviews/correctness/nodal.md +0 -33
  65. pyrestoolbox-3.7.3/reviews/correctness/oil.md +0 -32
  66. pyrestoolbox-3.7.3/reviews/correctness/plyasunov.md +0 -140
  67. pyrestoolbox-3.7.3/reviews/correctness/recommend.md +0 -73
  68. pyrestoolbox-3.7.3/reviews/correctness/sensitivity.md +0 -31
  69. pyrestoolbox-3.7.3/reviews/correctness/simtools.md +0 -43
  70. pyrestoolbox-3.7.3/reviews/review-2026-06-10.md +0 -138
  71. pyrestoolbox-3.7.3/reviews/tech_debt/_summary.md +0 -95
  72. pyrestoolbox-3.7.3/reviews/tech_debt/brine.md +0 -68
  73. pyrestoolbox-3.7.3/reviews/tech_debt/dca.md +0 -108
  74. pyrestoolbox-3.7.3/reviews/tech_debt/gas.md +0 -134
  75. pyrestoolbox-3.7.3/reviews/tech_debt/layer.md +0 -95
  76. pyrestoolbox-3.7.3/reviews/tech_debt/matbal.md +0 -78
  77. pyrestoolbox-3.7.3/reviews/tech_debt/nodal.md +0 -95
  78. pyrestoolbox-3.7.3/reviews/tech_debt/oil.md +0 -80
  79. pyrestoolbox-3.7.3/reviews/tech_debt/plyasunov.md +0 -103
  80. pyrestoolbox-3.7.3/reviews/tech_debt/recommend.md +0 -81
  81. pyrestoolbox-3.7.3/reviews/tech_debt/sensitivity.md +0 -72
  82. pyrestoolbox-3.7.3/reviews/tech_debt/simtools.md +0 -112
  83. pyrestoolbox-3.7.3/zstar_residual_plots.py +0 -302
  84. pyrestoolbox-3.7.3/zstar_vs_z_comparison.zip +0 -0
  85. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/.github/workflows/build-wheels.yml +0 -0
  86. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/.github/workflows/tests.yml +0 -0
  87. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/LICENSE +0 -0
  88. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/MANIFEST.in +0 -0
  89. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/ResToolbox/privacy_policy.md +0 -0
  90. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/build_pure_python.py +0 -0
  91. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/DEPLOYMENT.md +0 -0
  92. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/Dockerfile +0 -0
  93. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/README.md +0 -0
  94. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/pyproject.toml +0 -0
  95. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/pyrestoolbox_mcp/__init__.py +0 -0
  96. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/pyrestoolbox_mcp/serialize.py +0 -0
  97. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/pyrestoolbox_mcp/server.py +0 -0
  98. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/mcp/tests/test_server.py +0 -0
  99. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/__init__.py +0 -0
  100. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/_accelerator.py +0 -0
  101. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/_lib_dielectric.py +0 -0
  102. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/_lib_pitzer_params.py +0 -0
  103. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/_lib_salting_library.py +0 -0
  104. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/appelo_volumes.py +0 -0
  105. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/iapws_viscosity.py +0 -0
  106. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/jones_dole_viscosity.py +0 -0
  107. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/brine/kestin_nacl_viscosity.py +0 -0
  108. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/classes/__init__.py +0 -0
  109. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/classes/classes.py +0 -0
  110. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/constants/__init__.py +0 -0
  111. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/constants/constants.py +0 -0
  112. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/dca/__init__.py +0 -0
  113. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/examples.ipynb +0 -0
  114. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/bot.png +0 -0
  115. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/bot_PVTO.png +0 -0
  116. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/bot_img.png +0 -0
  117. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/dry_gas.png +0 -0
  118. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/grid_sat_df.png +0 -0
  119. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/influence.png +0 -0
  120. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/properties_df.png +0 -0
  121. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/sgof.png +0 -0
  122. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/img/swof.png +0 -0
  123. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/nodal_examples.ipynb +0 -0
  124. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/docs/nodal_hydrate_demo.ipynb +0 -0
  125. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/gas/__init__.py +0 -0
  126. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/gas/_hydrate.py +0 -0
  127. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/layer/__init__.py +0 -0
  128. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/layer/layer.py +0 -0
  129. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/library/__init__.py +0 -0
  130. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/library/component_library.xlsx +0 -0
  131. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/library/library.py +0 -0
  132. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/matbal/__init__.py +0 -0
  133. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/matbal/matbal.py +0 -0
  134. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/nodal/__init__.py +0 -0
  135. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/nodal/nodal.py +0 -0
  136. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/__init__.py +0 -0
  137. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_compressibility.py +0 -0
  138. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_constants.py +0 -0
  139. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_correlations.py +0 -0
  140. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_density.py +0 -0
  141. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_harmonize.py +0 -0
  142. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_pvt_class.py +0 -0
  143. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_rate.py +0 -0
  144. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_separator.py +0 -0
  145. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_tables.py +0 -0
  146. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/oil/_utils.py +0 -0
  147. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/plyasunov/__init__.py +0 -0
  148. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/plyasunov/iapws_if97.py +0 -0
  149. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/plyasunov/plyasunov_model.py +0 -0
  150. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/plyasunov/water_properties.py +0 -0
  151. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/recommend/__init__.py +0 -0
  152. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/recommend/recommend.py +0 -0
  153. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/sensitivity/__init__.py +0 -0
  154. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/sensitivity/sensitivity.py +0 -0
  155. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/shared_fns/__init__.py +0 -0
  156. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/shared_fns/shared_fns.py +0 -0
  157. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/simtools/__init__.py +0 -0
  158. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/simtools/_aquifer.py +0 -0
  159. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/simtools/_decks.py +0 -0
  160. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/simtools/_pvt_tables.py +0 -0
  161. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/simtools/_relperm.py +0 -0
  162. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/simtools/_vfp.py +0 -0
  163. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/simtools/simtools.py +0 -0
  164. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/validate/__init__.py +0 -0
  165. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/pyrestoolbox/validate/validate.py +0 -0
  166. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/setup.cfg +0 -0
  167. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/setup.py +0 -0
  168. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/bessel.rs +0 -0
  169. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/critical_properties/mod.rs +0 -0
  170. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/dca/hyperbolic.rs +0 -0
  171. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/dca/mod.rs +0 -0
  172. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/dca/ransac.rs +0 -0
  173. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/gas_viscosity/mod.rs +0 -0
  174. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/gwr.rs +0 -0
  175. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/lib.rs +0 -0
  176. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/matbal/mod.rs +0 -0
  177. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/matbal/objective.rs +0 -0
  178. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/oil/density.rs +0 -0
  179. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/oil/mod.rs +0 -0
  180. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/pseudopressure.rs +0 -0
  181. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/spycher_pruess/mod.rs +0 -0
  182. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/spycher_pruess/solubility.rs +0 -0
  183. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/alpha.rs +0 -0
  184. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/eos.rs +0 -0
  185. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/fugacity.rs +0 -0
  186. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/k_init.rs +0 -0
  187. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vle/rachford_rice.rs +0 -0
  188. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/constants.rs +0 -0
  189. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/friction.rs +0 -0
  190. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/holdup_bb.rs +0 -0
  191. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/holdup_gray.rs +0 -0
  192. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/holdup_wg.rs +0 -0
  193. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/ift.rs +0 -0
  194. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/march.rs +0 -0
  195. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/mod.rs +0 -0
  196. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/pvt_helpers.rs +0 -0
  197. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/vlp/static_column.rs +0 -0
  198. {pyrestoolbox-3.7.3 → pyrestoolbox-3.7.5}/src/zfactor/mod.rs +0 -0
@@ -46,3 +46,12 @@ BUILD_INSTRUCTIONS.txt
46
46
 
47
47
  # local virtualenv (389 MB, never committed)
48
48
  .venv/
49
+
50
+ # Internal development artifacts (kept locally, not published)
51
+ reviews/
52
+ benchmarks/
53
+ benchmark_*.py
54
+ zstar_*
55
+ pyresToolbox_rust_acceleration_instructions.md
56
+ pyrestoolbox-mcp-email.txt
57
+ *.zip
@@ -152,7 +152,7 @@ dependencies = [
152
152
 
153
153
  [[package]]
154
154
  name = "pyrestoolbox-native"
155
- version = "3.7.0"
155
+ version = "3.7.5"
156
156
  dependencies = [
157
157
  "pyo3",
158
158
  "rug",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "pyrestoolbox-native"
3
- version = "3.7.0"
3
+ version = "3.7.5"
4
4
  edition = "2021"
5
5
  license = "GPL-3.0-or-later"
6
6
  description = "Rust acceleration extensions for pyResToolbox"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyrestoolbox
3
- Version: 3.7.3
3
+ Version: 3.7.5
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
@@ -24,13 +24,13 @@ Requires-Python: >=3.8
24
24
  Description-Content-Type: text/x-rst; charset=UTF-8
25
25
  Project-URL: Homepage, https://github.com/mwburgoyne/pyResToolbox
26
26
 
27
- ===================================
27
+ ================
28
28
  ``pyrestoolbox``
29
- ===================================
29
+ ================
30
30
 
31
- --------------------------------------------------
31
+ -----------------------------------------------
32
32
  A collection of Reservoir Engineering Utilities
33
- --------------------------------------------------
33
+ -----------------------------------------------
34
34
 
35
35
  This set of functions focuses on those that the author uses often while crafting programming solutions.
36
36
  These are the scripts that are often copy/pasted from previous work - sometimes slightly modified - resulting in a trail of slightly different versions over the years. Some attempt has been made here to make this implementation flexible enough such that it can be relied on as-is going forward.
@@ -39,7 +39,7 @@ Note: Version 3.0 consolidates simulation-oriented functions under the simtools
39
39
 
40
40
  Includes functions to perform calculations including;
41
41
 
42
- - Decline Curve Analysis with Arps and Duong models — fitting, forecasting, EUR, windowed fitting, secondary phase ratio models, and uptime inference
42
+ - Decline Curve Analysis with Arps and Duong models - fitting, forecasting, EUR, windowed fitting, secondary phase ratio models, and uptime inference
43
43
  - Material Balance for gas (P/Z with Cole plot and Havlena-Odeh aquifer support) and oil (Havlena-Odeh with drive indices, parameter regression, and tabulated PVT)
44
44
  - Inflow Performance Relationships (IPR) for oil and gas wells
45
45
  - Vertical Lift Performance (VLP) with four multiphase flow correlations (Hagedorn-Brown, Woldesemayat-Ghajar, Gray, Beggs & Brill)
@@ -47,6 +47,7 @@ Includes functions to perform calculations including;
47
47
  - Eclipse VFP table generation (VFPPROD and VFPINJ keywords)
48
48
  - PVT Calculations for oil
49
49
  - PVT calculation for gas, including up to 100% inerts for CO2, H2S, N2 and H2
50
+ - Gas caloric properties (enthalpy, Cp, Cv, Joule-Thomson coefficient) from the BNS tuned Peng Robinson EOS
50
51
  - Gas hydrate formation prediction with thermodynamic inhibitor calculations
51
52
  - Return critical parameters for typical components
52
53
  - Creation of Black Oil Table information (PVDO, PVDG, PVTO, PVTW keywords)
@@ -55,39 +56,40 @@ Includes functions to perform calculations including;
55
56
  - Generation of AQUTAB include file influence functions for use in ECLIPSE
56
57
  - Creation of Corey, LET and Jerauld relative permeability tables in Eclipse format, with curve fitting support
57
58
  - Calculation of Methane, CO2 and multicomponent gas saturated brine properties (Soreide-Whitson VLE)
59
+ - Multi-salt gas-free brine viscosity: IAPWS-2008 water, an ion-additive salt ratio over any combination of Na, K, Mg, Ca, Sr, Ba, Cl, Br, sulfate and carbonate, and a measured pressure factor
58
60
  - Method recommendation engine for selecting appropriate correlations based on fluid composition
59
61
  - Sensitivity analysis with parameter sweeps and tornado charts
60
62
 
61
63
  All public PVT, flow rate, and simulation table functions support both oilfield (psia, deg F, ft) and Eclipse METRIC (barsa, deg C, m) unit systems via an optional ``metric=False`` parameter. See individual module documentation for unit mapping details.
62
64
 
63
65
  Rust Acceleration (Optional)
64
- -----------------------------
66
+ ----------------------------
65
67
 
66
68
  pyResToolbox includes optional Rust-compiled extensions that accelerate computationally intensive algorithms. When the compiled extension is present and loadable, these functions run automatically through Rust with no API changes. When the extension is unavailable, all functions fall back silently to the pure Python implementation.
67
69
 
68
70
  **Accelerated functions:**
69
71
 
70
- - **Nodal VLP segment loops** — all 8 VLP method functions (4 methods x gas/oil)
71
- - **Gas Z-factor** — DAK, Hall-Yarborough, and BNS full-pipeline calculations
72
- - **Gas viscosity** — LGE and LBC correlations
73
- - **Gas pseudopressure** — Gauss-Legendre quadrature integration
74
- - **Oil density** — Standing-Witte-McCain-Hill (iterative and above-Pb)
75
- - **Oil FVF** — McCain density-based method
76
- - **DCA hyperbolic fitting** — grid search with RANSAC (``fit_decline``, ``fit_decline_cum``)
77
- - **Material balance** — oil matbal regression objective function
78
- - **CO2-Brine solubility** — Spycher-Pruess iterative RK-EOS solver
79
- - **VLE flash** — Soreide-Whitson multi-component Peng-Robinson flash
72
+ - **Nodal VLP segment loops** - all 8 VLP method functions (4 methods x gas/oil)
73
+ - **Gas Z-factor** - DAK, Hall-Yarborough, and BNS full-pipeline calculations
74
+ - **Gas viscosity** - LGE and LBC correlations
75
+ - **Gas pseudopressure** - Gauss-Legendre quadrature integration
76
+ - **Oil density** - Standing-Witte-McCain-Hill (iterative and above-Pb)
77
+ - **Oil FVF** - McCain density-based method
78
+ - **DCA hyperbolic fitting** - grid search with RANSAC (``fit_decline``, ``fit_decline_cum``)
79
+ - **Material balance** - oil matbal regression objective function
80
+ - **CO2-Brine solubility** - Spycher-Pruess iterative RK-EOS solver
81
+ - **VLE flash** - Soreide-Whitson multi-component Peng-Robinson flash
80
82
 
81
83
  **Behavior:**
82
84
 
83
85
  - If the Rust extension is not found on disk, pure Python is used with no warning
84
86
  - If the extension fails to load (e.g. OS permission restrictions, architecture mismatch), a sentinel file is written to avoid repeated probe attempts on subsequent imports. The sentinel is automatically invalidated when the extension file changes (new build or update)
85
- - All Rust-accelerated paths use ``try/except`` wrappers — any Rust-side error falls back to the Python implementation transparently
87
+ - All Rust-accelerated paths use ``try/except`` wrappers - any Rust-side error falls back to the Python implementation transparently
86
88
 
87
89
  **Environment variables:**
88
90
 
89
- - ``PYRESTOOLBOX_NO_RUST=1`` — Force pure Python mode (skip Rust extension entirely)
90
- - ``PYRESTOOLBOX_RETRY_RUST=1`` — Ignore the sentinel file and retry loading the extension
91
+ - ``PYRESTOOLBOX_NO_RUST=1`` - Force pure Python mode (skip Rust extension entirely)
92
+ - ``PYRESTOOLBOX_RETRY_RUST=1`` - Ignore the sentinel file and retry loading the extension
91
93
 
92
94
  **Programmatic status check:**
93
95
 
@@ -109,7 +111,7 @@ Upgrade previous installations with
109
111
 
110
112
 
111
113
  Module List
112
- =============
114
+ ===========
113
115
 
114
116
  .. list-table::
115
117
  :widths: 30 70
@@ -119,7 +121,7 @@ Module List
119
121
  * - `matbal <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/matbal.rst>`_
120
122
  - Gas P/Z material balance (OGIP), Cole plot diagnostics, Havlena-Odeh with aquifer influx, Oil Havlena-Odeh material balance (OOIP) with drive indices, Parameter regression with bounds, Tabulated PVT support
121
123
  * - `gas <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/gas.rst>`_
122
- - Gas Tc & Pc Calculation, Gas Z-Factor Calculation, Gas Viscosity, Gas Viscosity \* Z, Gas Compressibility, Gas Formation Volume Factor, Gas Density, Gas Water of Condensation, Convert P/Z to P, Convert Gas Gradient to SG, Delta Pseudopressure, Gas Condensate FWS SG, Gas Flow Rate Radial, Gas Flow Rate Linear, Gas Hydrate Prediction
124
+ - Gas Tc & Pc Calculation, Gas Z-Factor Calculation, Gas Viscosity, Gas Viscosity \* Z, Gas Compressibility, Gas Formation Volume Factor, Gas Density, Gas Water of Condensation, Convert P/Z to P, Convert Gas Gradient to SG, Delta Pseudopressure, Gas Condensate FWS SG, Gas Flow Rate Radial, Gas Flow Rate Linear, Gas Hydrate Prediction, Gas Caloric Properties (H, Cp, Cv, Joule-Thomson), Non-Darcy and Partial-Penetration Pseudoskins
123
125
  * - `oil <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/oil.rst>`_
124
126
  - Oil Density from MW, Oil Critical Properties with Twu, Incremental GOR post Separation, Oil Bubble Point Pressure, Oil GOR at Pb, Oil GOR at P, Oil Compressibility, Oil Density, Oil Formation Volume Factor, Oil Viscosity, Harmonize Pb and Rsb, Estimate soln gas SG from oil, Estimate SG of gas post separator, Calculate weighted average surface gas SG, Oil API to SG, Oil SG to API, Oil Flow Rate Radial, Oil Flow Rate Linear
125
127
  * - `nodal <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/nodal.rst>`_
@@ -127,7 +129,7 @@ Module List
127
129
  * - `library <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/library.rst>`_
128
130
  - Return critical parameters for typical single components
129
131
  * - `brine <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/brine.rst>`_
130
- - Calculate suite of brine properties with variable methane, Calculate suite of CO2 saturated brine properties, Multicomponent gas-saturated brine (Soreide-Whitson VLE)
132
+ - Calculate suite of brine properties with variable methane, Calculate suite of CO2 saturated brine properties, Multicomponent gas-saturated brine (Soreide-Whitson VLE), multi-salt gas-free brine viscosity
131
133
  * - `layer <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/layer.rst>`_
132
134
  - Lorenz coefficient from Beta value, Lorenz coefficient from flow fraction, Lorenz coefficient to flow fraction, Lorenz coefficient to permeability array
133
135
  * - `simtools <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/simtools.rst>`_
@@ -155,8 +157,8 @@ A simple example below of estimating oil bubble point pressure.
155
157
  .. code-block:: python
156
158
 
157
159
  >>> from pyrestoolbox import oil
158
- >>> oil.oil_pbub(api=43, degf=185, rsb=2350, sg_g =0.72, pbmethod ='VALMC')
159
- 5179.51086900132
160
+ >>> oil.oil_pbub(api=43, degf=185, rsb=2350, sg_g=0.72, pbmethod='VALMC')
161
+ 5199.2406069808885
160
162
 
161
163
  Fit a decline curve to production data and estimate ultimate recovery.
162
164
 
@@ -168,9 +170,9 @@ Fit a decline curve to production data and estimate ultimate recovery.
168
170
  >>> q = 1000 * np.exp(-0.05 * t)
169
171
  >>> result = dca.fit_decline(t, q, method='exponential')
170
172
  >>> result.qi, result.di
171
- (1000.0000000000007, 0.05000000000000006)
173
+ (999.9999999999953, 0.049999999999999885)
172
174
  >>> dca.eur(qi=result.qi, di=result.di, b=0, q_min=10)
173
- 19799.99999999999
175
+ 19799.999999999953
174
176
 
175
177
  Estimate gas in place from pressure-production history.
176
178
 
@@ -183,9 +185,9 @@ Estimate gas in place from pressure-production history.
183
185
  ... degf=200, sg=0.65
184
186
  ... )
185
187
  >>> r.ogip
186
- 87.602774253829
188
+ 87.60264634235122
187
189
  >>> r.r_squared
188
- 0.9734794008096929
190
+ 0.9734793606102145
189
191
 
190
192
  A set of Gas-Oil relative permeability curves with the LET method
191
193
 
@@ -1,10 +1,10 @@
1
- ===================================
1
+ ================
2
2
  ``pyrestoolbox``
3
- ===================================
3
+ ================
4
4
 
5
- --------------------------------------------------
5
+ -----------------------------------------------
6
6
  A collection of Reservoir Engineering Utilities
7
- --------------------------------------------------
7
+ -----------------------------------------------
8
8
 
9
9
  This set of functions focuses on those that the author uses often while crafting programming solutions.
10
10
  These are the scripts that are often copy/pasted from previous work - sometimes slightly modified - resulting in a trail of slightly different versions over the years. Some attempt has been made here to make this implementation flexible enough such that it can be relied on as-is going forward.
@@ -13,7 +13,7 @@ Note: Version 3.0 consolidates simulation-oriented functions under the simtools
13
13
 
14
14
  Includes functions to perform calculations including;
15
15
 
16
- - Decline Curve Analysis with Arps and Duong models — fitting, forecasting, EUR, windowed fitting, secondary phase ratio models, and uptime inference
16
+ - Decline Curve Analysis with Arps and Duong models - fitting, forecasting, EUR, windowed fitting, secondary phase ratio models, and uptime inference
17
17
  - Material Balance for gas (P/Z with Cole plot and Havlena-Odeh aquifer support) and oil (Havlena-Odeh with drive indices, parameter regression, and tabulated PVT)
18
18
  - Inflow Performance Relationships (IPR) for oil and gas wells
19
19
  - Vertical Lift Performance (VLP) with four multiphase flow correlations (Hagedorn-Brown, Woldesemayat-Ghajar, Gray, Beggs & Brill)
@@ -21,6 +21,7 @@ Includes functions to perform calculations including;
21
21
  - Eclipse VFP table generation (VFPPROD and VFPINJ keywords)
22
22
  - PVT Calculations for oil
23
23
  - PVT calculation for gas, including up to 100% inerts for CO2, H2S, N2 and H2
24
+ - Gas caloric properties (enthalpy, Cp, Cv, Joule-Thomson coefficient) from the BNS tuned Peng Robinson EOS
24
25
  - Gas hydrate formation prediction with thermodynamic inhibitor calculations
25
26
  - Return critical parameters for typical components
26
27
  - Creation of Black Oil Table information (PVDO, PVDG, PVTO, PVTW keywords)
@@ -29,39 +30,40 @@ Includes functions to perform calculations including;
29
30
  - Generation of AQUTAB include file influence functions for use in ECLIPSE
30
31
  - Creation of Corey, LET and Jerauld relative permeability tables in Eclipse format, with curve fitting support
31
32
  - Calculation of Methane, CO2 and multicomponent gas saturated brine properties (Soreide-Whitson VLE)
33
+ - Multi-salt gas-free brine viscosity: IAPWS-2008 water, an ion-additive salt ratio over any combination of Na, K, Mg, Ca, Sr, Ba, Cl, Br, sulfate and carbonate, and a measured pressure factor
32
34
  - Method recommendation engine for selecting appropriate correlations based on fluid composition
33
35
  - Sensitivity analysis with parameter sweeps and tornado charts
34
36
 
35
37
  All public PVT, flow rate, and simulation table functions support both oilfield (psia, deg F, ft) and Eclipse METRIC (barsa, deg C, m) unit systems via an optional ``metric=False`` parameter. See individual module documentation for unit mapping details.
36
38
 
37
39
  Rust Acceleration (Optional)
38
- -----------------------------
40
+ ----------------------------
39
41
 
40
42
  pyResToolbox includes optional Rust-compiled extensions that accelerate computationally intensive algorithms. When the compiled extension is present and loadable, these functions run automatically through Rust with no API changes. When the extension is unavailable, all functions fall back silently to the pure Python implementation.
41
43
 
42
44
  **Accelerated functions:**
43
45
 
44
- - **Nodal VLP segment loops** — all 8 VLP method functions (4 methods x gas/oil)
45
- - **Gas Z-factor** — DAK, Hall-Yarborough, and BNS full-pipeline calculations
46
- - **Gas viscosity** — LGE and LBC correlations
47
- - **Gas pseudopressure** — Gauss-Legendre quadrature integration
48
- - **Oil density** — Standing-Witte-McCain-Hill (iterative and above-Pb)
49
- - **Oil FVF** — McCain density-based method
50
- - **DCA hyperbolic fitting** — grid search with RANSAC (``fit_decline``, ``fit_decline_cum``)
51
- - **Material balance** — oil matbal regression objective function
52
- - **CO2-Brine solubility** — Spycher-Pruess iterative RK-EOS solver
53
- - **VLE flash** — Soreide-Whitson multi-component Peng-Robinson flash
46
+ - **Nodal VLP segment loops** - all 8 VLP method functions (4 methods x gas/oil)
47
+ - **Gas Z-factor** - DAK, Hall-Yarborough, and BNS full-pipeline calculations
48
+ - **Gas viscosity** - LGE and LBC correlations
49
+ - **Gas pseudopressure** - Gauss-Legendre quadrature integration
50
+ - **Oil density** - Standing-Witte-McCain-Hill (iterative and above-Pb)
51
+ - **Oil FVF** - McCain density-based method
52
+ - **DCA hyperbolic fitting** - grid search with RANSAC (``fit_decline``, ``fit_decline_cum``)
53
+ - **Material balance** - oil matbal regression objective function
54
+ - **CO2-Brine solubility** - Spycher-Pruess iterative RK-EOS solver
55
+ - **VLE flash** - Soreide-Whitson multi-component Peng-Robinson flash
54
56
 
55
57
  **Behavior:**
56
58
 
57
59
  - If the Rust extension is not found on disk, pure Python is used with no warning
58
60
  - If the extension fails to load (e.g. OS permission restrictions, architecture mismatch), a sentinel file is written to avoid repeated probe attempts on subsequent imports. The sentinel is automatically invalidated when the extension file changes (new build or update)
59
- - All Rust-accelerated paths use ``try/except`` wrappers — any Rust-side error falls back to the Python implementation transparently
61
+ - All Rust-accelerated paths use ``try/except`` wrappers - any Rust-side error falls back to the Python implementation transparently
60
62
 
61
63
  **Environment variables:**
62
64
 
63
- - ``PYRESTOOLBOX_NO_RUST=1`` — Force pure Python mode (skip Rust extension entirely)
64
- - ``PYRESTOOLBOX_RETRY_RUST=1`` — Ignore the sentinel file and retry loading the extension
65
+ - ``PYRESTOOLBOX_NO_RUST=1`` - Force pure Python mode (skip Rust extension entirely)
66
+ - ``PYRESTOOLBOX_RETRY_RUST=1`` - Ignore the sentinel file and retry loading the extension
65
67
 
66
68
  **Programmatic status check:**
67
69
 
@@ -83,7 +85,7 @@ Upgrade previous installations with
83
85
 
84
86
 
85
87
  Module List
86
- =============
88
+ ===========
87
89
 
88
90
  .. list-table::
89
91
  :widths: 30 70
@@ -93,7 +95,7 @@ Module List
93
95
  * - `matbal <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/matbal.rst>`_
94
96
  - Gas P/Z material balance (OGIP), Cole plot diagnostics, Havlena-Odeh with aquifer influx, Oil Havlena-Odeh material balance (OOIP) with drive indices, Parameter regression with bounds, Tabulated PVT support
95
97
  * - `gas <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/gas.rst>`_
96
- - Gas Tc & Pc Calculation, Gas Z-Factor Calculation, Gas Viscosity, Gas Viscosity \* Z, Gas Compressibility, Gas Formation Volume Factor, Gas Density, Gas Water of Condensation, Convert P/Z to P, Convert Gas Gradient to SG, Delta Pseudopressure, Gas Condensate FWS SG, Gas Flow Rate Radial, Gas Flow Rate Linear, Gas Hydrate Prediction
98
+ - Gas Tc & Pc Calculation, Gas Z-Factor Calculation, Gas Viscosity, Gas Viscosity \* Z, Gas Compressibility, Gas Formation Volume Factor, Gas Density, Gas Water of Condensation, Convert P/Z to P, Convert Gas Gradient to SG, Delta Pseudopressure, Gas Condensate FWS SG, Gas Flow Rate Radial, Gas Flow Rate Linear, Gas Hydrate Prediction, Gas Caloric Properties (H, Cp, Cv, Joule-Thomson), Non-Darcy and Partial-Penetration Pseudoskins
97
99
  * - `oil <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/oil.rst>`_
98
100
  - Oil Density from MW, Oil Critical Properties with Twu, Incremental GOR post Separation, Oil Bubble Point Pressure, Oil GOR at Pb, Oil GOR at P, Oil Compressibility, Oil Density, Oil Formation Volume Factor, Oil Viscosity, Harmonize Pb and Rsb, Estimate soln gas SG from oil, Estimate SG of gas post separator, Calculate weighted average surface gas SG, Oil API to SG, Oil SG to API, Oil Flow Rate Radial, Oil Flow Rate Linear
99
101
  * - `nodal <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/nodal.rst>`_
@@ -101,7 +103,7 @@ Module List
101
103
  * - `library <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/library.rst>`_
102
104
  - Return critical parameters for typical single components
103
105
  * - `brine <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/brine.rst>`_
104
- - Calculate suite of brine properties with variable methane, Calculate suite of CO2 saturated brine properties, Multicomponent gas-saturated brine (Soreide-Whitson VLE)
106
+ - Calculate suite of brine properties with variable methane, Calculate suite of CO2 saturated brine properties, Multicomponent gas-saturated brine (Soreide-Whitson VLE), multi-salt gas-free brine viscosity
105
107
  * - `layer <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/layer.rst>`_
106
108
  - Lorenz coefficient from Beta value, Lorenz coefficient from flow fraction, Lorenz coefficient to flow fraction, Lorenz coefficient to permeability array
107
109
  * - `simtools <https://github.com/mwburgoyne/pyResToolbox/blob/main/pyrestoolbox/docs/simtools.rst>`_
@@ -129,8 +131,8 @@ A simple example below of estimating oil bubble point pressure.
129
131
  .. code-block:: python
130
132
 
131
133
  >>> from pyrestoolbox import oil
132
- >>> oil.oil_pbub(api=43, degf=185, rsb=2350, sg_g =0.72, pbmethod ='VALMC')
133
- 5179.51086900132
134
+ >>> oil.oil_pbub(api=43, degf=185, rsb=2350, sg_g=0.72, pbmethod='VALMC')
135
+ 5199.2406069808885
134
136
 
135
137
  Fit a decline curve to production data and estimate ultimate recovery.
136
138
 
@@ -142,9 +144,9 @@ Fit a decline curve to production data and estimate ultimate recovery.
142
144
  >>> q = 1000 * np.exp(-0.05 * t)
143
145
  >>> result = dca.fit_decline(t, q, method='exponential')
144
146
  >>> result.qi, result.di
145
- (1000.0000000000007, 0.05000000000000006)
147
+ (999.9999999999953, 0.049999999999999885)
146
148
  >>> dca.eur(qi=result.qi, di=result.di, b=0, q_min=10)
147
- 19799.99999999999
149
+ 19799.999999999953
148
150
 
149
151
  Estimate gas in place from pressure-production history.
150
152
 
@@ -157,9 +159,9 @@ Estimate gas in place from pressure-production history.
157
159
  ... degf=200, sg=0.65
158
160
  ... )
159
161
  >>> r.ogip
160
- 87.602774253829
162
+ 87.60264634235122
161
163
  >>> r.r_squared
162
- 0.9734794008096929
164
+ 0.9734793606102145
163
165
 
164
166
  A set of Gas-Oil relative permeability curves with the LET method
165
167
 
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "pyrestoolbox"
7
- version = "3.7.3"
7
+ version = "3.7.5"
8
8
  description = "pyResToolbox - A collection of Reservoir Engineering Utilities"
9
9
  license = {text = "GPL-3.0-or-later"}
10
10
  authors = [{name = "Mark W. Burgoyne", email = "mark.w.burgoyne@gmail.com"}]
@@ -1,4 +1,5 @@
1
1
  from .brine import *
2
+ from .brine import recommended_method # which entry point to use, and why
2
3
  from . import pr_vphi
3
4
  from .pr_vphi import V2_inf as V_phi_pr
4
5
  from . import vphi_route
@@ -1,9 +1,11 @@
1
1
  """Mao-Duan (2009) water and NaCl viscosity, the SUPERSEDED route.
2
2
 
3
3
  Ported from brine_props `salt_viscosity_benchmark.py`. Retained only so
4
- `viscosity_route(route='mao_duan')` reproduces pre-3.7.3 results; it is NaCl
4
+ `viscosity_route(route='mao_duan')` reproduces pre-3.7.3 results (to within
5
+ 0.0094% since the d1/b2 fix below); it is NaCl
5
6
  only and carries no pressure dependence on the salt ratio. Coefficients are
6
- McCain Table 4-14 (Mao & Duan 2009).
7
+ Mao & Duan (2009) Tables 2-3, verified against the primary 2026-08-08; the
8
+ McCain Table 4-14 lineage carried two last-digit defects (d1, b2, <=0.0094%).
7
9
 
8
10
  Against Kestin's measured NaCl viscosity this ties the default Jones-Dole leg
9
11
  (0.443% against 0.415% mean) and loses at reservoir temperature (0.754% against
@@ -14,10 +16,10 @@ import math
14
16
 
15
17
  from ..plyasunov.iapws_if97 import rho_if97
16
18
 
17
- _MD_D = [0, 2885310.0, -11072.577, -9.0834095, 0.030925651, -0.0000274071,
19
+ _MD_D = [0, 2885317.0, -11072.577, -9.0834095, 0.030925651, -0.0000274071,
18
20
  -1928385.1, 5621.6046, 13.82725, -0.047609523, 0.000035545041]
19
21
  _MD_A = [-0.21319213, 0.0013651589, -0.0000012191756]
20
- _MD_B = [0.069161945, -0.00027292263, 0.0000002085244]
22
+ _MD_B = [0.069161945, -0.00027292263, 0.00000020852448]
21
23
  _MD_C = [-0.0025988855, 0.0000077989227]
22
24
 
23
25