xtgeo 4.10.1__cp313-cp313-macosx_11_0_arm64.whl → 4.14.0__cp313-cp313-macosx_11_0_arm64.whl

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.

Potentially problematic release.


This version of xtgeo might be problematic. Click here for more details.

Files changed (578) hide show
  1. cxtgeo.py +0 -18
  2. cxtgeoPYTHON_wrap.c +0 -843
  3. xtgeo/__init__.py +2 -0
  4. xtgeo/_cxtgeo.cpython-313-darwin.so +0 -0
  5. xtgeo/_internal.cpython-313-darwin.so +0 -0
  6. xtgeo/common/version.py +16 -3
  7. xtgeo/cube/_cube_window_attributes.py +60 -127
  8. xtgeo/grid3d/_ecl_grid.py +6 -2
  9. xtgeo/grid3d/_ecl_inte_head.py +6 -2
  10. xtgeo/grid3d/_grdecl_format.py +43 -0
  11. xtgeo/grid3d/_grdecl_grid.py +24 -12
  12. xtgeo/grid3d/_grid_etc1.py +183 -69
  13. xtgeo/grid3d/_grid_export.py +4 -3
  14. xtgeo/grid3d/_grid_hybrid.py +13 -29
  15. xtgeo/grid3d/_grid_refine.py +1 -1
  16. xtgeo/grid3d/_grid_translate_coords.py +154 -0
  17. xtgeo/grid3d/_gridprop_export.py +34 -12
  18. xtgeo/grid3d/_gridprop_op1.py +74 -8
  19. xtgeo/grid3d/_gridprop_roxapi.py +87 -25
  20. xtgeo/grid3d/grid.py +198 -36
  21. xtgeo/grid3d/grid_property.py +5 -27
  22. xtgeo/include/eigen3/Eigen/Cholesky +45 -0
  23. xtgeo/include/eigen3/Eigen/CholmodSupport +48 -0
  24. xtgeo/include/eigen3/Eigen/Core +384 -0
  25. xtgeo/include/eigen3/Eigen/Dense +7 -0
  26. xtgeo/include/eigen3/Eigen/Eigen +2 -0
  27. xtgeo/include/eigen3/Eigen/Eigenvalues +60 -0
  28. xtgeo/include/eigen3/Eigen/Geometry +59 -0
  29. xtgeo/include/eigen3/Eigen/Householder +29 -0
  30. xtgeo/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  31. xtgeo/include/eigen3/Eigen/Jacobi +32 -0
  32. xtgeo/include/eigen3/Eigen/KLUSupport +41 -0
  33. xtgeo/include/eigen3/Eigen/LU +47 -0
  34. xtgeo/include/eigen3/Eigen/MetisSupport +35 -0
  35. xtgeo/include/eigen3/Eigen/OrderingMethods +70 -0
  36. xtgeo/include/eigen3/Eigen/PaStiXSupport +49 -0
  37. xtgeo/include/eigen3/Eigen/PardisoSupport +35 -0
  38. xtgeo/include/eigen3/Eigen/QR +50 -0
  39. xtgeo/include/eigen3/Eigen/QtAlignedMalloc +39 -0
  40. xtgeo/include/eigen3/Eigen/SPQRSupport +34 -0
  41. xtgeo/include/eigen3/Eigen/SVD +50 -0
  42. xtgeo/include/eigen3/Eigen/Sparse +34 -0
  43. xtgeo/include/eigen3/Eigen/SparseCholesky +37 -0
  44. xtgeo/include/eigen3/Eigen/SparseCore +69 -0
  45. xtgeo/include/eigen3/Eigen/SparseLU +50 -0
  46. xtgeo/include/eigen3/Eigen/SparseQR +36 -0
  47. xtgeo/include/eigen3/Eigen/StdDeque +27 -0
  48. xtgeo/include/eigen3/Eigen/StdList +26 -0
  49. xtgeo/include/eigen3/Eigen/StdVector +27 -0
  50. xtgeo/include/eigen3/Eigen/SuperLUSupport +64 -0
  51. xtgeo/include/eigen3/Eigen/UmfPackSupport +40 -0
  52. xtgeo/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  53. xtgeo/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  54. xtgeo/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  55. xtgeo/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  56. xtgeo/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  57. xtgeo/include/eigen3/Eigen/src/Core/Array.h +417 -0
  58. xtgeo/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  59. xtgeo/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  60. xtgeo/include/eigen3/Eigen/src/Core/Assign.h +90 -0
  61. xtgeo/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  62. xtgeo/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  63. xtgeo/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  64. xtgeo/include/eigen3/Eigen/src/Core/Block.h +448 -0
  65. xtgeo/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  66. xtgeo/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  67. xtgeo/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  68. xtgeo/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  69. xtgeo/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  70. xtgeo/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  71. xtgeo/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  72. xtgeo/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  73. xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  74. xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  75. xtgeo/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  76. xtgeo/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  77. xtgeo/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  78. xtgeo/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  79. xtgeo/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  80. xtgeo/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  81. xtgeo/include/eigen3/Eigen/src/Core/Dot.h +318 -0
  82. xtgeo/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  83. xtgeo/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  84. xtgeo/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  85. xtgeo/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  86. xtgeo/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  87. xtgeo/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  88. xtgeo/include/eigen3/Eigen/src/Core/IO.h +258 -0
  89. xtgeo/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  90. xtgeo/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  91. xtgeo/include/eigen3/Eigen/src/Core/Map.h +171 -0
  92. xtgeo/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  93. xtgeo/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  94. xtgeo/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  95. xtgeo/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  96. xtgeo/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  97. xtgeo/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  98. xtgeo/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  99. xtgeo/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  100. xtgeo/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  101. xtgeo/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  102. xtgeo/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  103. xtgeo/include/eigen3/Eigen/src/Core/Product.h +191 -0
  104. xtgeo/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  105. xtgeo/include/eigen3/Eigen/src/Core/Random.h +218 -0
  106. xtgeo/include/eigen3/Eigen/src/Core/Redux.h +515 -0
  107. xtgeo/include/eigen3/Eigen/src/Core/Ref.h +381 -0
  108. xtgeo/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  109. xtgeo/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  110. xtgeo/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  111. xtgeo/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  112. xtgeo/include/eigen3/Eigen/src/Core/Select.h +164 -0
  113. xtgeo/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  114. xtgeo/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  115. xtgeo/include/eigen3/Eigen/src/Core/Solve.h +188 -0
  116. xtgeo/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  117. xtgeo/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  118. xtgeo/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  119. xtgeo/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  120. xtgeo/include/eigen3/Eigen/src/Core/Stride.h +116 -0
  121. xtgeo/include/eigen3/Eigen/src/Core/Swap.h +68 -0
  122. xtgeo/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  123. xtgeo/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  124. xtgeo/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  125. xtgeo/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  126. xtgeo/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  127. xtgeo/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  128. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  129. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  130. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  131. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  132. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  133. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  134. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  135. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  136. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  137. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  138. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  139. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  140. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  141. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  142. xtgeo/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  143. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  144. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  145. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  146. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  147. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  148. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  149. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  150. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  151. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  152. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  153. xtgeo/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  154. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  155. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  156. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  157. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  158. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  159. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  160. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  161. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  162. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  163. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  164. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  165. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  166. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  167. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  168. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  169. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  170. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  171. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  172. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  173. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  174. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  175. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  176. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  177. xtgeo/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  178. xtgeo/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  179. xtgeo/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  180. xtgeo/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  181. xtgeo/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  182. xtgeo/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  183. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  184. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  185. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  186. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  187. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  188. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  189. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  190. xtgeo/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  191. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  192. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  193. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  194. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  195. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  196. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  197. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  198. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  199. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  200. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  201. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  202. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  203. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  204. xtgeo/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  205. xtgeo/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  206. xtgeo/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  207. xtgeo/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  208. xtgeo/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  209. xtgeo/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  210. xtgeo/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  211. xtgeo/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  212. xtgeo/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  213. xtgeo/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  214. xtgeo/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  215. xtgeo/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  216. xtgeo/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  217. xtgeo/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  218. xtgeo/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  219. xtgeo/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  220. xtgeo/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  221. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  222. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  223. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  224. xtgeo/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  225. xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  226. xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  227. xtgeo/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  228. xtgeo/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  229. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  230. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  231. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  232. xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  233. xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  234. xtgeo/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  235. xtgeo/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  236. xtgeo/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  237. xtgeo/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  238. xtgeo/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  239. xtgeo/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  240. xtgeo/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  241. xtgeo/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  242. xtgeo/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  243. xtgeo/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  244. xtgeo/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  245. xtgeo/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  246. xtgeo/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  247. xtgeo/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  248. xtgeo/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  249. xtgeo/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  250. xtgeo/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  251. xtgeo/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  252. xtgeo/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  253. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  254. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  255. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  256. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  257. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  258. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  259. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  260. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  261. xtgeo/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  262. xtgeo/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  263. xtgeo/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  264. xtgeo/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  265. xtgeo/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  266. xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  267. xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  268. xtgeo/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  269. xtgeo/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  270. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  271. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  272. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  273. xtgeo/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  274. xtgeo/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  275. xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  276. xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  277. xtgeo/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  278. xtgeo/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  279. xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  280. xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  281. xtgeo/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  282. xtgeo/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  283. xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  284. xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  285. xtgeo/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  286. xtgeo/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  287. xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  288. xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  289. xtgeo/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  290. xtgeo/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  291. xtgeo/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  292. xtgeo/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  293. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  294. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  295. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  296. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  297. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  298. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  299. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  300. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  301. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  302. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  303. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  304. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  305. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  306. xtgeo/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  307. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  308. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  309. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  310. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  311. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  312. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  313. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  314. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  315. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  316. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  317. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  318. xtgeo/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  319. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  320. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  321. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  322. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  323. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  324. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  325. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  326. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  327. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  328. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  329. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  330. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  331. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  332. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  333. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  334. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  335. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  336. xtgeo/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  337. xtgeo/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  338. xtgeo/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  339. xtgeo/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  340. xtgeo/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  341. xtgeo/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  342. xtgeo/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  343. xtgeo/include/eigen3/Eigen/src/misc/Image.h +82 -0
  344. xtgeo/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  345. xtgeo/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  346. xtgeo/include/eigen3/Eigen/src/misc/blas.h +440 -0
  347. xtgeo/include/eigen3/Eigen/src/misc/lapack.h +152 -0
  348. xtgeo/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  349. xtgeo/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  350. xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  351. xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  352. xtgeo/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  353. xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  354. xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  355. xtgeo/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  356. xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  357. xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  358. xtgeo/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  359. xtgeo/include/eigen3/signature_of_eigen3_matrix_library +1 -0
  360. xtgeo/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  361. xtgeo/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  362. xtgeo/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  363. xtgeo/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  364. xtgeo/include/eigen3/unsupported/Eigen/BVH +95 -0
  365. xtgeo/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  366. xtgeo/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  367. xtgeo/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  368. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  369. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  370. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  371. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  372. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  373. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  374. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  375. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  376. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  377. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  378. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  379. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  380. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  381. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  382. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  383. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  384. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  385. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  386. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  387. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  388. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  389. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  390. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  391. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  392. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  393. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  394. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  395. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  396. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  397. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  398. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  399. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  400. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  401. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  402. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  403. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  404. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  405. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  406. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  407. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  408. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  409. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  410. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  411. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  412. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  413. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  414. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  415. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  416. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  417. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  418. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  419. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  420. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  421. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  422. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  423. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  424. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  425. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  426. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  427. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  428. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  429. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  430. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  431. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  432. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  433. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  434. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  435. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  436. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  437. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  438. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  439. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  440. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  441. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  442. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  443. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  444. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  445. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  446. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  447. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  448. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  449. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  450. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  451. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  452. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  453. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  454. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  455. xtgeo/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  456. xtgeo/include/eigen3/unsupported/Eigen/FFT +419 -0
  457. xtgeo/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  458. xtgeo/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  459. xtgeo/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  460. xtgeo/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  461. xtgeo/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  462. xtgeo/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  463. xtgeo/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  464. xtgeo/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  465. xtgeo/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  466. xtgeo/include/eigen3/unsupported/Eigen/Polynomials +137 -0
  467. xtgeo/include/eigen3/unsupported/Eigen/Skyline +39 -0
  468. xtgeo/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  469. xtgeo/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  470. xtgeo/include/eigen3/unsupported/Eigen/Splines +35 -0
  471. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  472. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  473. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  474. xtgeo/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  475. xtgeo/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  476. xtgeo/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  477. xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  478. xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  479. xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  480. xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  481. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  482. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  483. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  484. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  485. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  486. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  487. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  488. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  489. xtgeo/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  490. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  491. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  492. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  493. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  494. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  495. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  496. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  497. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  498. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  499. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  500. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  501. xtgeo/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  502. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  503. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  504. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  505. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  506. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  507. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  508. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  509. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  510. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  511. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  512. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  513. xtgeo/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  514. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  515. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  516. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  517. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  518. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  519. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  520. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  521. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  522. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  523. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  524. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  525. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  526. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  527. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  528. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  529. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  530. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  531. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  532. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  533. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  534. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  535. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  536. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  537. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  538. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  539. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  540. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  541. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  542. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  543. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  544. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  545. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  546. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  547. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  548. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  549. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  550. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  551. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  552. xtgeo/interfaces/rms/__init__.py +18 -0
  553. xtgeo/interfaces/rms/_regular_surface.py +460 -0
  554. xtgeo/interfaces/rms/_rms_base.py +100 -0
  555. xtgeo/interfaces/rms/_rmsapi_package.py +69 -0
  556. xtgeo/interfaces/rms/rmsapi_utils.py +438 -0
  557. xtgeo/io/_file.py +10 -1
  558. xtgeo/lib/cmake/fmt/fmt-targets.cmake +1 -1
  559. xtgeo/lib/libfmt.a +0 -0
  560. xtgeo/lib/pkgconfig/fmt.pc +2 -2
  561. xtgeo/metadata/metadata.py +66 -62
  562. xtgeo/share/eigen3/cmake/Eigen3Config.cmake +37 -0
  563. xtgeo/share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
  564. xtgeo/share/eigen3/cmake/Eigen3Targets.cmake +106 -0
  565. xtgeo/share/eigen3/cmake/UseEigen3.cmake +6 -0
  566. xtgeo/share/pkgconfig/eigen3.pc +9 -0
  567. xtgeo/surface/__init__.py +2 -0
  568. xtgeo/surface/_regsurf_oper.py +1 -94
  569. xtgeo/surface/regular_surface.py +166 -90
  570. xtgeo/well/_blockedwell_roxapi.py +24 -4
  571. xtgeo/xyz/_xyz_io.py +7 -5
  572. xtgeo/xyz/points.py +1 -0
  573. {xtgeo-4.10.1.dist-info → xtgeo-4.14.0.dist-info}/METADATA +4 -4
  574. xtgeo-4.14.0.dist-info/RECORD +677 -0
  575. {xtgeo-4.10.1.dist-info → xtgeo-4.14.0.dist-info}/WHEEL +1 -1
  576. xtgeo/surface/_regsurf_roxapi.py +0 -241
  577. xtgeo-4.10.1.dist-info/RECORD +0 -137
  578. {xtgeo-4.10.1.dist-info → xtgeo-4.14.0.dist-info}/licenses/LICENSE.md +0 -0
