rock-physics-open 0.3.0__tar.gz → 0.3.1__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 (310) hide show
  1. rock_physics_open-0.3.1/.github/release-please-manifest.json +1 -0
  2. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/CHANGELOG.md +10 -0
  3. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/PKG-INFO +2 -2
  4. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/README.md +1 -1
  5. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/pyproject.toml +26 -21
  6. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/__init__.py +0 -12
  7. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/import_ml_models.py +0 -16
  8. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/run_regression.py +6 -4
  9. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/backus_ave.py +16 -1
  10. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/dvorkin_nur.py +10 -2
  11. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/gassmann.py +32 -7
  12. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/hashin_shtrikman.py +36 -7
  13. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/hertz_mindlin.py +9 -1
  14. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/moduli_velocity.py +22 -6
  15. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/reflection_eq.py +28 -6
  16. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/rho.py +12 -2
  17. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/voigt_reuss_hill.py +25 -4
  18. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/walton.py +8 -1
  19. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/wood_brie.py +20 -3
  20. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/display_result_statistics.py +16 -9
  21. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/gassmann_dry_mod.py +21 -2
  22. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/gassmann_mod.py +21 -2
  23. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/gassmann_sub_mod.py +23 -12
  24. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/hs_average.py +20 -1
  25. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/pressure.py +9 -1
  26. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/reflectivity.py +26 -10
  27. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/timeshift.py +15 -2
  28. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/vp_vs_rho_set_statistics.py +40 -24
  29. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/vrh_3_min.py +24 -2
  30. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/friable_models.py +6 -7
  31. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/patchy_cement_model.py +15 -0
  32. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/ternary_plots/ternary_plot_utilities.py +3 -3
  33. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/version.py +3 -3
  34. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open.egg-info/PKG-INFO +2 -2
  35. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open.egg-info/SOURCES.txt +0 -2
  36. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/machine_learning_utilities_test/test_pressure_models.py +3 -212
  37. rock_physics_open-0.3.0/.github/release-please-manifest.json +0 -1
  38. rock_physics_open-0.3.0/src/rock_physics_open/equinor_utilities/machine_learning_utilities/friable_pressure_models.py +0 -230
  39. rock_physics_open-0.3.0/src/rock_physics_open/equinor_utilities/machine_learning_utilities/patchy_cement_pressure_models.py +0 -280
  40. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.devcontainer/devcontainer.json +0 -0
  41. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/CODEOWNERS +0 -0
  42. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/dependabot.yaml +0 -0
  43. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/release-please-config.json +0 -0
  44. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/workflows/lint-and-format.yaml +0 -0
  45. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/workflows/on-pull-request.yaml +0 -0
  46. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/workflows/on-push-main.yaml +0 -0
  47. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/workflows/release-please.yaml +0 -0
  48. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.github/workflows/test.yaml +0 -0
  49. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.gitignore +0 -0
  50. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.pre-commit-config.yaml +0 -0
  51. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/.python-version +0 -0
  52. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/CONTRIBUTING.md +0 -0
  53. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/LICENSE +0 -0
  54. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/SECURITY.md +0 -0
  55. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_10_oil_viscosity.png +0 -0
  56. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_12_brine_velocity.png +0 -0
  57. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_13_brine_density.png +0 -0
  58. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_14_brine_bulk_modulus.png +0 -0
  59. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_15_brine_viscosity.png +0 -0
  60. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_2_gas_density.png +0 -0
  61. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_3_gas_bulk_modulus.png +0 -0
  62. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_4_gas_viscosity.png +0 -0
  63. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_5_oil_density.png +0 -0
  64. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/images/bw_1992_fig_7_oil_bulk_modulus.png +0 -0
  65. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/scripts_and_notebooks/test_batzle_wang_figures.ipynb +0 -0
  66. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/setup.cfg +0 -0
  67. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/__init__.py +0 -0
  68. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/__init__.py +0 -0
  69. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/__init__.py +0 -0
  70. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/anisotropy.py +0 -0
  71. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/__init__.py +0 -0
  72. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/class_stats.py +0 -0
  73. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/lin_class.py +0 -0
  74. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/mahal_class.py +0 -0
  75. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/norm_class.py +0 -0
  76. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/poly_class.py +0 -0
  77. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/post_prob.py +0 -0
  78. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/classification_functions/two_step_classification.py +0 -0
  79. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/conversions.py +0 -0
  80. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/gen_utilities/__init__.py +0 -0
  81. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/gen_utilities/dict_to_float.py +0 -0
  82. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/gen_utilities/dim_check_vector.py +0 -0
  83. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/gen_utilities/filter_input.py +0 -0
  84. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/gen_utilities/filter_output.py +0 -0
  85. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/base_pressure_model.py +0 -0
  86. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/dummy_vars.py +0 -0
  87. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/exponential_model.py +0 -0
  88. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/polynomial_model.py +0 -0
  89. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/machine_learning_utilities/sigmoidal_model.py +0 -0
  90. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/optimisation_utilities/__init__.py +0 -0
  91. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/optimisation_utilities/opt_subst_utilities.py +0 -0
  92. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/snapshot_test_utilities/__init__.py +0 -0
  93. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/snapshot_test_utilities/compare_snapshots.py +0 -0
  94. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/snapshot_test_utilities/snapshots.py +0 -0
  95. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/std_functions/__init__.py +0 -0
  96. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/Equinor_logo.gif +0 -0
  97. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/Equinor_logo.ico +0 -0
  98. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/equinor_utilities/various_utilities/__init__.py +0 -0
  99. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/__init__.py +0 -0
  100. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/brine_model/__init__.py +0 -0
  101. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/brine_model/brine_properties.py +0 -0
  102. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/gas_model/__init__.py +0 -0
  103. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/gas_model/gas_properties.py +0 -0
  104. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/oil_model/__init__.py +0 -0
  105. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/oil_model/dead_oil_density.py +0 -0
  106. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/oil_model/dead_oil_velocity.py +0 -0
  107. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/oil_model/live_oil_density.py +0 -0
  108. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/oil_model/live_oil_velocity.py +0 -0
  109. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/oil_model/oil_bubble_point.py +0 -0
  110. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/fluid_models/oil_model/oil_properties.py +0 -0
  111. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/__init__.py +0 -0
  112. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/cemented_shalysand_sandyshale_models.py +0 -0
  113. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/constant_cement_models.py +0 -0
  114. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/constant_cement_optimisation.py +0 -0
  115. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/contact_cement_model.py +0 -0
  116. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/curvefit_sandstone_models.py +0 -0
  117. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/friable_optimisation.py +0 -0
  118. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/friable_shalysand_sandyshale_models.py +0 -0
  119. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/patchy_cement_fluid_substitution_model.py +0 -0
  120. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/patchy_cement_optimisation.py +0 -0
  121. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/unresolved_cemented_sandshale_models.py +0 -0
  122. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/sandstone_models/unresolved_friable_sandshale_models.py +0 -0
  123. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/__init__.py +0 -0
  124. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/dem.py +0 -0
  125. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/dem_dual_por.py +0 -0
  126. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/kus_tok.py +0 -0
  127. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/multi_sca.py +0 -0
  128. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/pq.py +0 -0
  129. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/sca.py +0 -0
  130. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/shale4_mineral.py +0 -0
  131. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/shale_models/shale4_mineral_dem_overlay.py +0 -0
  132. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/span_wagner/__init__.py +0 -0
  133. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/span_wagner/co2_properties.py +0 -0
  134. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/span_wagner/coefficients.py +0 -0
  135. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/span_wagner/equations.py +0 -0
  136. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/span_wagner/tables/__init__.py +0 -0
  137. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/span_wagner/tables/carbon_dioxide_density.npz +0 -0
  138. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/span_wagner/tables/lookup_table.py +0 -0
  139. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/Equinor_logo.ico +0 -0
  140. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/__init__.py +0 -0
  141. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/carbonate_pressure_substitution.py +0 -0
  142. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/curvefit_t_matrix_exp.py +0 -0
  143. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/curvefit_t_matrix_min.py +0 -0
  144. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/parse_t_matrix_inputs.py +0 -0
  145. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/run_t_matrix.py +0 -0
  146. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_C.py +0 -0
  147. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_opt_fluid_sub_exp.py +0 -0
  148. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_opt_fluid_sub_petec.py +0 -0
  149. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_opt_forward_model_exp.py +0 -0
  150. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_opt_forward_model_min.py +0 -0
  151. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_parameter_optimisation_exp.py +0 -0
  152. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_parameter_optimisation_min.py +0 -0
  153. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/__init__.py +0 -0
  154. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/array_functions.py +0 -0
  155. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_c_eff.py +0 -0
  156. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_isolated.py +0 -0
  157. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_kd.py +0 -0
  158. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_kd_eff.py +0 -0
  159. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_kd_uuv.py +0 -0
  160. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_pressure.py +0 -0
  161. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_t.py +0 -0
  162. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_td.py +0 -0
  163. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_theta.py +0 -0
  164. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_x.py +0 -0
  165. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/calc_z.py +0 -0
  166. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/check_and_tile.py +0 -0
  167. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/g_tensor.py +0 -0
  168. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/iso_av.py +0 -0
  169. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/iso_ave_all.py +0 -0
  170. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/pressure_input.py +0 -0
  171. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/t_matrix_vec.py +0 -0
  172. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/t_matrix_vector/velocity_vti_angles.py +0 -0
  173. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/tmatrix_python.dll +0 -0
  174. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/t_matrix_models/tmatrix_python.so +0 -0
  175. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/ternary_plots/__init__.py +0 -0
  176. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/ternary_plots/gen_ternary_plot.py +0 -0
  177. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/ternary_plots/shale_prop_ternary.py +0 -0
  178. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/ternary_plots/ternary_patches.py +0 -0
  179. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open/ternary_plots/unconventionals_ternary.py +0 -0
  180. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open.egg-info/dependency_links.txt +0 -0
  181. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open.egg-info/requires.txt +0 -0
  182. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/src/rock_physics_open.egg-info/top_level.txt +0 -0
  183. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/__init__.py +0 -0
  184. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/classification_functions_tests/__init__.py +0 -0
  185. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/classification_functions_tests/test_class_stats.py +0 -0
  186. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/classification_functions_tests/test_lin_class.py +0 -0
  187. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/classification_functions_tests/test_mahal_class.py +0 -0
  188. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/classification_functions_tests/test_norm_class.py +0 -0
  189. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/classification_functions_tests/test_poly_class.py +0 -0
  190. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/classification_functions_tests/test_two_step_class.py +0 -0
  191. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/conftest.py +0 -0
  192. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/.gitattributes +0 -0
  193. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/exp_opt_param.pkl +0 -0
  194. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/exp_opt_param_test.pkl +0 -0
  195. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/petec_opt_param.pkl +0 -0
  196. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/petec_opt_param_test.pkl +0 -0
  197. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/sandstone_optimisation.csv +0 -0
  198. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/multi_vp_vs_rho_stats.csv +0 -0
  199. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_brine_properties_test_brine_density.npz +0 -0
  200. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_brine_properties_test_brine_properties.npz +0 -0
  201. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_brine_properties_test_brine_velocity.npz +0 -0
  202. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_brine_properties_test_water_density.npz +0 -0
  203. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_brine_properties_test_water_properties.npz +0 -0
  204. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_brine_properties_test_water_velocity.npz +0 -0
  205. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_co2_properties_test_co2_properties.npz +0 -0
  206. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_constant_cement_model_test_constant_cement_model.npz +0 -0
  207. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_constant_cement_model_test_constant_cement_model_dry.npz +0 -0
  208. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_constant_cement_model_test_constant_cement_model_high_phi.npz +0 -0
  209. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_constant_cement_model_test_constant_cement_model_high_phi_extrapolate.npz +0 -0
  210. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_contact_cement_model_test_contact_cement_model.npz +0 -0
  211. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_dem_models_test_dem_4_min_model.npz +0 -0
  212. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_dem_models_test_dem_4_min_overlay_model.npz +0 -0
  213. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_dem_models_test_dem_dual_por_model.npz +0 -0
  214. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_dem_models_test_dem_model.npz +0 -0
  215. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_friable_models_test_friable_model.npz +0 -0
  216. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_friable_models_test_friable_model_dry.npz +0 -0
  217. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_gas_properties_test_gas_properties.npz +0 -0
  218. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_gassmann_test_gassmann.npz +0 -0
  219. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_gassmann_test_gassmann_dry.npz +0 -0
  220. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_gassmann_test_gassmann_sub.npz +0 -0
  221. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_kus_tok_model_test_kus_tok_model.npz +0 -0
  222. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_multi_vp_vs_rho_stats.csv +0 -0
  223. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_oil_properties_test_live_oil_density.npz +0 -0
  224. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_oil_properties_test_live_oil_velocity.npz +0 -0
  225. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_oil_properties_test_oil_prop.npz +0 -0
  226. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_fluid_sub_model_cem_frac.npz +0 -0
  227. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_fluid_sub_model_cem_frac_snap.npz +0 -0
  228. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_fluid_sub_model_no_change.npz +0 -0
  229. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_fluid_sub_model_weight.npz +0 -0
  230. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_fluid_sub_model_weight_snap.npz +0 -0
  231. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_model_cem_frac.npz +0 -0
  232. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_model_exceed_phi_extrapolate.npz +0 -0
  233. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_patchy_cement_fluid_sub_model_test_patchy_cement_model_weight.npz +0 -0
  234. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_run_t_matrix_test_run_t_matrix.npz +0 -0
  235. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_run_t_matrix_test_run_t_matrix_porosity_vectorised.npz +0 -0
  236. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_run_t_matrix_with_opt_params_test_run_t_matrix_opt_forward_model_exp.npz +0 -0
  237. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_run_t_matrix_with_opt_params_test_run_t_matrix_opt_forward_model_petec.npz +0 -0
  238. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_run_t_matrix_with_opt_params_test_run_t_matrix_with_opt_params_exp.npz +0 -0
  239. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_run_t_matrix_with_opt_params_test_run_t_matrix_with_opt_params_petec.npz +0 -0
  240. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_sandstone_optimisation_test_constant_cement_optimisation.npz +0 -0
  241. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_sandstone_optimisation_test_friable_optimisation.npz +0 -0
  242. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_sandstone_optimisation_test_patchy_cement_optimisation.npz +0 -0
  243. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_sandy_shale_models_test_cemented_sandy_shale_model.npz +0 -0
  244. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_sandy_shale_models_test_friable_sandy_shale_model.npz +0 -0
  245. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_sca_models_test_multi_sca_model.npz +0 -0
  246. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_sca_models_test_sca_model.npz +0 -0
  247. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_t_matrix_c_test_t_matrix_c.npz +0 -0
  248. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_t_matrix_c_test_t_matrix_vectorised.npz +0 -0
  249. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_t_matrix_optimisation_test_optimisation_part.npz +0 -0
  250. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_t_matrix_optimisation_test_t_matrix_opt_params_exp.npz +0 -0
  251. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_t_matrix_optimisation_test_t_matrix_opt_params_petec.npz +0 -0
  252. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_ternary_plots_test_ternary.npz +0 -0
  253. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_unresolved_models_test_unresolved_cemented_sand_shale_model.npz +0 -0
  254. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_unresolved_models_test_unresolved_friable_sand_shale_model.npz +0 -0
  255. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/test_vp_vs_rho_stats.csv +0 -0
  256. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/snapshots/vp_vs_rho_stats.csv +0 -0
  257. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/test_well.csv +0 -0
  258. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/data/tmatrix_test_data.csv +0 -0
  259. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/fluid_model_tests/__init__.py +0 -0
  260. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/fluid_model_tests/test_brine_properties.py +0 -0
  261. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/fluid_model_tests/test_gas_properties.py +0 -0
  262. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/fluid_model_tests/test_oil_properties.py +0 -0
  263. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/gen_utilities_tests/__init__.py +0 -0
  264. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/gen_utilities_tests/test_dict_to_float.py +0 -0
  265. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/gen_utilities_tests/test_dim_check_vector.py +0 -0
  266. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/gen_utilities_tests/test_filter_input.py +0 -0
  267. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/gen_utilities_tests/test_filter_output.py +0 -0
  268. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/machine_learning_utilities_test/__init__.py +0 -0
  269. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/__init__.py +0 -0
  270. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/test_constant_cement_model.py +0 -0
  271. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/test_contact_cement_model.py +0 -0
  272. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/test_friable_models.py +0 -0
  273. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/test_patchy_cement_fluid_sub_model.py +0 -0
  274. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/test_sandstone_optimisation.py +0 -0
  275. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/test_sandy_shale_models.py +0 -0
  276. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/sandstone_model_tests/test_unresolved_models.py +0 -0
  277. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/shale_model_tests/__init__.py +0 -0
  278. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/shale_model_tests/test_dem_models.py +0 -0
  279. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/shale_model_tests/test_kus_tok_model.py +0 -0
  280. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/shale_model_tests/test_sca_models.py +0 -0
  281. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/shale_model_tests/test_ternary_plots.py +0 -0
  282. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/span_wagner/__init__.py +0 -0
  283. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/span_wagner/test_co2_properties.py +0 -0
  284. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/__init__.py +0 -0
  285. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_backus_average.py +0 -0
  286. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_dvorkin_nur.py +0 -0
  287. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_gassmann.py +0 -0
  288. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_hashin_shtrikman.py +0 -0
  289. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_hertz_mindlin.py +0 -0
  290. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_moduli_velocity.py +0 -0
  291. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_reflectivity.py +0 -0
  292. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_rho.py +0 -0
  293. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_voigt_reuss_hill.py +0 -0
  294. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_walton.py +0 -0
  295. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/std_functions_tests/test_wood_brie.py +0 -0
  296. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/t_matrix_model_tests/__init__.py +0 -0
  297. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/t_matrix_model_tests/test_opt_param_to_ascii.py +0 -0
  298. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/t_matrix_model_tests/test_run_t_matrix.py +0 -0
  299. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/t_matrix_model_tests/test_run_t_matrix_with_opt_params.py +0 -0
  300. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/t_matrix_model_tests/test_t_matrix_c.py +0 -0
  301. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/t_matrix_model_tests/test_t_matrix_optimisation.py +0 -0
  302. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/__init__.py +0 -0
  303. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/test_gassmann.py +0 -0
  304. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/test_hs_average.py +0 -0
  305. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/test_pressure.py +0 -0
  306. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/test_reflectivity.py +0 -0
  307. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/test_time_shift.py +0 -0
  308. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/test_vp_vs_rho_stats.py +0 -0
  309. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/tests/various_utilities_tests/test_vrh_3_min.py +0 -0
  310. {rock_physics_open-0.3.0 → rock_physics_open-0.3.1}/uv.lock +0 -0
