ResSimpy 2.6.0__tar.gz → 2.6.2__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 (249) hide show
  1. {ressimpy-2.6.0 → ressimpy-2.6.2}/PKG-INFO +2 -2
  2. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Grid.py +8 -0
  3. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusGrid.py +31 -4
  4. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/runcontrol_operations.py +37 -0
  5. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/__init__.py +1 -1
  6. {ressimpy-2.6.0 → ressimpy-2.6.2}/pyproject.toml +2 -3
  7. {ressimpy-2.6.0 → ressimpy-2.6.2}/LICENSE.MD +0 -0
  8. {ressimpy-2.6.0 → ressimpy-2.6.2}/README.md +0 -0
  9. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Aquifer.py +0 -0
  10. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Completion.py +0 -0
  11. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Constraint.py +0 -0
  12. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/DataObjectMixin.py +0 -0
  13. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Drill.py +0 -0
  14. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/DrillSite.py +0 -0
  15. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/DynamicProperty.py +0 -0
  16. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/DynamicPropertyContainer.py +0 -0
  17. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Equilibration.py +0 -0
  18. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Ftrans.py +0 -0
  19. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Gaslift.py +0 -0
  20. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/GridArrayDefinition.py +0 -0
  21. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/GridArrayFunction.py +0 -0
  22. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/GuideRate.py +0 -0
  23. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/LGR.py +0 -0
  24. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Multir.py +0 -0
  25. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Network.py +0 -0
  26. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/NetworkList.py +0 -0
  27. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/NetworkObject.py +0 -0
  28. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Node.py +0 -0
  29. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/NodeConnection.py +0 -0
  30. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/OperationsMixin.py +0 -0
  31. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Over.py +0 -0
  32. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/PVT.py +0 -0
  33. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/RelPerm.py +0 -0
  34. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/RelPermEndPoint.py +0 -0
  35. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Reporting.py +0 -0
  36. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Rock.py +0 -0
  37. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Separator.py +0 -0
  38. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Simulator.py +0 -0
  39. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/SolverParameter.py +0 -0
  40. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Target.py +0 -0
  41. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Valve.py +0 -0
  42. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Water.py +0 -0
  43. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Well.py +0 -0
  44. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/WellConnection.py +0 -0
  45. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Wellbore.py +0 -0
  46. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/Wellhead.py +0 -0
  47. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/__init__.py +0 -0
  48. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/DataModelBaseClasses/output_request.py +0 -0
  49. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/FluidTypeEnums.py +0 -0
  50. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/FrequencyEnum.py +0 -0
  51. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/GridFunctionTypes.py +0 -0
  52. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/HowEnum.py +0 -0
  53. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/OutputType.py +0 -0
  54. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/PenetrationDirectionEnum.py +0 -0
  55. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/TimeSteppingMethodEnum.py +0 -0
  56. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/UnitsEnum.py +0 -0
  57. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/WellTypeEnum.py +0 -0
  58. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Enums/__init__.py +0 -0
  59. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/FileOperations/File.py +0 -0
  60. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/FileOperations/FileBase.py +0 -0
  61. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/FileOperations/__init__.py +0 -0
  62. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/FileOperations/file_operations.py +0 -0
  63. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/FileOperations/simulator_constants.py +0 -0
  64. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Constraints.py +0 -0
  65. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/DrillSites.py +0 -0
  66. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Drills.py +0 -0
  67. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Grids.py +0 -0
  68. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/GuideRates.py +0 -0
  69. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Hydraulics.py +0 -0
  70. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/LGRs.py +0 -0
  71. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/NetworkLists.py +0 -0
  72. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/NodeConnections.py +0 -0
  73. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Nodes.py +0 -0
  74. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/SolverParameters.py +0 -0
  75. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Targets.py +0 -0
  76. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/WellConnections.py +0 -0
  77. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Wellbores.py +0 -0
  78. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Wellheads.py +0 -0
  79. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/Wells.py +0 -0
  80. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/GenericContainerClasses/__init__.py +0 -0
  81. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/FcsConfig.py +0 -0
  82. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/FcsFile.py +0 -0
  83. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusAction.py +0 -0
  84. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusActions.py +0 -0
  85. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusActivationChange.py +0 -0
  86. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusActivationChanges.py +0 -0
  87. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusConList.py +0 -0
  88. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusConLists.py +0 -0
  89. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusConstraint.py +0 -0
  90. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusConstraints.py +0 -0
  91. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusDrill.py +0 -0
  92. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusDrillSite.py +0 -0
  93. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusDrillSites.py +0 -0
  94. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusDrills.py +0 -0
  95. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusGuideRate.py +0 -0
  96. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusGuideRates.py +0 -0
  97. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusNode.py +0 -0
  98. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusNodeConnection.py +0 -0
  99. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusNodeConnections.py +0 -0
  100. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusNodeList.py +0 -0
  101. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusNodeLists.py +0 -0
  102. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusNodes.py +0 -0
  103. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusProc.py +0 -0
  104. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusProcs.py +0 -0
  105. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusStation.py +0 -0
  106. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusStations.py +0 -0
  107. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusStreamTracer.py +0 -0
  108. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusStreamTracers.py +0 -0
  109. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusTarget.py +0 -0
  110. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusTargets.py +0 -0
  111. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellConnection.py +0 -0
  112. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellConnections.py +0 -0
  113. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellList.py +0 -0
  114. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellLists.py +0 -0
  115. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellbore.py +0 -0
  116. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellbores.py +0 -0
  117. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellhead.py +0 -0
  118. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/NexusWellheads.py +0 -0
  119. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/Network/__init__.py +0 -0
  120. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusAquiferMethod.py +0 -0
  121. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusCompletion.py +0 -0
  122. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusEquilMethod.py +0 -0
  123. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusFile.py +0 -0
  124. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusGasliftMethod.py +0 -0
  125. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusHydraulicsMethod.py +0 -0
  126. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusIPRMethod.py +0 -0
  127. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusOptions.py +0 -0
  128. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusPVTMethod.py +0 -0
  129. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusRelPermEndPoint.py +0 -0
  130. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusRelPermMethod.py +0 -0
  131. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusReportingRequests.py +0 -0
  132. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusRockMethod.py +0 -0
  133. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusSeparatorMethod.py +0 -0
  134. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusSolverParameter.py +0 -0
  135. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusValveMethod.py +0 -0
  136. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusWaterMethod.py +0 -0
  137. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusWell.py +0 -0
  138. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/NexusWellMod.py +0 -0
  139. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusFtrans.py +0 -0
  140. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusGridArrayFunction.py +0 -0
  141. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusLGR.py +0 -0
  142. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusLGRs.py +0 -0
  143. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusMultir.py +0 -0
  144. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusOver.py +0 -0
  145. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusTOver.py +0 -0
  146. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/StructuredGrid/__init__.py +0 -0
  147. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/__init__.py +0 -0
  148. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/DataModels/nexus_grid_to_proc.py +0 -0
  149. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusAquiferMethods.py +0 -0
  150. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusEnums/ActivationChangeEnum.py +0 -0
  151. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusEnums/DateFormatEnum.py +0 -0
  152. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusEnums/__init__.py +0 -0
  153. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusEquilMethods.py +0 -0
  154. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusGasliftMethods.py +0 -0
  155. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusGrids.py +0 -0
  156. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusHydraulicsMethods.py +0 -0
  157. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusIPRMethods.py +0 -0
  158. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/__init__.py +0 -0
  159. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/adsorption_keywords.py +0 -0
  160. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/alphaf_keywords.py +0 -0
  161. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/aquifer_keywords.py +0 -0
  162. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/choke_keywords.py +0 -0
  163. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/compressor_keywords.py +0 -0
  164. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/eos_defaults_keywords.py +0 -0
  165. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/equil_keywords.py +0 -0
  166. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/esp_keywords.py +0 -0
  167. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/fcs_keywords.py +0 -0
  168. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/fluxin_keywords.py +0 -0
  169. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/gaslift_keywords.py +0 -0
  170. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/hyd_keywords.py +0 -0
  171. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/icd_keywords.py +0 -0
  172. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/ipr_keywords.py +0 -0
  173. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/nexus_keywords.py +0 -0
  174. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/options_keywords.py +0 -0
  175. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/polymer_keywords.py +0 -0
  176. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/proc_keywords.py +0 -0
  177. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/pump_keywords.py +0 -0
  178. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/pvt_keywords.py +0 -0
  179. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/relpm_keywords.py +0 -0
  180. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/rock_keywords.py +0 -0
  181. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/runcontrol_keywords.py +0 -0
  182. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/separator_keywords.py +0 -0
  183. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/structured_grid_keywords.py +0 -0
  184. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/surface_keywords.py +0 -0
  185. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/tracer_init_keywords.py +0 -0
  186. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/valve_keywords.py +0 -0
  187. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/water_keywords.py +0 -0
  188. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusKeywords/wells_keywords.py +0 -0
  189. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusNetwork.py +0 -0
  190. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusPVTMethods.py +0 -0
  191. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusRelPermMethods.py +0 -0
  192. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusReporting.py +0 -0
  193. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusRockMethods.py +0 -0
  194. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusSeparatorMethods.py +0 -0
  195. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusSimulator.py +0 -0
  196. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusSolverParameters.py +0 -0
  197. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusValveMethods.py +0 -0
  198. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusWaterMethods.py +0 -0
  199. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/NexusWells.py +0 -0
  200. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/__init__.py +0 -0
  201. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/array_function_operations.py +0 -0
  202. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/constants.py +0 -0
  203. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/load_wells.py +0 -0
  204. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/logfile_operations.py +0 -0
  205. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_add_new_object_to_file.py +0 -0
  206. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_collect_tables.py +0 -0
  207. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_constraint_operations.py +0 -0
  208. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_file_operations.py +0 -0
  209. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_load_faults.py +0 -0
  210. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_load_list_table.py +0 -0
  211. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_model_file_generator.py +0 -0
  212. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_modify_object_in_file.py +0 -0
  213. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/nexus_remove_object_from_file.py +0 -0
  214. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/rel_perm_operations.py +0 -0
  215. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Nexus/structured_grid_operations.py +0 -0
  216. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/DataModels/Network/__init__.py +0 -0
  217. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/DataModels/OpenGoSimCompletion.py +0 -0
  218. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/DataModels/OpenGoSimWell.py +0 -0
  219. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/DataModels/__init__.py +0 -0
  220. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/Enums/SimulationTypeEnum.py +0 -0
  221. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/Enums/__init__.py +0 -0
  222. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/Model_Parts/OpenGoSimNetwork.py +0 -0
  223. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/Model_Parts/__init__.py +0 -0
  224. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/OpenGoSimKeywords/OpenGoSimKeywords.py +0 -0
  225. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/OpenGoSimKeywords/__init__.py +0 -0
  226. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/OpenGoSimSimulator.py +0 -0
  227. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/OpenGoSimWells.py +0 -0
  228. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/OpenGoSim/__init__.py +0 -0
  229. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Time/ISODateTime.py +0 -0
  230. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Time/__init__.py +0 -0
  231. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/AttributeMapping.py +0 -0
  232. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/AttributeMappings/BaseUnitMapping.py +0 -0
  233. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/AttributeMappings/CompletionUnitMapping.py +0 -0
  234. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/AttributeMappings/ConstraintUnitMapping.py +0 -0
  235. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/AttributeMappings/DynamicPropertyUnitMapping.py +0 -0
  236. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/AttributeMappings/NetworkUnitMapping.py +0 -0
  237. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/AttributeMappings/__init__.py +0 -0
  238. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/Units.py +0 -0
  239. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Units/__init__.py +0 -0
  240. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/__init__.py +0 -0
  241. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/dynamic_method_manipulations.py +0 -0
  242. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/factory_methods.py +0 -0
  243. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/general_utilities.py +0 -0
  244. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/generic_repr.py +0 -0
  245. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/grid_filtering_functions.py +0 -0
  246. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/invert_nexus_map.py +0 -0
  247. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/obj_to_dataframe.py +0 -0
  248. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/obj_to_table_string.py +0 -0
  249. {ressimpy-2.6.0 → ressimpy-2.6.2}/ResSimpy/Utils/to_dict_generic.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ResSimpy