@@ -0,0 +1,460 @@
1
+ """RMS API functions for RegularSurface."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import warnings
6
+ from dataclasses import dataclass
7
+ from typing import TYPE_CHECKING, Any, Literal, Optional
8
+
9
+ import numpy as np
10
+
11
+ from xtgeo.common.log import null_logger
12
+ from xtgeo.interfaces.rms._rms_base import _BaseRmsDataRW
13
+ from xtgeo.interfaces.rms._rmsapi_package import rmsapi
14
+ from xtgeo.interfaces.rms.rmsapi_utils import (
15
+ _DomainTypeClipBoardGeneral2D as DomainType,
16
+ _StorageTypeRegularSurface as StorageType,
17
+ )
18
+
19
+ if TYPE_CHECKING:
20
+ from xtgeo.interfaces.rms._rmsapi_package import (
21
+ RmsProjectOrPathType,
22
+ RmsSurfaceType,
23
+ RmsVerticalDomainType,
24
+ )
25
+
26
+
27
+ logger = null_logger(__name__)
28
+
29
+
30
+ @dataclass(frozen=True)
31
+ class RegularSurfaceDataRms:
32
+ """Immutable data container for regular surface information."""
33
+
34
+ name: str
35
+ xori: float
36
+ yori: float
37
+ ncol: int
38
+ nrow: int
39
+ xinc: float
40
+ yinc: float
41
+ rotation: float
42
+ values: np.ma.MaskedArray
43
+
44
+
45
+ class RegularSurfaceReader(_BaseRmsDataRW):
46
+ """Handles reading (loading) regular surface data from RMS projects.
47
+
48
+ This class handles all the complex loading logic, validation, and cleanup.
49
+ """
50
+
51
+ def __init__(
52
+ self,
53
+ project_or_path: RmsProjectOrPathType,
54
+ name: str,
55
+ category: str,
56
+ stype: str,
57
+ realisation: int = 0,
58
+ ):
59
+ super().__init__(
60
+ project_or_path, name, category, stype, realisation, readonly=True
61
+ )
62
+
63
+ self._stype_enum = self.get_stype_validated() # method in the base class
64
+
65
+ # get the RMS project (rmsapi.Project) reference
66
+ self._project = self.get_rmsapi_utils().project
67
+
68
+ def load(self) -> RegularSurfaceDataRms:
69
+ """Load surface data from RMS and return immutable data object."""
70
+ try:
71
+ return self._perform_load()
72
+ except Exception as exc:
73
+ self._cleanup()
74
+ raise RuntimeError(f"Failed to load surface '{self.name}': {exc}") from exc
75
+
76
+ def _perform_load(self) -> RegularSurfaceDataRms:
77
+ """Internal method to handle the actual loading with subsequent cleanup."""
78
+
79
+ # Extract surface data
80
+ surface_data = self._extract_surface_from_rms()
81
+
82
+ # Cleanup (close project if external)
83
+ self._cleanup()
84
+
85
+ return surface_data
86
+
87
+ def _extract_surface_from_rms(self) -> RegularSurfaceDataRms:
88
+ """Extract surface data from RMS project and create data object."""
89
+ if TYPE_CHECKING:
90
+ assert rmsapi is not None
91
+
92
+ rms_item = None
93
+
94
+ if self._stype_enum in (StorageType.HORIZONS, StorageType.ZONES):
95
+ rms_item = self._get_horizon_zone_item()
96
+ elif self._stype_enum in (StorageType.CLIPBOARD, StorageType.GENERAL2D_DATA):
97
+ rms_item = self._get_clipboard_general2d_item()
98
+ elif self._stype_enum == StorageType.TRENDS:
99
+ rms_item = self._get_trends_item()
100
+ else:
101
+ raise ValueError(f"Unsupported storage type: {self._stype_enum}")
102
+
103
+ # Validate surface object
104
+ if not isinstance(rms_item, rmsapi.Surface):
105
+ raise TypeError(
106
+ f"Expected a Surface for '{self.name}', but got "
107
+ f"{type(rms_item).__name__} for category '{self.category}'. "
108
+ "Check that the item requested is indeed a surface."
109
+ )
110
+
111
+ # Extract grid data
112
+ try:
113
+ rmssurf = rms_item.get_grid(self.realisation)
114
+ return self._create_surface_data(rmssurf)
115
+ except KeyError as exc:
116
+ raise RuntimeError(
117
+ f"Could not load surface '{self.name}' from RMS API. "
118
+ f"Realisation '{self.realisation}' may not exist."
119
+ ) from exc
120
+
121
+ def _create_surface_data(
122
+ self,
123
+ rms_surface: RmsSurfaceType,
124
+ ) -> RegularSurfaceDataRms:
125
+ """Create RegularSurfaceData from an RMSAPI RegularGrid2D.
126
+
127
+ Args:
128
+ rms_surface: A RegularGrid2D instance from RMS API
129
+
130
+ Returns:
131
+ Immutable surface data container
132
+ """
133
+ logger.info("Creating surface data from RMSAPI surface")
134
+
135
+ return RegularSurfaceDataRms(
136
+ name=self.name,
137
+ xori=rms_surface.origin[0],
138
+ yori=rms_surface.origin[1],
139
+ ncol=rms_surface.dimensions[0],
140
+ nrow=rms_surface.dimensions[1],
141
+ xinc=rms_surface.increment[0],
142
+ yinc=rms_surface.increment[1],
143
+ rotation=rms_surface.rotation,
144
+ # Wrap to ensure type correctness for values
145
+ values=np.ma.array(rms_surface.get_values(), copy=False),
146
+ )
147
+
148
+ def _get_horizon_zone_item(self) -> RmsSurfaceType: # rmsapi.Surface
149
+ """Get surface item from horizons or zones."""
150
+ if TYPE_CHECKING:
151
+ assert rmsapi is not None
152
+ assert isinstance(self._project, rmsapi.Project), (
153
+ "Project must be initialized"
154
+ )
155
+ assert self._stype_enum is not None, "stype must be set"
156
+
157
+ container = (
158
+ self._project.horizons
159
+ if self._stype_enum == StorageType.HORIZONS
160
+ else self._project.zones
161
+ )
162
+ container_name = (
163
+ "Horizons" if self._stype_enum == StorageType.HORIZONS else "Zones"
164
+ )
165
+
166
+ if self.name not in container:
167
+ raise ValueError(f"Name '{self.name}' is not within {container_name}")
168
+ if self.category not in container.representations:
169
+ raise ValueError(
170
+ f"Category '{self.category}' is not within {container_name} categories"
171
+ )
172
+
173
+ return container[self.name][self.category]
174
+
175
+ def _get_clipboard_general2d_item(self) -> RmsSurfaceType: # rmsapi.Surface
176
+ """Get surface item from clipboard or general2d_data."""
177
+ if TYPE_CHECKING:
178
+ assert rmsapi is not None
179
+ assert isinstance(self._project, rmsapi.Project), (
180
+ "Project must be initialized"
181
+ )
182
+
183
+ try:
184
+ container = getattr(self._project, self._stype_enum.value)
185
+ if self.category:
186
+ folders = self.category.split("|" if "|" in self.category else "/")
187
+ return container.folders[folders][self.name]
188
+ return container[self.name]
189
+ except (AttributeError, KeyError) as exc:
190
+ raise ValueError(
191
+ f"Could not access '{self.name}' in {self._stype_enum.value}"
192
+ + (f" with category '{self.category}'" if self.category else "")
193
+ ) from exc
194
+
195
+ def _get_trends_item(self) -> RmsSurfaceType: # rmsapi.Surface
196
+ """Get surface item from trends."""
197
+ if self.category:
198
+ warnings.warn(
199
+ f"Ignoring category {self.category} for Trends storage type. Set "
200
+ "it to empty or None to avoid this warning.",
201
+ UserWarning,
202
+ )
203
+
204
+ assert rmsapi is not None
205
+ assert isinstance(self._project, rmsapi.Project), "Project must be initialized"
206
+
207
+ if self.name not in self._project.trends.surfaces:
208
+ raise ValueError(f"Name '{self.name}' is not within Trends")
209
+ return self._project.trends.surfaces[self.name]
210
+
211
+
212
+ class RegularSurfaceWriter(_BaseRmsDataRW):
213
+ """Handles writing regular surface data to RMS API."""
214
+
215
+ def __init__(
216
+ self,
217
+ project_or_path: RmsProjectOrPathType,
218
+ name: str,
219
+ category: str,
220
+ stype: str,
221
+ realisation: int = 0,
222
+ domain: Literal["time", "depth", "unknown"] = "depth", # clipboard/general2d
223
+ ):
224
+ super().__init__(
225
+ project_or_path, name, category, stype, realisation, readonly=False
226
+ )
227
+ self._project = self.get_rms_project() # rmsapi.Project
228
+ self.domain = domain.lower()
229
+ self._domain_enum: DomainType | None = None
230
+ self._api_vertical_domain: Optional[RmsVerticalDomainType] = None
231
+ self._stype_enum = self.get_stype_validated() # method in the base class
232
+
233
+ def save(self, data: RegularSurfaceDataRms) -> None:
234
+ """Write surface data to RMS."""
235
+ try:
236
+ self._perform_save(data)
237
+ except Exception as exc:
238
+ raise RuntimeError(f"Failed to save surface '{self.name}': {exc}") from exc
239
+ finally:
240
+ self._cleanup()
241
+
242
+ def _perform_save(self, data: RegularSurfaceDataRms) -> None:
243
+ self._check_valid_domain()
244
+
245
+ # Validate payload consistency
246
+ validated_values = self._validate_payload(data)
247
+
248
+ # Do the write
249
+ self._write_to_rms(data, validated_values)
250
+
251
+ # Save project if external
252
+ if TYPE_CHECKING:
253
+ assert rmsapi is not None
254
+ assert isinstance(self._project, rmsapi.Project), (
255
+ "Project must be initialized"
256
+ )
257
+ if getattr(self.get_rmsapi_utils(), "_rmsexternal", False):
258
+ self._project.save()
259
+
260
+ def _check_valid_domain(self) -> None:
261
+ """Check that domain is valid for the given storage type."""
262
+ if self.domain not in DomainType.values():
263
+ raise ValueError(f"domain must be {DomainType.values()}")
264
+ self._domain_enum = DomainType[self.domain.upper()]
265
+ self._api_vertical_domain = self._resolve_api_vertical_domain()
266
+ logger.debug("Using domain: %s", self._domain_enum)
267
+
268
+ def _resolve_api_vertical_domain(self) -> RmsVerticalDomainType:
269
+ """Map internal domain enum to RMS API VerticalDomain enum."""
270
+ if TYPE_CHECKING:
271
+ assert rmsapi is not None
272
+ if self._domain_enum == DomainType.DEPTH:
273
+ return rmsapi.VerticalDomain.depth
274
+ if self._domain_enum == DomainType.TIME:
275
+ return rmsapi.VerticalDomain.time
276
+ return rmsapi.VerticalDomain.unknown
277
+
278
+ @staticmethod
279
+ def _validate_payload(data: RegularSurfaceDataRms) -> np.ma.MaskedArray:
280
+ """Validate payload and return a normalized copy of values.
281
+
282
+ This method validates the surface data and returns a copy of the values
283
+ array normalized to MaskedArray format, without mutating the input.
284
+
285
+ Args:
286
+ data: The surface data to validate
287
+
288
+ Returns:
289
+ A copy of the values array as np.ma.MaskedArray
290
+
291
+ Raises:
292
+ ValueError: If validation fails
293
+ """
294
+ if data.ncol <= 0 or data.nrow <= 0:
295
+ raise ValueError("ncol and nrow must be positive.")
296
+ if data.xinc <= 0 or data.yinc <= 0:
297
+ raise ValueError("xinc and yinc must be positive.")
298
+
299
+ # Normalize to MaskedArray without mutating input
300
+ if not isinstance(data.values, np.ma.MaskedArray):
301
+ values = np.ma.array(data.values, copy=True)
302
+ else:
303
+ # Even if already MaskedArray, we'll make a copy to be safe
304
+ values = data.values.copy()
305
+
306
+ if values.shape != (data.ncol, data.nrow):
307
+ raise ValueError(
308
+ f"values shape {values.shape} does not match "
309
+ f"(ncol, nrow)=({data.ncol}, {data.nrow})"
310
+ )
311
+
312
+ return values
313
+
314
+ def _write_to_rms(
315
+ self, data: RegularSurfaceDataRms, values: np.ma.MaskedArray
316
+ ) -> None:
317
+ if TYPE_CHECKING:
318
+ assert rmsapi is not None
319
+ assert isinstance(self._project, rmsapi.Project), (
320
+ "Project must be initialized"
321
+ )
322
+
323
+ # Sanitize values for RMS API specifics (NaNs, etc.) before use
324
+ values = self._sanitize_values_for_rms(values)
325
+
326
+ # Build 2D grid (i.e. surface) geometry
327
+ grid = rmsapi.RegularGrid2D.create(
328
+ x_origin=data.xori,
329
+ y_origin=data.yori,
330
+ i_inc=data.xinc,
331
+ j_inc=data.yinc,
332
+ ni=data.ncol,
333
+ nj=data.nrow,
334
+ rotation=data.rotation,
335
+ )
336
+ grid.set_values(values)
337
+
338
+ if self._stype_enum in (StorageType.HORIZONS, StorageType.ZONES):
339
+ container = (
340
+ self._project.horizons
341
+ if self._stype_enum == StorageType.HORIZONS
342
+ else self._project.zones
343
+ )
344
+ container_name = (
345
+ "Horizons" if self._stype_enum == StorageType.HORIZONS else "Zones"
346
+ )
347
+
348
+ if self.name not in container:
349
+ raise ValueError(f"Name '{self.name}' is not within {container_name}")
350
+ if self.category not in container.representations:
351
+ raise ValueError(
352
+ f"Category '{self.category}' is not within {container_name} "
353
+ "categories"
354
+ )
355
+
356
+ root = container[self.name][self.category]
357
+
358
+ # Pass realisation where supported
359
+ try:
360
+ root.set_grid(grid, realisation=self.realisation)
361
+ except TypeError:
362
+ # Some APIs don't take realisation argument here
363
+ root.set_grid(grid)
364
+
365
+ elif self._stype_enum in (StorageType.CLIPBOARD, StorageType.GENERAL2D_DATA):
366
+ styperef = getattr(self._project, self._stype_enum.value)
367
+
368
+ def _get_current_item() -> tuple[Any, list[str]]: # mixed type + list
369
+ folders = []
370
+ if self.category:
371
+ folders = self.category.split("|" if "|" in self.category else "/")
372
+ if folders:
373
+ styperef.folders.create(folders)
374
+ current_item = styperef.folders[folders] if folders else styperef
375
+ logger.debug(
376
+ "Current item: %s, type is %s", current_item, type(current_item)
377
+ )
378
+ logger.debug("Folders: %s, type is %s", folders, type(folders))
379
+ return current_item, folders
380
+
381
+ current_item, folders = _get_current_item()
382
+ if self.name in current_item:
383
+ root = current_item[self.name]
384
+ if not isinstance(root, rmsapi.Surface):
385
+ raise TypeError(
386
+ f"Expected a Surface for '{self.name}', but got "
387
+ f"{type(root).__name__} for category '{self.category}'. "
388
+ "Check that the item requested is indeed a surface."
389
+ )
390
+ logger.debug("Using domain: %s", self._domain_enum)
391
+ current_domain = getattr(root, "vertical_domain", None)
392
+ if current_domain != self._api_vertical_domain:
393
+ # RMS API does not allow changing domain of existing surface but
394
+ # we can brute-force remove the current surface and create a new one
395
+ logger.debug("Force remove current: %s", current_item[self.name])
396
+ del current_item[self.name]
397
+ logger.debug("Creating new surface with domain: %s", self.domain)
398
+ current_item, folders = _get_current_item()
399
+ root = styperef.create_surface(
400
+ self.name, folders, self._api_vertical_domain
401
+ )
402
+ else:
403
+ root = styperef.create_surface(
404
+ self.name, folders, self._api_vertical_domain
405
+ )
406
+
407
+ root.set_grid(grid)
408
+
409
+ elif self._stype_enum == StorageType.TRENDS:
410
+ # TRENDS do not have categories
411
+ if self.category:
412
+ warnings.warn(
413
+ f"Ignoring category {self.category} for Trends storage type. Set "
414
+ "it to empty or None to avoid this warning.",
415
+ UserWarning,
416
+ )
417
+
418
+ styperef = getattr(self._project, self._stype_enum.value)
419
+ if self.name in styperef.surfaces:
420
+ root = styperef.surfaces[self.name]
421
+ if not isinstance(root, rmsapi.Surface):
422
+ raise TypeError(
423
+ f"Expected a Surface for '{self.name}', but got "
424
+ f"{type(root).__name__}. Check that the item requested is "
425
+ "indeed a surface."
426
+ )
427
+ else:
428
+ root = styperef.surfaces.create(self.name)
429
+
430
+ root.set_grid(grid)
431
+
432
+ @staticmethod
433
+ def _sanitize_values_for_rms(
434
+ values: np.ma.MaskedArray,
435
+ ) -> np.ma.MaskedArray:
436
+ """Sanitize array values for RMS, replacing NaN/Inf while preserving mask."""
437
+ # Ensure dtype is float64
438
+ if values.dtype != np.float64:
439
+ mvalues: np.ma.MaskedArray = np.ma.array(
440
+ values, dtype=np.float64, copy=False
441
+ )
442
+ else:
443
+ mvalues = values
444
+
445
+ # Preserve original mask
446
+ original_mask = np.ma.getmaskarray(mvalues)
447
+
448
+ # RMS API doesn't accept NaNs/Inf even behind mask; replace in data buffer
449
+ applied_fill_value = np.finfo(np.float64).max
450
+ filled = np.ma.filled(mvalues, fill_value=applied_fill_value)
451
+
452
+ filled = np.where(
453
+ np.isnan(filled) | np.isinf(filled), applied_fill_value, filled
454
+ )
455
+
456
+ # Create new masked array with combined mask:
457
+ nan_inf_mask = np.isnan(mvalues.data) | np.isinf(mvalues.data)
458
+ combined_mask = original_mask | nan_inf_mask
459
+
460
+ return np.ma.array(filled, mask=combined_mask)
@@ -0,0 +1,100 @@
1
+ """Shared base for RMS RegularSurface reader/writer."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ from xtgeo.common.log import null_logger
8
+ from xtgeo.interfaces.rms._rmsapi_package import rmsapi
9
+ from xtgeo.interfaces.rms.rmsapi_utils import (
10
+ RmsApiUtils,
11
+ _StorageTypeRegularSurface as StorageType,
12
+ )
13
+
14
+ if TYPE_CHECKING:
15
+ from xtgeo.interfaces.rms._rmsapi_package import (
16
+ RmsProjectOrPathType,
17
+ RmsProjectType,
18
+ )
19
+
20
+ logger = null_logger(__name__)
21
+
22
+
23
+ class _BaseRmsDataRW:
24
+ """
25
+ Common init, input validation etc for read/write RMS RegularSurface, Points, etc.
26
+ """
27
+
28
+ def __init__(
29
+ self,
30
+ project_or_path: RmsProjectOrPathType,
31
+ name: str,
32
+ category: str,
33
+ stype: str,
34
+ realisation: int = 0,
35
+ readonly: bool = True,
36
+ ):
37
+ # Check rmsapi availability early
38
+ if rmsapi is None:
39
+ raise RuntimeError(
40
+ "rmsapi module is not available. "
41
+ "This functionality requires RMS environment or rmsapi package."
42
+ )
43
+ self.project_or_path = project_or_path
44
+ self.name = name
45
+ self.category = category
46
+ self.stype = stype
47
+ self.realisation = realisation
48
+
49
+ # Internal states
50
+ self._readonly = readonly # should be immutable
51
+ self._rmsapi_utils: RmsApiUtils | None = None
52
+
53
+ # name cannot be an empty string
54
+ if not self.name:
55
+ raise ValueError("The name is missing or empty.")
56
+
57
+ @property
58
+ def readonly(self) -> bool:
59
+ """Read-only mode flag (immutable)."""
60
+ return self._readonly
61
+
62
+ def get_rmsapi_utils(self) -> RmsApiUtils:
63
+ """Create RmsApiUtils with the selected readonly mode."""
64
+ if self._rmsapi_utils is None:
65
+ self._rmsapi_utils = RmsApiUtils(
66
+ self.project_or_path, readonly=self.readonly
67
+ )
68
+ return self._rmsapi_utils
69
+
70
+ def get_rms_project(self) -> RmsProjectType:
71
+ """Get the RMS project instance of type rmsapi.Project."""
72
+ return self.get_rmsapi_utils().project
73
+
74
+ def get_stype_validated(self) -> StorageType:
75
+ """Validate stype returns StorageType enum."""
76
+ stype_lower = self.stype.lower()
77
+
78
+ if stype_lower not in StorageType.values():
79
+ raise ValueError(
80
+ f"Given stype '{stype_lower}' is not supported. "
81
+ f"Legal stypes are: {StorageType.values()}"
82
+ )
83
+
84
+ stype_enum = StorageType(stype_lower)
85
+
86
+ if (
87
+ stype_enum in (StorageType.HORIZONS, StorageType.ZONES)
88
+ and not self.category
89
+ ):
90
+ raise ValueError(
91
+ "Need to specify both name and category for horizons and zones"
92
+ )
93
+
94
+ return stype_enum
95
+
96
+ def _cleanup(self) -> None:
97
+ """Clean up RmsApiUtils instance."""
98
+ if self._rmsapi_utils:
99
+ self._rmsapi_utils.safe_close()
100
+ self._rmsapi_utils = None
@@ -0,0 +1,69 @@
1
+ """Loading rmsapi package based on availability and add specific RMS type annotations.
2
+
3
+ As xtgeo from version 4 only support RMSAPI > 1.10, we do not support roxar
4
+ package anymore. This module handles the optional import of the rmsapi package
5
+ and its submodules, as well as type annotations for rmsapi classes.
6
+
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import importlib
12
+ import pathlib
13
+ from typing import Any, Optional, TypeAlias, Union
14
+
15
+
16
+ def load_package(package_name: str) -> Optional[Any]:
17
+ """Load a Python package by name, return None if not available."""
18
+ try:
19
+ return importlib.import_module(package_name)
20
+ except ImportError:
21
+ return None
22
+
23
+
24
+ # Load main packages
25
+ rmsapi = load_package("rmsapi")
26
+
27
+
28
+ # Load submodules from the available package
29
+ rmsapi_well_picks = load_package("rmsapi.well_picks")
30
+ rmsapi_jobs = load_package("rmsapi.jobs")
31
+ rmsapi_grids = load_package("rmsapi.grids")
32
+
33
+ try:
34
+ from rmsapi import (
35
+ Project as _RmsProject,
36
+ Surface as _RmsSurface,
37
+ VerticalDomain as _RmsVerticalDomain,
38
+ )
39
+ from rmsapi.grids import Grid3D as _RmsGrid3D
40
+ from rmsapi.jobs import Jobs as _RmsJobs
41
+ from rmsapi.well_picks import (
42
+ WellPick as _RmsWellPick,
43
+ WellPickAttribute as _RmsWellPickAttribute,
44
+ WellPicks as _RmsWellPicks,
45
+ WellPickSet as _RmsWellPickSet,
46
+ )
47
+ except ImportError:
48
+ # Fallback when rmsapi is not available
49
+ _RmsProject = Any # type: ignore[misc]
50
+ _RmsSurface = Any # type: ignore[misc]
51
+ _RmsVerticalDomain = Any # type: ignore[misc]
52
+ _RmsGrid3D = Any # type: ignore[misc]
53
+ _RmsJobs = Any # type: ignore[misc]
54
+ _RmsWellPicks = Any # type: ignore[misc]
55
+ _RmsWellPick = Any # type: ignore[misc]
56
+ _RmsWellPickAttribute = Any # type: ignore[misc]
57
+ _RmsWellPickSet = Any # type: ignore[misc]
58
+
59
+ RmsProjectType: TypeAlias = _RmsProject # type: ignore[misc]
60
+ RmsSurfaceType: TypeAlias = _RmsSurface # type: ignore[misc]
61
+ RmsVerticalDomainType: TypeAlias = _RmsVerticalDomain # type: ignore[misc]
62
+ RmsGrid3DType: TypeAlias = _RmsGrid3D # type: ignore[misc]
63
+ RmsJobsType: TypeAlias = _RmsJobs # type: ignore[misc]
64
+ RmsWellPicksType: TypeAlias = _RmsWellPicks # type: ignore[misc]
65
+ RmsWellPickType: TypeAlias = _RmsWellPick # type: ignore[misc]
66
+ RmsWellPickAttributeType: TypeAlias = _RmsWellPickAttribute # type: ignore[misc]
67
+ RmsWellPickSetType: TypeAlias = _RmsWellPickSet # type: ignore[misc]
68
+
69
+ RmsProjectOrPathType: TypeAlias = Union[str, pathlib.Path, RmsProjectType]