@@ -0,0 +1 @@
1
+ {".":"0.3.1"}
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.1](https://github.com/equinor/rock-physics-open/compare/v0.3.0...v0.3.1) (2025-10-28)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * Add static typing to std_functions and various_utilities ([1ed5353](https://github.com/equinor/rock-physics-open/commit/1ed5353d0886e0d7625ae1e998535bd5c78b9e31))
9
+ * catch cases with non-consistent input lengths ([7843c8e](https://github.com/equinor/rock-physics-open/commit/7843c8ed3e9d4144bbe7079d314af20c087d48be))
10
+ * make proper reference to cell in numpy array with ndim > 0 ([0abca8f](https://github.com/equinor/rock-physics-open/commit/0abca8fcb82a5d35a990857d4ecbd2f050077b08))
11
+ * remove redundant prototypes ([7843c8e](https://github.com/equinor/rock-physics-open/commit/7843c8ed3e9d4144bbe7079d314af20c087d48be))
12
+
3
13
  ## [0.3.0](https://github.com/equinor/rock-physics-open/compare/v0.2.3...v0.3.0) (2025-10-21)
4
14
 
5
15
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rock_physics_open
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Equinor Rock Physics Module
5
5
  Author-email: Harald Flesche <hfle@equinor.com>, Eivind Jahren <ejah@equinor.com>, Jimmy Zurcher <jiz@equinor.com>
6
6
  Maintainer-email: Harald Flesche <hfle@equinor.com>, Eirik Ola Aksnes <eoaksnes@equinor.com>, Sivert Utne <sutn@equinor.com>, Einar Wigum Arbo <earb@equinor.com>
@@ -76,7 +76,7 @@ Alternatively, you can update the dependencies in your `pyproject.toml` file:
76
76
  <!-- x-release-please-start-version -->
77
77
  ```toml
78
78
  dependencies = [
79
- "rock-physics-open == 0.3.0",
79
+ "rock-physics-open == 0.3.1",
80
80
  ]
81
81
  ```
82
82
  <!-- x-release-please-end-version -->
@@ -44,7 +44,7 @@ Alternatively, you can update the dependencies in your `pyproject.toml` file:
44
44
  <!-- x-release-please-start-version -->
45
45
  ```toml
46
46
  dependencies = [
47
- "rock-physics-open == 0.3.0",
47
+ "rock-physics-open == 0.3.1",
48
48
  ]
49
49
  ```
50
50
  <!-- x-release-please-end-version -->
@@ -1,9 +1,5 @@
1
1
  [build-system]
2
- requires = [
3
- "setuptools >= 69.5.1",
4
- "setuptools_scm[toml] >= 7.1.0",
5
- "wheel"
6
- ]
2
+ requires = ["setuptools >= 69.5.1", "setuptools_scm[toml] >= 7.1.0", "wheel"]
7
3
  build-backend = "setuptools.build_meta"
8
4
 
9
5
  [tool.setuptools_scm]
@@ -36,7 +32,14 @@ maintainers = [
36
32
  ]
37
33
  readme = "README.md"
38
34
  requires-python = ">=3.11"
39
- keywords = ["energy", "subsurface", "seismic", "rock physics", "scientific", "engineering"]
35
+ keywords = [
36
+ "energy",
37
+ "subsurface",
38
+ "seismic",
39
+ "rock physics",
40
+ "scientific",
41
+ "engineering",
42
+ ]
40
43
  classifiers = [
41
44
  "Intended Audience :: Science/Research",
42
45
  "Topic :: Scientific/Engineering",
@@ -56,7 +59,7 @@ dependencies = [
56
59
  "matplotlib >= 3.7.1",
57
60
  "scipy >= 1.10.1, < 2",
58
61
  "scikit-learn >= 1.2.2",
59
- "sympy >= 1.13.3", # TODO: remove? (only used 1 place in span_wagner co2 equations)
62
+ "sympy >= 1.13.3", # TODO: remove? (only used 1 place in span_wagner co2 equations)
60
63
  "tmatrix >= 1.0.0",
61
64
  ]
62
65
 
@@ -80,23 +83,23 @@ dev = [
80
83
 
81
84
  [tool.ruff]
82
85
  lint.select = [
83
- "C", # Complexity
84
- "E", # Errors
85
- "F", # Flake (unused variables etc.)
86
- "I", # Imports
87
- "NPY", # Numpy
88
- "PIE", # Python idioms and style
86
+ "C", # Complexity
87
+ "E", # Errors
88
+ "F", # Flake (unused variables etc.)
89
+ "I", # Imports
90
+ "NPY", # Numpy
91
+ "PIE", # Python idioms and style
89
92
  "PLR1711", # Redundant Return
90
- "PT", # PyTest
91
- "Q", # Quotes
92
- "RET", # Return statements
93
- "RSE", # Raising exceptions
94
- "SIM", # Code simplification
95
- "W", # Warnings
93
+ "PT", # PyTest
94
+ "Q", # Quotes
95
+ "RET", # Return statements
96
+ "RSE", # Raising exceptions
97
+ "SIM", # Code simplification
98
+ "W", # Warnings
96
99
  ]
97
100
  lint.ignore = [
98
- "C901", # Complex Code (too many branches/statements)
99
- "E501", # Line Too Long
101
+ "C901", # Complex Code (too many branches/statements)
102
+ "E501", # Line Too Long
100
103
  ]
101
104
  line-length = 88
102
105
 
@@ -117,6 +120,8 @@ pythonVersion = "3.11"
117
120
  include = [
118
121
  # Currently only enabling on general utilities and the corresponding tests
119
122
  "src/rock_physics_open/equinor_utilities/gen_utilities/*.py",
123
+ "src/rock_physics_open/equinor_utilities/various_utilities/*.py",
124
+ "src/rock_physics_open/equinor_utilities/std_functions/*.py",
120
125
  "tests/gen_utilities_tests/*.py",
121
126
  ]
122
127
  exclude = ["src/**/version.py"]
@@ -1,14 +1,6 @@
1
1
  from .dummy_vars import generate_dummy_vars
2
2
  from .exponential_model import ExponentialPressureModel
3
- from .friable_pressure_models import (
4
- FriableDryBulkModulusPressureModel,
5
- FriableDryShearModulusPressureModel,
6
- )
7
3
  from .import_ml_models import import_model
8
- from .patchy_cement_pressure_models import (
9
- PatchyCementDryBulkModulusPressureModel,
10
- PatchyCementDryShearModulusPressureModel,
11
- )
12
4
  from .polynomial_model import PolynomialPressureModel
13
5
  from .run_regression import run_regression
14
6
  from .sigmoidal_model import SigmoidalPressureModel
@@ -20,8 +12,4 @@ __all__ = [
20
12
  "ExponentialPressureModel",
21
13
  "PolynomialPressureModel",
22
14
  "SigmoidalPressureModel",
23
- "FriableDryBulkModulusPressureModel",
24
- "FriableDryShearModulusPressureModel",
25
- "PatchyCementDryShearModulusPressureModel",
26
- "PatchyCementDryBulkModulusPressureModel",
27
15
  ]
@@ -1,12 +1,4 @@
1
1
  from .exponential_model import ExponentialPressureModel
2
- from .friable_pressure_models import (
3
- FriableDryBulkModulusPressureModel,
4
- FriableDryShearModulusPressureModel,
5
- )
6
- from .patchy_cement_pressure_models import (
7
- PatchyCementDryBulkModulusPressureModel,
8
- PatchyCementDryShearModulusPressureModel,
9
- )
10
2
  from .polynomial_model import PolynomialPressureModel
11
3
  from .sigmoidal_model import SigmoidalPressureModel
12
4
 
@@ -47,14 +39,6 @@ def import_model(model_file_name):
47
39
  models = ExponentialPressureModel.load(mod_dict["nn_mod"])
48
40
  elif mod_dict["model_type"] == "Polynomial":
49
41
  models = PolynomialPressureModel.load(mod_dict["nn_mod"])
50
- elif mod_dict["model_type"] == "FriableDryBulk":
51
- models = FriableDryBulkModulusPressureModel.load(mod_dict["nn_mod"])
52
- elif mod_dict["model_type"] == "FriableDryShear":
53
- models = FriableDryShearModulusPressureModel.load(mod_dict["nn_mod"])
54
- elif mod_dict["model_type"] == "PatchyCementDryBulk":
55
- models = PatchyCementDryBulkModulusPressureModel.load(mod_dict["nn_mod"])
56
- elif mod_dict["model_type"] == "PatchyCementDryShear":
57
- models = PatchyCementDryShearModulusPressureModel.load(mod_dict["nn_mod"])
58
42
  else:
59
43
  raise ValueError("unknown model type {}".format(mod_dict["model_type"]))
60
44
 
@@ -108,7 +108,9 @@ def _perform_regression(
108
108
  return res_frame
109
109
 
110
110
 
111
- def run_regression(inp_df, vp_model_file_name, vs_model_file_name, model_dir=None):
111
+ def run_regression(
112
+ inp_df, first_model_file_name, second_model_file_name, model_dir=None
113
+ ):
112
114
  """
113
115
  Estimate Vp and Vs by neural network regression with multiple inputs.
114
116
 
@@ -116,9 +118,9 @@ def run_regression(inp_df, vp_model_file_name, vs_model_file_name, model_dir=Non
116
118
  ----------
117
119
  inp_df : pd.DataFrame
118
120
  Input logs required for the regression.
119
- vp_model_file_name : str
121
+ first_model_file_name : str
120
122
  Full file name for vp model.
121
- vs_model_file_name : str
123
+ second_model_file_name : str
122
124
  Full file name for vs model.
123
125
  model_dir : str
124
126
  Directory.
@@ -139,7 +141,7 @@ def run_regression(inp_df, vp_model_file_name, vs_model_file_name, model_dir=Non
139
141
  category_var,
140
142
  column_names,
141
143
  column_units,
142
- ) = _read_models(vp_model_file_name, vs_model_file_name, model_dir=model_dir)
144
+ ) = _read_models(first_model_file_name, second_model_file_name, model_dir=model_dir)
143
145
  return _perform_regression(
144
146
  inp_df,
145
147
  column_names,
@@ -1,7 +1,22 @@
1
1
  import numpy as np
2
+ import numpy.typing as npt
2
3
 
3
4
 
4
- def backus_average(vp1, vs1, rho1, vp2, vs2, rho2, f1):
5
+ def backus_average(
6
+ vp1: npt.NDArray[np.float64],
7
+ vs1: npt.NDArray[np.float64],
8
+ rho1: npt.NDArray[np.float64],
9
+ vp2: npt.NDArray[np.float64],
10
+ vs2: npt.NDArray[np.float64],
11
+ rho2: npt.NDArray[np.float64],
12
+ f1: npt.NDArray[np.float64],
13
+ ) -> tuple[
14
+ npt.NDArray[np.float64],
15
+ npt.NDArray[np.float64],
16
+ npt.NDArray[np.float64],
17
+ npt.NDArray[np.float64],
18
+ npt.NDArray[np.float64],
19
+ ]:
5
20
  """
6
21
  Backus average for a combination of two phases. The individual phases are isotropic
7
22
  but the resulting effective medium is not.
@@ -1,9 +1,17 @@
1
1
  import numpy as np
2
+ import numpy.typing as npt
2
3
 
3
4
 
4
5
  def dvorkin_contact_cement(
5
- frac_cem, por0_sst, mu0_sst, k0_sst, mu0_cem, k0_cem, vs_red, c
6
- ):
6
+ frac_cem: npt.NDArray[np.float64],
7
+ por0_sst: npt.NDArray[np.float64],
8
+ mu0_sst: npt.NDArray[np.float64],
9
+ k0_sst: npt.NDArray[np.float64],
10
+ mu0_cem: npt.NDArray[np.float64],
11
+ k0_cem: npt.NDArray[np.float64],
12
+ vs_red: npt.NDArray[np.float64],
13
+ c: float,
14
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
7
15
  """
8
16
  Dvorkin-Nur contact cement model for estimation of elastic moduli.
9
17
 
@@ -1,11 +1,18 @@
1
1
  import warnings
2
+ from typing import cast
2
3
 
3
4
  import numpy as np
5
+ import numpy.typing as npt
4
6
 
5
7
  from rock_physics_open.equinor_utilities.gen_utilities import dim_check_vector
6
8
 
7
9
 
8
- def gassmann(k_dry, por, k_fl, k_min):
10
+ def gassmann(
11
+ k_dry: npt.NDArray[np.float64],
12
+ por: npt.NDArray[np.float64],
13
+ k_fl: npt.NDArray[np.float64],
14
+ k_min: npt.NDArray[np.float64],
15
+ ) -> npt.NDArray[np.float64]:
9
16
  """
10
17
  Fluid substitution according to the Gassmann equation.
11
18
 
@@ -25,7 +32,10 @@ def gassmann(k_dry, por, k_fl, k_min):
25
32
  np.ndarray
26
33
  k_sat: bulk modulus for saturated rock [Pa]
27
34
  """
28
- k_dry, por, k_fl, k_min = dim_check_vector((k_dry, por, k_fl, k_min))
35
+ k_dry, por, k_fl, k_min = cast(
36
+ list[npt.NDArray[np.float64]],
37
+ dim_check_vector((k_dry, por, k_fl, k_min)),
38
+ )
29
39
 
30
40
  idx = np.logical_or(k_dry == k_min, por == 0)
31
41
  k_sat = np.ones(k_dry.shape) * np.nan
@@ -42,7 +52,13 @@ def gassmann(k_dry, por, k_fl, k_min):
42
52
  return k_sat
43
53
 
44
54
 
45
- def gassmann2(k_sat_1, k_fl_1, k_fl_2, por, k_min):
55
+ def gassmann2(
56
+ k_sat_1: npt.NDArray[np.float64],
57
+ k_fl_1: npt.NDArray[np.float64],
58
+ k_fl_2: npt.NDArray[np.float64],
59
+ por: npt.NDArray[np.float64],
60
+ k_min: npt.NDArray[np.float64],
61
+ ) -> npt.NDArray[np.float64]:
46
62
  """
47
63
  Fluid substitution by Gassmann method with substitution of one fluid to another
48
64
 
@@ -64,8 +80,9 @@ def gassmann2(k_sat_1, k_fl_1, k_fl_2, por, k_min):
64
80
  np.ndarray
65
81
  k_sat_2: bulk modulus of rock saturated with replaced fluid [Pa]
66
82
  """
67
- k_sat_1, k_fl_1, k_fl_2, por, k_min = dim_check_vector(
68
- (k_sat_1, k_fl_1, k_fl_2, por, k_min)
83
+ k_sat_1, k_fl_1, k_fl_2, por, k_min = cast(
84
+ list[npt.NDArray[np.float64]],
85
+ dim_check_vector((k_sat_1, k_fl_1, k_fl_2, por, k_min)),
69
86
  )
70
87
 
71
88
  idx = np.any(
@@ -96,7 +113,12 @@ def gassmann2(k_sat_1, k_fl_1, k_fl_2, por, k_min):
96
113
  return k_sat_2
97
114
 
98
115
 
99
- def gassmann_dry(k_sat, por, k_fl, k_min):
116
+ def gassmann_dry(
117
+ k_sat: npt.NDArray[np.float64],
118
+ por: npt.NDArray[np.float64],
119
+ k_fl: npt.NDArray[np.float64],
120
+ k_min: npt.NDArray[np.float64],
121
+ ) -> npt.NDArray[np.float64]:
100
122
  """
101
123
  Dry rock properties of saturated rock by Gassmann equation
102
124
 
@@ -116,7 +138,10 @@ def gassmann_dry(k_sat, por, k_fl, k_min):
116
138
  np.ndarray
117
139
  k_dry: dry rock bulk modulus [Pa]
118
140
  """
119
- k_sat, por, k_fl, k_min = dim_check_vector((k_sat, por, k_fl, k_min))
141
+ k_sat, por, k_fl, k_min = cast(
142
+ list[npt.NDArray[np.float64]],
143
+ dim_check_vector((k_sat, por, k_fl, k_min)),
144
+ )
120
145
 
121
146
  idx = np.any(np.array([k_sat == k_min, por == 0, k_fl == k_min]), axis=0)
122
147
  k_dry = np.ones(k_sat.shape)
@@ -1,9 +1,18 @@
1
+ from typing import Literal, cast
2
+
1
3
  import numpy as np
4
+ import numpy.typing as npt
2
5
 
3
6
  from rock_physics_open.equinor_utilities.gen_utilities import dim_check_vector
4
7
 
5
8
 
6
- def hashin_shtrikman(k1, mu1, k2, mu2, f):
9
+ def hashin_shtrikman(
10
+ k1: npt.NDArray[np.float64],
11
+ mu1: npt.NDArray[np.float64],
12
+ k2: npt.NDArray[np.float64],
13
+ mu2: npt.NDArray[np.float64],
14
+ f: npt.NDArray[np.float64],
15
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
7
16
  """
8
17
  Hashin-Sktrikman upper or lower according to ordering of phases.
9
18
 
@@ -34,7 +43,13 @@ def hashin_shtrikman(k1, mu1, k2, mu2, f):
34
43
  return k, mu
35
44
 
36
45
 
37
- def hashin_shtrikman_average(k1, mu1, k2, mu2, f):
46
+ def hashin_shtrikman_average(
47
+ k1: npt.NDArray[np.float64],
48
+ mu1: npt.NDArray[np.float64],
49
+ k2: npt.NDArray[np.float64],
50
+ mu2: npt.NDArray[np.float64],
51
+ f: npt.NDArray[np.float64],
52
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
38
53
  """
39
54
  Average of Hashin-Shtrikman upper and lower bound.
40
55
 
@@ -66,7 +81,14 @@ def hashin_shtrikman_average(k1, mu1, k2, mu2, f):
66
81
  return k_av, mu_av
67
82
 
68
83
 
69
- def hashin_shtrikman_walpole(k1, mu1, k2, mu2, f1, bound="lower"):
84
+ def hashin_shtrikman_walpole(
85
+ k1: npt.NDArray[np.float64],
86
+ mu1: npt.NDArray[np.float64],
87
+ k2: npt.NDArray[np.float64],
88
+ mu2: npt.NDArray[np.float64],
89
+ f1: npt.NDArray[np.float64],
90
+ bound: Literal["upper", "lower"] = "lower",
91
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
70
92
  """
71
93
  Hashin-Shtrikman upper bound is obtained when the stiffest material is
72
94
  termed 1 and vice versa for lower bound. Tricky in cases like Quartz -
@@ -94,7 +116,10 @@ def hashin_shtrikman_walpole(k1, mu1, k2, mu2, f1, bound="lower"):
94
116
  k, mu : np.ndarray.
95
117
  k: effective bulk modulus [Pa], mu: effective shear modulus [Pa].
96
118
  """
97
- k1, mu1, k2, mu2, f1 = dim_check_vector((k1, mu1, k2, mu2, f1))
119
+ k1, mu1, k2, mu2, f1 = cast(
120
+ list[npt.NDArray[np.float64]],
121
+ dim_check_vector((k1, mu1, k2, mu2, f1)),
122
+ )
98
123
  if bound.lower() not in ["lower", "upper"]:
99
124
  raise ValueError(f'{__file__}: bound must be one of "lower" or "upper"')
100
125
 
@@ -138,7 +163,10 @@ def hashin_shtrikman_walpole(k1, mu1, k2, mu2, f1, bound="lower"):
138
163
  return k, mu
139
164
 
140
165
 
141
- def multi_hashin_shtrikman(*coeffs, mode="average"):
166
+ def multi_hashin_shtrikman(
167
+ *coeffs: npt.NDArray[np.float64],
168
+ mode: Literal["average", "upper", "lower"] = "average",
169
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
142
170
  """
143
171
  Hashin-Shtrikman effective medium calculation for multi-mineral case.
144
172
 
@@ -163,8 +191,9 @@ def multi_hashin_shtrikman(*coeffs, mode="average"):
163
191
  k_arr = np.array(coeffs[::3])
164
192
  mu_arr = np.array(coeffs[1::3])
165
193
  f = np.array(coeffs[2::3])
166
-
167
- if not np.all(np.around(np.sum(f, axis=0), decimals=6) == 1.0):
194
+ if not np.all(
195
+ cast(npt.NDArray[np.float64], np.around(np.sum(f, axis=0), decimals=6)) == 1.0
196
+ ):
168
197
  raise ValueError("multi_hashin_shtrikman: all fractions do not add up to 1.0")
169
198
 
170
199
  if mode.lower() not in ["average", "upper", "lower"]:
@@ -1,7 +1,15 @@
1
1
  import numpy as np
2
+ import numpy.typing as npt
2
3
 
3
4
 
4
- def hertz_mindlin(k, mu, phi_c, p, shear_red, coord=None):
5
+ def hertz_mindlin(
6
+ k: npt.NDArray[np.float64],
7
+ mu: npt.NDArray[np.float64],
8
+ phi_c: npt.NDArray[np.float64],
9
+ p: npt.NDArray[np.float64],
10
+ shear_red: npt.NDArray[np.float64] | float,
11
+ coord: float | None = None,
12
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
5
13
  """
6
14
  Hertz-Mindlin Pressure-induced moduli increase at critical porosity.
7
15
 
@@ -1,4 +1,16 @@
1
- def moduli(vp, vs, rhob):
1
+ from typing import TypeVar, cast
2
+
3
+ import numpy as np
4
+ import numpy.typing as npt
5
+
6
+ _T = TypeVar("_T", npt.NDArray[np.float64], float)
7
+
8
+
9
+ def moduli(
10
+ vp: _T,
11
+ vs: _T,
12
+ rhob: _T,
13
+ ) -> tuple[_T, _T]:
2
14
  """
3
15
  Calculate isotropic moduli from velocity and density.
4
16
 
@@ -23,7 +35,11 @@ def moduli(vp, vs, rhob):
23
35
  return k, mu
24
36
 
25
37
 
26
- def velocity(k, mu, rhob):
38
+ def velocity(
39
+ k: _T,
40
+ mu: _T,
41
+ rhob: _T,
42
+ ) -> tuple[_T, _T, _T, _T]:
27
43
  """
28
44
  Calculate velocity, acoustic impedance and vp/vs ratio from elastic moduli and density.
29
45
 
@@ -43,9 +59,9 @@ def velocity(k, mu, rhob):
43
59
  vp: pressure wave velocity [m/s], vs: shear wave velocity [m/s], ai: acoustic impedance [m/s x kg/m^3],
44
60
  vp_vs: velocity ratio [fraction].
45
61
  """
46
- vs = (mu / rhob) ** 0.5
47
- vp = ((k + 4 / 3 * mu) / rhob) ** 0.5
48
- ai = vp * rhob
49
- vp_vs = vp / vs
62
+ vs = cast(_T, (mu / rhob) ** 0.5)
63
+ vp = cast(_T, ((k + 4 / 3 * mu) / rhob) ** 0.5)
64
+ ai = cast(_T, vp * rhob)
65
+ vp_vs = cast(_T, vp / vs)
50
66
 
51
67
  return vp, vs, ai, vp_vs
@@ -1,7 +1,17 @@
1
+ from typing import Literal
2
+
1
3
  import numpy as np
4
+ import numpy.typing as npt
2
5
 
3
6
 
4
- def _refl_models(vp, vs, rho, theta, k=2.0, mod="aki_richards"):
7
+ def _refl_models(
8
+ vp: npt.NDArray[np.float64],
9
+ vs: npt.NDArray[np.float64],
10
+ rho: npt.NDArray[np.float64],
11
+ theta: npt.NDArray[np.float64],
12
+ k: npt.NDArray[np.float64] | float = 2.0,
13
+ mod: Literal["aki_richards", "smith_gidlow"] = "aki_richards",
14
+ ) -> npt.NDArray[np.float64]:
5
15
  """Calculate reflect coeff.
6
16
 
7
17
  Parameters
@@ -14,7 +24,7 @@ def _refl_models(vp, vs, rho, theta, k=2.0, mod="aki_richards"):
14
24
  rho array.
15
25
  theta : float, np.ndarray
16
26
  Theta value.
17
- k : float, optional
27
+ k : float, np.ndarray, optional
18
28
  By default 2.0.
19
29
  mod : str, optional
20
30
  By default 'aki_richards'.
@@ -47,7 +57,13 @@ def _refl_models(vp, vs, rho, theta, k=2.0, mod="aki_richards"):
47
57
  return reflect_coeff
48
58
 
49
59
 
50
- def aki_richards(vp, vs, rho, theta, k=2.0):
60
+ def aki_richards(
61
+ vp: npt.NDArray[np.float64],
62
+ vs: npt.NDArray[np.float64],
63
+ rho: npt.NDArray[np.float64],
64
+ theta: npt.NDArray[np.float64],
65
+ k: npt.NDArray[np.float64] | float = 2.0,
66
+ ) -> npt.NDArray[np.float64]:
51
67
  """
52
68
  Linearised Zoeppritz equation according to Aki and Richards.
53
69
 
@@ -61,7 +77,7 @@ def aki_richards(vp, vs, rho, theta, k=2.0):
61
77
  Density [kg/m^3].
62
78
  theta : np.ndarray
63
79
  Angle of incident ray [radians].
64
- k : float
80
+ k : float, np.ndarray
65
81
  Background vp/vs [unitless].
66
82
 
67
83
  Returns
@@ -72,7 +88,13 @@ def aki_richards(vp, vs, rho, theta, k=2.0):
72
88
  return _refl_models(vp, vs, rho, theta, k, mod="aki_richards")
73
89
 
74
90
 
75
- def smith_gidlow(vp, vs, rho, theta, k=2.0):
91
+ def smith_gidlow(
92
+ vp: npt.NDArray[np.float64],
93
+ vs: npt.NDArray[np.float64],
94
+ rho: npt.NDArray[np.float64],
95
+ theta: npt.NDArray[np.float64],
96
+ k: npt.NDArray[np.float64] | float = 2.0,
97
+ ) -> npt.NDArray[np.float64]:
76
98
  """
77
99
  Linearised Zoeppritz equation according to Smith and Gidlow.
78
100
 
@@ -86,7 +108,7 @@ def smith_gidlow(vp, vs, rho, theta, k=2.0):
86
108
  Density [kg/m^3].
87
109
  theta : np.ndarray
88
110
  Angle of incident ray [radians].
89
- k : float
111
+ k : float, np.ndarray
90
112
  Background vp/vs [unitless].
91
113
 
92
114
  Returns
@@ -1,9 +1,14 @@
1
1
  from warnings import warn
2
2
 
3
3
  import numpy as np
4
+ import numpy.typing as npt
4
5
 
5
6
 
6
- def rho_b(phi, rho_f, rho_mat):
7
+ def rho_b(
8
+ phi: npt.NDArray[np.float64],
9
+ rho_f: npt.NDArray[np.float64],
10
+ rho_mat: npt.NDArray[np.float64],
11
+ ) -> npt.NDArray[np.float64]:
7
12
  """
8
13
  Calculate bulk density from porosity, fluid density and matrix density.
9
14
 
@@ -24,7 +29,12 @@ def rho_b(phi, rho_f, rho_mat):
24
29
  return phi * rho_f + (1 - phi) * rho_mat
25
30
 
26
31
 
27
- def rho_m(frac_cem, phi, rho_cem, rho_min):
32
+ def rho_m(
33
+ frac_cem: npt.NDArray[np.float64],
34
+ phi: npt.NDArray[np.float64],
35
+ rho_cem: npt.NDArray[np.float64],
36
+ rho_min: npt.NDArray[np.float64],
37
+ ) -> npt.NDArray[np.float64]:
28
38
  """
29
39
  Calculates matrix density as a combination of cement fraction and minerals
30
40
  fracCem is defined as cement fraction relative to total volume.
@@ -1,7 +1,14 @@
1
1
  import numpy as np
2
+ import numpy.typing as npt
2
3
 
3
4
 
4
- def voigt(k1, mu1, k2, mu2, f1):
5
+ def voigt(
6
+ k1: npt.NDArray[np.float64],
7
+ mu1: npt.NDArray[np.float64],
8
+ k2: npt.NDArray[np.float64],
9
+ mu2: npt.NDArray[np.float64],
10
+ f1: npt.NDArray[np.float64],
11
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
5
12
  """
6
13
  Effective media calculation of a mixture of two phases using the Voigt bound.
7
14
 
@@ -31,7 +38,13 @@ def voigt(k1, mu1, k2, mu2, f1):
31
38
  return k_v, mu_v
32
39
 
33
40
 
34
- def voigt_reuss_hill(k1, mu1, k2, mu2, f1):
41
+ def voigt_reuss_hill(
42
+ k1: npt.NDArray[np.float64],
43
+ mu1: npt.NDArray[np.float64],
44
+ k2: npt.NDArray[np.float64],
45
+ mu2: npt.NDArray[np.float64],
46
+ f1: npt.NDArray[np.float64],
47
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
35
48
  """
36
49
  Effective media calculation of a mixture of two phases using the Voigt-Reuss-Hill average.
37
50
 
@@ -63,7 +76,9 @@ def voigt_reuss_hill(k1, mu1, k2, mu2, f1):
63
76
  return k_vrh, mu_vrh
64
77
 
65
78
 
66
- def multi_voigt_reuss_hill(*varargin):
79
+ def multi_voigt_reuss_hill(
80
+ *varargin: npt.NDArray[np.float64],
81
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
67
82
  """
68
83
  Voigt-Reuss-Hill with multiple mineral input.
69
84
 
@@ -97,7 +112,13 @@ def multi_voigt_reuss_hill(*varargin):
97
112
  return k, mu
98
113
 
99
114
 
100
- def reuss(k1, mu1, k2, mu2, f1):
115
+ def reuss(
116
+ k1: npt.NDArray[np.float64],
117
+ mu1: npt.NDArray[np.float64],
118
+ k2: npt.NDArray[np.float64],
119
+ mu2: npt.NDArray[np.float64],
120
+ f1: npt.NDArray[np.float64],
121
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
101
122
  """
102
123
  Effective media calculation of a mixture of two phases using the Reuss bound.
103
124
 
@@ -1,7 +1,14 @@
1
1
  import numpy as np
2
+ import numpy.typing as npt
2
3
 
3
4
 
4
- def walton_smooth(k, mu, phi, p_eff, coord=None):
5
+ def walton_smooth(
6
+ k: npt.NDArray[np.float64],
7
+ mu: npt.NDArray[np.float64],
8
+ phi: npt.NDArray[np.float64],
9
+ p_eff: npt.NDArray[np.float64],
10
+ coord: float | npt.NDArray[np.float64] | None = None,
11
+ ) -> tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]:
5
12
  """
6
13
  Walton Smooth Pressure-induced moduli increase at critical porosity.
7
14