3
- Version: 2.6.0
3
+ Version: 2.6.2
4
4
  Summary: A Python library for working with Reservoir Simulator Models.
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE.MD
@@ -22,7 +22,7 @@ Classifier: Topic :: System :: Filesystems
22
22
  Requires-Dist: numpy (>=2.2,<2.3) ; python_version < "3.11"
23
23
  Requires-Dist: numpy (>=2.3,<2.6) ; python_version >= "3.11"
24
24
  Requires-Dist: pandas (>=2.3,<3) ; python_version < "3.11"
25
- Requires-Dist: pandas (>=3.0,<3.0.4) ; python_version >= "3.11"
25
+ Requires-Dist: pandas (>=2.3,<3.0.4) ; python_version >= "3.11"
26
26
  Requires-Dist: typing-extensions (>=4.15,<5.0)
27
27
  Description-Content-Type: text/markdown
28
28
 
@@ -38,6 +38,7 @@ class Grid(ABC):
38
38
  _lgrs: LGRs
39
39
  _overs: Sequence[Over]
40
40
  _tolpv: Optional[float]
41
+ _tolpv_grid_name: Optional[str]
41
42
 
42
43
  def __init__(self, assume_loaded: bool = False) -> None:
43
44
  """Initialises the Grid class."""
@@ -63,6 +64,7 @@ class Grid(ABC):
63
64
 
64
65
  # TOLPV
65
66
  self._tolpv: Optional[float] = None
67
+ self._tolpv_grid_name: Optional[str] = None
66
68
 
67
69
  @property
68
70
  def range_x(self) -> int | None:
@@ -179,6 +181,12 @@ class Grid(ABC):
179
181
  self.load_grid_properties_if_not_loaded()
180
182
  return self._tolpv
181
183
 
184
+ @property
185
+ def tolpv_grid_name(self) -> Optional[str]:
186
+ """Returns the grid name (or ALL) that TOLPV was applied to, when provided."""
187
+ self.load_grid_properties_if_not_loaded()
188
+ return self._tolpv_grid_name
189
+
182
190
  @classmethod
183
191
  @abstractmethod
184
192
  def load_structured_grid_file(cls: type[Grid], structured_grid_file: File,
@@ -603,17 +603,44 @@ class NexusGrid(Grid):
603
603
  self._range_y = int(second_value)
604
604
  self._range_z = int(third_value)
605
605
 
606
- # Load TOLPV scalar value
606
+ # Load TOLPV scalar value, optionally with a grid selector (e.g. TOLPV LGR1 0 or TOLPV ALL 0).
607
607
  if nfo.check_token('TOLPV', line):
608
- tolpv_value = fo.get_token_value('TOLPV', line, [line])
609
- if tolpv_value is not None:
610
- self._tolpv = float(tolpv_value)
608
+ tolpv_values = fo.split_line(line, upper=False)
609
+ if len(tolpv_values) >= 2 and tolpv_values[0].upper() == 'TOLPV':
610
+ selector: str | None = None
611
+ selector_or_value = tolpv_values[1]
612
+
613
+ value_string = selector_or_value
614
+ try:
615
+ float(selector_or_value)
616
+ except ValueError:
617
+ selector = selector_or_value.upper()
618
+ next_value = fo.get_nth_value(file_as_list[idx:], value_number=3, ignore_values=[])
619
+ if next_value is None:
620
+ continue
621
+ value_string = next_value
622
+
623
+ try:
624
+ self._tolpv = float(value_string)
625
+ except ValueError:
626
+ continue
627
+
628
+ self._tolpv_grid_name = selector
629
+
630
+ if selector is not None:
631
+ warnings.warn(
632
+ f'TOLPV in Nexus was applied to grid {selector}.',
633
+ UserWarning,
634
+ )
635
+ else:
636
+ warnings.warn(f'Unable to parse TOLPV line: {line.strip()}', UserWarning)
611
637
 
612
638
  # Load TOLPV from CORTOL keyword third value when present.
613
639
  if nfo.check_token('CORTOL', line):
614
640
  cortol_values = line.split()
615
641
  if len(cortol_values) >= 4:
616
642
  self._tolpv = float(cortol_values[3])
643
+ self._tolpv_grid_name = None
617
644
 
618
645
  # load the overs:
619
646
  if fo.value_in_file('OVER', file_as_list):
@@ -38,6 +38,18 @@ class SimControls:
38
38
  self.__number_of_processors: None | int = None
39
39
  self.__grid_to_proc: None | GridToProc = None
40
40
  self.__solver_parameters: NexusSolverParameters = NexusSolverParameters(model, model.assume_loaded)
41
+ self.__drsdt_limit: float | None = None
42
+ self.__drsdt_two_phases: bool | None = None
43
+
44
+ @property
45
+ def drsdt_limit(self) -> float | None:
46
+ """Returns the DRSDT limit loaded from the run control file."""
47
+ return self.__drsdt_limit
48
+
49
+ @property
50
+ def drsdt_two_phases(self) -> bool | None:
51
+ """Returns whether DRSDT applies only to blocks with oil and gas phases."""
52
+ return self.__drsdt_two_phases
41
53
 
42
54
  @property
43
55
  def date_format_string(self) -> str:
@@ -150,6 +162,8 @@ class SimControls:
150
162
  start_date_as_datetime = datetime.strptime(self.__model.start_date, date_format)
151
163
  date_as_datetime = start_date_as_datetime + timedelta(days=converted_date)
152
164
  else:
165
+ if not isinstance(converted_date, str):
166
+ raise ValueError("convert_date_to_number: Incorrect type for 'date' parameter")
153
167
  start_date_format = self.date_format_string
154
168
  if len(self.__model.start_date) == DATE_WITH_TIME_LENGTH:
155
169
  start_date_format += "(%H:%M:%S)"
@@ -278,6 +292,7 @@ class SimControls:
278
292
  def load_run_control_file(self) -> None:
279
293
  """Loads the run control information into the class instance.
280
294
 
295
+ Loads DRSDT LIMIT and optional 2PHASE settings from the run-control file.
281
296
  If the write_times attribute is True then it expands out any INCLUDE files with the times found within
282
297
  Raises:
283
298
  ValueError: if the run_control_file attribute is None.
@@ -290,6 +305,28 @@ class SimControls:
290
305
  if (run_control_file_content is None) or (self.__model.model_files.runcontrol_file.location is None):
291
306
  raise ValueError(f"No file path provided for {self.__model.model_files.runcontrol_file.location=}")
292
307
 
308
+ for index, line in enumerate(run_control_file_content):
309
+ if not nfo.check_token('DRSDT', line):
310
+ continue
311
+
312
+ values = fo.split_line(line, upper=False)
313
+ if len(values) < 2 or values[0].upper() != 'DRSDT' or values[1].upper() != 'LIMIT':
314
+ warnings.warn(f'Unable to parse DRSDT line: {line.strip()}', UserWarning)
315
+ continue
316
+
317
+ value = fo.get_nth_value(run_control_file_content[index:], value_number=3, ignore_values=[])
318
+ if value is None:
319
+ warnings.warn(f'Unable to parse DRSDT line: {line.strip()}', UserWarning)
320
+ continue
321
+
322
+ try:
323
+ drsdt_limit = float(value)
324
+ except ValueError:
325
+ continue
326
+
327
+ self.__drsdt_limit = drsdt_limit
328
+ self.__drsdt_two_phases = any(item.upper() == '2PHASE' for item in values[2:])
329
+
293
330
  # set the start date
294
331
  for line in run_control_file_content:
295
332
  if nfo.check_token('START', line):
@@ -11,7 +11,7 @@
11
11
  Enums
12
12
  """
13
13
 
14
- __version__ = "2.6.0" # Set at build time
14
+ __version__ = "2.6.2" # Set at build time
15
15
 
16
16
  from ResSimpy.Nexus.NexusSimulator import NexusSimulator
17
17
  from ResSimpy.OpenGoSim.OpenGoSimSimulator import OpenGoSimSimulator
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ResSimpy"
3
- version = "2.6.0" # Set at build time
3
+ version = "2.6.2" # Set at build time
4
4
  description = "A Python library for working with Reservoir Simulator Models."
5
5
  authors = ["BP"]
6
6
  readme = "README.md"
@@ -30,7 +30,7 @@ numpy = [
30
30
  ]
31
31
  pandas = [
32
32
  { version = ">=2.3,<3", python = "<3.11" },
33
- { version = ">=3.0,<3.0.4", python = ">=3.11" },
33
+ { version = ">=2.3,<3.0.4", python = ">=3.11" },
34
34
  ]
35
35
 
36
36
  typing-extensions = "^4.15"
@@ -87,7 +87,6 @@ ignore = ["UP007", "ANN101", "N999", "UP035", "S105", "N802", "S106", "S107", "
87
87
  # Use Google-style docstrings.
88
88
  convention = "google"
89
89
 
90
-
91
90
  [tool.poetry.group.docs]
92
91
  optional = true
93
92
 
File without changes
File without changes