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
@@ -193,7 +193,8 @@ def get_dz(
193
193
  if not flip:
194
194
  result *= -1
195
195
 
196
- result = np.ma.masked_array(result, self._actnumsv == 0 if asmasked else False)
196
+ if asmasked:
197
+ result = np.ma.masked_array(result, self._actnumsv == 0)
197
198
 
198
199
  return GridProperty(
199
200
  ncol=self._ncol,
@@ -305,27 +306,126 @@ def get_bulk_volume(
305
306
  )
306
307
 
307
308
 
309
+ def get_phase_bulk_volumes(
310
+ grid: Grid,
311
+ water_contact: float | GridProperty,
312
+ gas_contact: float | GridProperty,
313
+ boundary: Polygons | None,
314
+ asmasked: bool = True,
315
+ precision: Literal[1, 2, 4] = 2,
316
+ ) -> tuple[GridProperty, GridProperty, GridProperty]:
317
+ """Return the geometric phase cell volume for all cells as three GridProperty object
318
+ namely gas_bulkvol, oil_bulkvol, water_bulkvol."""
319
+ if precision not in (1, 2, 4):
320
+ raise ValueError("The precision key has an invalid entry, use 1, 2, or 4")
321
+
322
+ grid._set_xtgformat2()
323
+
324
+ grid_cpp = grid._get_grid_cpp()
325
+
326
+ prec_cpp = _internal.geometry.HexVolumePrecision.P2
327
+ if precision == 1:
328
+ prec_cpp = _internal.geometry.HexVolumePrecision.P1
329
+ elif precision == 4:
330
+ prec_cpp = _internal.geometry.HexVolumePrecision.P4
331
+
332
+ polygon = None
333
+ if boundary is not None:
334
+ df_polygon = boundary.get_dataframe(copy=False)
335
+ # Extract X, Y, Z coordinates from the first polygon (POLY_ID == 0)
336
+ # assuming single polygon for now
337
+ df_polygon = df_polygon[df_polygon["POLY_ID"] == df_polygon["POLY_ID"].iloc[0]]
338
+ boundary_array = np.stack(
339
+ [
340
+ df_polygon["X_UTME"].values,
341
+ df_polygon["Y_UTMN"].values,
342
+ df_polygon["Z_TVDSS"].values,
343
+ ],
344
+ axis=1,
345
+ )
346
+ polygon = _internal.xyz.Polygon(boundary_array)
347
+
348
+ if isinstance(water_contact, (int, float)):
349
+ water_contact = GridProperty(grid, values=water_contact)
350
+ if isinstance(gas_contact, (int, float)):
351
+ gas_contact = GridProperty(grid, values=gas_contact)
352
+
353
+ assert np.all(water_contact.values >= gas_contact.values), (
354
+ "Water contact is position shallower than gas contact in some cells"
355
+ )
356
+
357
+ gas_volume, oil_volume, water_volume = grid_cpp.get_phase_cell_volumes(
358
+ water_contact.values,
359
+ gas_contact.values,
360
+ polygon,
361
+ prec_cpp,
362
+ asmasked,
363
+ )
364
+ if asmasked:
365
+ gas_volume = np.ma.masked_greater(gas_volume, UNDEF_LIMIT)
366
+ oil_volume = np.ma.masked_greater(oil_volume, UNDEF_LIMIT)
367
+ water_volume = np.ma.masked_greater(water_volume, UNDEF_LIMIT)
368
+
369
+ return (
370
+ GridProperty(
371
+ ncol=grid.ncol,
372
+ nrow=grid.nrow,
373
+ nlay=grid.nlay,
374
+ name="gas_bulkvol",
375
+ values=gas_volume,
376
+ discrete=False,
377
+ ),
378
+ GridProperty(
379
+ ncol=grid.ncol,
380
+ nrow=grid.nrow,
381
+ nlay=grid.nlay,
382
+ name="oil_bulkvol",
383
+ values=oil_volume,
384
+ discrete=False,
385
+ ),
386
+ GridProperty(
387
+ ncol=grid.ncol,
388
+ nrow=grid.nrow,
389
+ nlay=grid.nlay,
390
+ name="water_bulkvol",
391
+ values=water_volume,
392
+ discrete=False,
393
+ ),
394
+ )
395
+
396
+
308
397
  def get_heights_above_ffl(
309
398
  grid: Grid,
310
399
  ffl: GridProperty,
311
400
  option: Literal[
312
- "cell_center_above_ffl", "cell_corners_above_ffl"
401
+ "cell_center_above_ffl",
402
+ "cell_corners_above_ffl",
403
+ "truncated_cell_corners_above_ffl",
313
404
  ] = "cell_center_above_ffl",
314
405
  ) -> tuple[GridProperty, GridProperty, GridProperty]:
315
406
  """Compute delta heights for cell top, bottom and midpoints above a given level."""
316
407
 
317
- valid_options = ("cell_center_above_ffl", "cell_corners_above_ffl")
408
+ valid_options = (
409
+ "cell_center_above_ffl",
410
+ "cell_corners_above_ffl",
411
+ "truncated_cell_corners_above_ffl",
412
+ )
318
413
  if option not in valid_options:
319
414
  raise ValueError(
320
415
  f"The option key <{option}> is invalid, must be one of {valid_options}"
321
416
  )
417
+ if option == "cell_center_above_ffl":
418
+ option_flag = _internal.grid3d.HeightAboveFFLOption.CellCenter
419
+ elif option == "cell_corners_above_ffl":
420
+ option_flag = _internal.grid3d.HeightAboveFFLOption.CellCorners
421
+ else:
422
+ option_flag = _internal.grid3d.HeightAboveFFLOption.TruncatedCellCorners
322
423
 
323
424
  grid._set_xtgformat2()
324
425
 
325
426
  grid_cpp = grid._get_grid_cpp()
326
427
  htop_arr, hbot_arr, hmid_arr = grid_cpp.get_height_above_ffl(
327
- ffl.values.ravel(),
328
- 1 if option == "cell_center_above_ffl" else 2,
428
+ ffl.values.ravel(), option_flag
329
429
  )
330
430
 
331
431
  htop = GridProperty(
@@ -1053,13 +1153,18 @@ def inactivate_inside(
1053
1153
  raise RuntimeError("Problems with one or more polygons. Not closed?")
1054
1154
 
1055
1155
 
1056
- def collapse_inactive_cells(self: Grid) -> None:
1156
+ def collapse_inactive_cells(self: Grid, internal: bool = True) -> None:
1057
1157
  """Collapse inactive cells."""
1058
- self._set_xtgformat1()
1158
+ logger.debug("Collapsing inactive cells...")
1159
+ self._set_xtgformat2()
1059
1160
 
1060
- _cxtgeo.grd3d_collapse_inact(
1061
- self.ncol, self.nrow, self.nlay, self._zcornsv, self._actnumsv
1062
- )
1161
+ grid_cpp = _internal.grid3d.Grid(self)
1162
+ new_zcornsv = grid_cpp.collapse_inactive_cells(collapse_internal=internal)
1163
+
1164
+ if new_zcornsv is not None:
1165
+ self._zcornsv = new_zcornsv
1166
+
1167
+ logger.debug("Collapsing inactive cells done")
1063
1168
 
1064
1169
 
1065
1170
  def copy(self: Grid) -> Grid:
@@ -1242,85 +1347,86 @@ def reduce_to_one_layer(self: Grid) -> None:
1242
1347
  self._subgrids = None
1243
1348
 
1244
1349
 
1245
- def translate_coordinates(
1246
- self: Grid,
1247
- translate: tuple[float, float, float] = (0.0, 0.0, 0.0),
1248
- flip: tuple[int, int, int] = (1, 1, 1),
1350
+ def reverse_row_axis(
1351
+ self: Grid, ijk_handedness: Literal["left", "right"] | None = None
1249
1352
  ) -> None:
1250
- """Translate grid coordinates."""
1251
- self._set_xtgformat1()
1353
+ """Flip the row-axis for xtgformat=2 grid arrays.
1252
1354
 
1253
- tx, ty, tz = translate
1254
- fx, fy, fz = flip
1355
+ This reverses the J-direction (rows) by flipping along axis 1 for both
1356
+ coordsv and zcornsv arrays, and also handles the corner ordering within
1357
+ each pillar to maintain proper geometry.
1358
+ """
1359
+ if ijk_handedness == self.ijk_handedness:
1360
+ return
1255
1361
 
1256
- ier = _cxtgeo.grd3d_translate(
1257
- self._ncol,
1258
- self._nrow,
1259
- self._nlay,
1260
- fx,
1261
- fy,
1262
- fz,
1263
- tx,
1264
- ty,
1265
- tz,
1266
- self._coordsv,
1267
- self._zcornsv,
1268
- )
1269
- if ier != 0:
1270
- raise RuntimeError(f"Something went wrong in translate, code: {ier}")
1362
+ self._set_xtgformat2()
1271
1363
 
1272
- logger.info("Translation of coords done")
1364
+ # Flip coordsv along the row axis (axis 1) and make contiguous with copy()
1365
+ self._coordsv = np.flip(self._coordsv, axis=1).copy()
1273
1366
 
1367
+ # For zcornsv, we need to flip along row axis and also swap corner ordering
1368
+ # Original corner order: SW, SE, NW, NE (indices 0,1,2,3)
1369
+ # After row flip: NW, NE, SW, SE (should become indices 0,1,2,3)
1370
+ # So we need to rearrange: [2,3,0,1]
1371
+ zcorns_flipped = np.flip(self._zcornsv, axis=1) # Flip along row axis
1372
+ self._zcornsv = zcorns_flipped[:, :, :, [2, 3, 0, 1]].copy() # Reorder corners
1274
1373
 
1275
- def reverse_row_axis(
1276
- self: Grid, ijk_handedness: Literal["left", "right"] | None = None
1277
- ) -> None:
1278
- """Reverse rows (aka flip) for geometry and assosiated properties."""
1279
- if ijk_handedness == self.ijk_handedness:
1280
- return
1374
+ # Also flip actnum along row axis
1375
+ self._actnumsv = np.flip(self._actnumsv, axis=1).copy()
1281
1376
 
1282
- # update the handedness
1283
- if ijk_handedness is None:
1284
- self._ijk_handedness = estimate_handedness(self)
1377
+ # Update handedness
1378
+ if self._ijk_handedness == "left":
1379
+ self._ijk_handedness = "right"
1380
+ else:
1381
+ self._ijk_handedness = "left"
1285
1382
 
1286
- original_handedness = self._ijk_handedness
1287
- original_xtgformat = self._xtgformat
1383
+ # Handle properties if they exist
1384
+ if self._props and self._props.props:
1385
+ for prop in self._props.props:
1386
+ prop.values = np.flip(prop.values, axis=1).copy()
1288
1387
 
1289
- self._set_xtgformat1()
1388
+ logger.info("Reversing of row axis done")
1290
1389
 
1291
- ier = _cxtgeo.grd3d_reverse_jrows(
1292
- self._ncol,
1293
- self._nrow,
1294
- self._nlay,
1295
- self._coordsv.ravel(),
1296
- self._zcornsv.ravel(),
1297
- self._actnumsv.ravel(),
1298
- )
1299
1390
 
1300
- if ier != 0:
1301
- raise RuntimeError(f"Something went wrong in jswapping, code: {ier}")
1391
+ def reverse_column_axis(
1392
+ self: Grid, ijk_handedness: Literal["left", "right"] | None = None
1393
+ ) -> None:
1394
+ """Flip the column-axis for xtgformat=2 grid arrays.
1302
1395
 
1303
- if self._props is None:
1396
+ This reverses the I-direction (columns) by flipping along axis 0 for both
1397
+ coordsv and zcornsv arrays, and also handles the corner ordering within
1398
+ each pillar to maintain proper geometry.
1399
+ """
1400
+ if ijk_handedness == self.ijk_handedness:
1304
1401
  return
1305
1402
 
1306
- # do it for properties
1307
- if self._props.props:
1308
- for prp in self._props.props:
1309
- prp.values = prp.values[:, ::-1, :]
1403
+ self._set_xtgformat2()
1404
+
1405
+ # Flip coordsv along the column axis (axis 0) and make contiguous with copy()
1406
+ self._coordsv = np.flip(self._coordsv, axis=0).copy()
1310
1407
 
1311
- # update the handedness
1312
- if ijk_handedness is None:
1313
- self._ijk_handedness = estimate_handedness(self)
1408
+ # For zcornsv, we need to flip along column axis and also swap corner ordering
1409
+ # Original corner order: SW, SE, NW, NE (indices 0,1,2,3)
1410
+ # After column flip: SE, SW, NE, NW (should become indices 0,1,2,3)
1411
+ # So we need to rearrange: [1,0,3,2]
1412
+ zcorns_flipped = np.flip(self._zcornsv, axis=0) # Flip along column axis
1413
+ self._zcornsv = zcorns_flipped[:, :, :, [1, 0, 3, 2]].copy() # Reorder corners
1314
1414
 
1315
- if original_handedness == "left":
1415
+ # Also flip actnum along column axis
1416
+ self._actnumsv = np.flip(self._actnumsv, axis=0).copy()
1417
+
1418
+ # Update handedness
1419
+ if self._ijk_handedness == "left":
1316
1420
  self._ijk_handedness = "right"
1317
1421
  else:
1318
1422
  self._ijk_handedness = "left"
1319
1423
 
1320
- if original_xtgformat == 2:
1321
- self._set_xtgformat2()
1424
+ # Handle properties if they exist
1425
+ if self._props and self._props.props:
1426
+ for prop in self._props.props:
1427
+ prop.values = np.flip(prop.values, axis=0).copy()
1322
1428
 
1323
- logger.info("Reversing of rows done")
1429
+ logger.info("Reversing of column axis done")
1324
1430
 
1325
1431
 
1326
1432
  def get_adjacent_cells(
@@ -1383,7 +1489,10 @@ def estimate_design(
1383
1489
  """Estimate (guess) (sub)grid design by examing DZ in median thickness column."""
1384
1490
  actv = self.get_actnum().values
1385
1491
 
1386
- dzv = self.get_dz(asmasked=False).values
1492
+ dzv_raw = self.get_dz(asmasked=False).values
1493
+ # Although asmasked is False the array values will still be a masked numpy
1494
+ # Need to convert to an ordinary numpy to avoid warnings later
1495
+ dzv = np.ma.filled(dzv_raw, fill_value=0.0)
1387
1496
 
1388
1497
  # treat inactive thicknesses as zero
1389
1498
  dzv[actv == 0] = 0.0
@@ -1400,6 +1509,11 @@ def estimate_design(
1400
1509
  # find cumulative thickness as a 2D array
1401
1510
  dzcum: np.ndarray = np.sum(dzv, axis=2, keepdims=False)
1402
1511
 
1512
+ # Ensure dzcum is a regular numpy array to avoid warnings
1513
+ if isinstance(dzcum, np.ma.MaskedArray):
1514
+ dzcum = np.ma.filled(dzcum, fill_value=0.0)
1515
+ dzcum = np.asarray(dzcum)
1516
+
1403
1517
  # find the average thickness for nonzero thicknesses
1404
1518
  dzcum2 = dzcum.copy()
1405
1519
  dzcum2[dzcum == 0.0] = np.nan
@@ -49,10 +49,11 @@ def export_roff(
49
49
  )
50
50
 
51
51
 
52
- def export_grdecl(grid: Grid, gfile: FileLike, mode: int) -> None:
53
- """Export grid to Eclipse GRDECL format (ascii, mode=1) or binary (mode=0)."""
52
+ def export_grdecl(grid: Grid, gfile: FileLike, mode: int, rle: bool = False) -> None:
53
+ """Export grid to Eclipse GRDECL format (ascii, mode=1) or binary (mode=0).
54
+ Optionally for ASCII GRDECL, run-length encoding RLE can be applied"""
54
55
  fileformat = "grdecl" if mode == 1 else "bgrdecl"
55
- GrdeclGrid.from_xtgeo_grid(grid).to_file(gfile, fileformat=fileformat)
56
+ GrdeclGrid.from_xtgeo_grid(grid).to_file(gfile, fileformat=fileformat, rle=rle)
56
57
 
57
58
 
58
59
  def export_egrid(grid: Grid, gfile: FileLike) -> None:
@@ -4,9 +4,8 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  import numpy as np
6
6
 
7
- from xtgeo import _cxtgeo
7
+ import xtgeo._internal as _internal # type: ignore
8
8
  from xtgeo.common import null_logger
9
- from xtgeo.common.constants import UNDEF_INT
10
9
 
11
10
  logger = null_logger(__name__)
12
11
 
@@ -23,44 +22,29 @@ def make_hybridgrid(
23
22
  region_number: int | None = None,
24
23
  ) -> None:
25
24
  """Make hybrid grid."""
26
- self._set_xtgformat1()
25
+ self._set_xtgformat2()
27
26
 
28
27
  newnlay = self.nlay * 2 + nhdiv
29
- newnzcorn = self.ncol * self.nrow * (newnlay + 1) * 4
30
- newnactnum = self.ncol * self.nrow * newnlay
31
28
 
32
- # initialize
33
- hyb_zcornsv = np.zeros(newnzcorn, dtype=np.float64)
34
- hyb_actnumsv = np.zeros(newnactnum, dtype=np.int32)
35
-
36
- if region is None:
37
- region_number = -1
38
- rvalues = np.ones(1, dtype=np.int32)
39
- else:
40
- rvalues = np.ma.filled(region.values, fill_value=UNDEF_INT)
41
- rvalues = rvalues.ravel()
42
-
43
- _cxtgeo.grd3d_convert_hybrid(
44
- self.ncol,
45
- self.nrow,
46
- self.nlay,
47
- self._coordsv,
48
- self._zcornsv,
49
- self._actnumsv,
50
- newnlay,
51
- hyb_zcornsv,
52
- hyb_actnumsv,
29
+ grid3d_cpp = _internal.grid3d.Grid(self)
30
+ region_array = (
31
+ region.values.astype(np.int32)
32
+ if region
33
+ else np.empty((0, 0, 0), dtype=np.int32)
34
+ )
35
+ hyb_zcornsv, hyb_actnumsv = grid3d_cpp.convert_to_hybrid_grid(
53
36
  toplevel,
54
37
  bottomlevel,
55
38
  nhdiv,
56
- rvalues,
57
- region_number,
39
+ region_array,
40
+ int(region_number) if region_number is not None else -1,
58
41
  )
59
42
 
60
43
  # when a hybridgrid is made, the current subrid settings lose relevance, hence
61
44
  # it is forced set to None
62
45
  self.subgrids = None
63
46
 
47
+ # update the grid in place
64
48
  self._nlay = newnlay
65
49
  self._zcornsv = hyb_zcornsv
66
- self._actnumsv = hyb_actnumsv
50
+ self._actnumsv = hyb_actnumsv.astype(np.int32)
@@ -243,7 +243,7 @@ def refine_vertically(
243
243
  # update instance:
244
244
  self._nlay = newnlay
245
245
  self._zcornsv = ref_zcornsv
246
- self._actnumsv = ref_actnumsv
246
+ self._actnumsv = ref_actnumsv.astype(np.int32)
247
247
 
248
248
  if self.subgrids is None or len(self.subgrids) <= 1:
249
249
  self.subgrids = None
@@ -0,0 +1,154 @@
1
+ """Private module for translating coordiantes plus flipping and rotation."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import math
6
+ from typing import TYPE_CHECKING
7
+
8
+ import numpy as np
9
+
10
+ if TYPE_CHECKING:
11
+ from xtgeo.grid3d import Grid
12
+
13
+
14
+ def _rotate_grid3d(
15
+ new_grd: Grid, add_rotation: float, rotation_xy: tuple[float, float] | None = None
16
+ ) -> None:
17
+ """Rotate the grid around the cell 1,1,1 corner, or some other coordinate."""
18
+
19
+ # Convert angle to radians
20
+ angle_rad = math.radians(add_rotation)
21
+
22
+ # Create rotation matrix coefficients
23
+ cos_theta = math.cos(angle_rad)
24
+ sin_theta = math.sin(angle_rad)
25
+
26
+ # extract
27
+ coord_array = new_grd._coordsv.copy()
28
+ rotated_coords = coord_array.copy()
29
+
30
+ if rotation_xy is None:
31
+ x0, y0, _ = new_grd._coordsv[0, 0, :3]
32
+ else:
33
+ x0, y0 = rotation_xy
34
+
35
+ x_coords = coord_array[:, :, [0, 3]].copy() # x1 and x2
36
+ y_coords = coord_array[:, :, [1, 4]].copy() # y1 and y2
37
+
38
+ # Translate to origin
39
+ x_translated = x_coords - x0
40
+ y_translated = y_coords - y0
41
+
42
+ # Rotate using rotation matrix
43
+ x_rotated = x_translated * cos_theta - y_translated * sin_theta
44
+ y_rotated = x_translated * sin_theta + y_translated * cos_theta
45
+
46
+ # Translate back and assign
47
+ rotated_coords[:, :, [0, 3]] = x_rotated + x0
48
+ rotated_coords[:, :, [1, 4]] = y_rotated + y0
49
+
50
+ # Z coordinates remain unchanged (indices 2 and 5)
51
+ new_grd._coordsv = rotated_coords.copy()
52
+
53
+
54
+ def _flip_vertically(grid: Grid) -> None:
55
+ """Flip the grid vertically."""
56
+
57
+ # find average depth of corners
58
+ avg_z = grid._zcornsv.mean()
59
+
60
+ grid._zcornsv = grid._zcornsv[:, :, ::-1, :]
61
+ grid._zcornsv *= -1
62
+
63
+ # find the new average and compute the difference for shifting
64
+ new_avg_z = grid._zcornsv.mean()
65
+ diff = avg_z - new_avg_z
66
+ grid._zcornsv += diff
67
+
68
+ grid._actnumsv = np.flip(grid._actnumsv, axis=2).copy()
69
+
70
+ # Handle properties if they exist
71
+ if grid._props and grid._props.props:
72
+ for prop in grid._props.props:
73
+ prop.values = np.flip(prop.values, axis=2).copy()
74
+
75
+ # When we flip the grid, the subgrid info must also be flipped
76
+ subgrids = grid.get_subgrids()
77
+ if subgrids:
78
+ reverted = dict(reversed(subgrids.items()))
79
+ grid.set_subgrids(reverted)
80
+
81
+ if grid._ijk_handedness == "left":
82
+ grid._ijk_handedness = "right"
83
+ else:
84
+ grid._ijk_handedness = "left"
85
+
86
+
87
+ def _translate_geometry(grid: Grid, translate: tuple[float, float, float]) -> None:
88
+ grid._coordsv[:, :, 0] += translate[0]
89
+ grid._coordsv[:, :, 1] += translate[1]
90
+ grid._coordsv[:, :, 2] += translate[2]
91
+ grid._coordsv[:, :, 3] += translate[0]
92
+ grid._coordsv[:, :, 4] += translate[1]
93
+ grid._coordsv[:, :, 5] += translate[2]
94
+
95
+ grid._zcornsv += translate[2]
96
+
97
+
98
+ def _transfer_to_target(grid: Grid, target: tuple[float, float, float]) -> None:
99
+ # get the coordinates for the active cells
100
+ x, y, z = grid.get_xyz(asmasked=True)
101
+
102
+ # set the grid center to the desired target coordinates
103
+ shift_x = target[0] - x.values.mean()
104
+ shift_y = target[1] - y.values.mean()
105
+ shift_z = target[2] - z.values.mean()
106
+
107
+ _translate_geometry(grid, (shift_x, shift_y, shift_z))
108
+
109
+
110
+ def translate_coordinates(
111
+ self: Grid,
112
+ translate: tuple[float, float, float] = (0.0, 0.0, 0.0),
113
+ flip: tuple[int, int, int] = (1, 1, 1),
114
+ add_rotation: float = 0.0,
115
+ rotation_point: tuple[float, float] | None = None,
116
+ target_coordinates: tuple[float, float, float] | None = None,
117
+ ) -> None:
118
+ """Rotate, flip grid and translate grid coordinates.
119
+
120
+ This should be done in a sequence like this
121
+ 1) Add rotation (with value ``add_rotation``) to rotate the grid counter-clockwise
122
+ 2) Flip the grid
123
+ 3a) translate the grid by adding (x, y, z), OR
124
+ 3b) set a target location the grid centre.
125
+
126
+ """
127
+ self._set_xtgformat2()
128
+
129
+ if abs(add_rotation) > 1e-10: # Skip rotation if angle is essentially zero
130
+ _rotate_grid3d(self, add_rotation, rotation_xy=rotation_point)
131
+
132
+ if flip[2] == -1:
133
+ _flip_vertically(self)
134
+
135
+ if flip[0] == -1:
136
+ self.reverse_column_axis()
137
+
138
+ if flip[1] == -1:
139
+ self.reverse_row_axis()
140
+
141
+ use_translate = False
142
+ if not all(abs(x) < 1e-10 for x in translate):
143
+ _translate_geometry(self, translate)
144
+ use_translate = True
145
+
146
+ if target_coordinates and use_translate:
147
+ raise ValueError(
148
+ "Using both key 'translate' and key 'target_coordinates' is not allowed. "
149
+ "Use either."
150
+ )
151
+
152
+ if target_coordinates:
153
+ # transfer the grid's geometrical centre to a given location
154
+ _transfer_to_target(self, target_coordinates)
@@ -17,6 +17,7 @@ from xtgeo.common.exceptions import InvalidFileFormatError
17
17
  from xtgeo.common.log import null_logger
18
18
  from xtgeo.io._file import FileFormat, FileWrapper
19
19
 
20
+ from ._grdecl_format import run_length_encoding
20
21
  from ._roff_parameter import RoffParameter
21
22
 
22
23
  if TYPE_CHECKING:
@@ -37,6 +38,7 @@ def to_file(
37
38
  append: bool = False,
38
39
  dtype: type[np.float32] | type[np.float64] | type[np.int32] | None = None,
39
40
  fmt: str | None = None,
41
+ rle: bool = False,
40
42
  ) -> None:
41
43
  """Export the grid property to file."""
42
44
  logger.debug("Export property to file %s as %s", pfile, fformat)
@@ -62,6 +64,7 @@ def to_file(
62
64
  append=append,
63
65
  binary=binary,
64
66
  fmt=fmt,
67
+ rle=rle,
65
68
  )
66
69
  elif fformat == "xtgcpprop":
67
70
  _export_xtgcpprop(gridprop, xtg_file.name)
@@ -104,6 +107,7 @@ def _export_grdecl(
104
107
  append: bool = False,
105
108
  binary: bool = False,
106
109
  fmt: str | None = None,
110
+ rle: bool = False,
107
111
  ) -> None:
108
112
  """Export ascii or binary GRDECL"""
109
113
  vals: npt.NDArray = gridprop.values.ravel(order="F")
@@ -132,18 +136,36 @@ def _export_grdecl(
132
136
  else:
133
137
  # Always the case when not binary
134
138
  assert isinstance(fout, io.TextIOWrapper)
135
- fout.write(name)
136
- fout.write("\n")
137
- for i, v in enumerate(vals):
138
- fout.write(" ")
139
- if fmt:
140
- fout.write(fmt % v)
141
- elif gridprop.isdiscrete:
142
- fout.write(str(v))
143
- else:
144
- fout.write(f"{v:3e}")
145
- if i % 6 == 5:
146
- fout.write("\n")
139
+ fout.write(f"{name}\n")
140
+ if rle:
141
+ counts, unique_values = run_length_encoding(vals)
142
+ for i, (count, unique_value) in enumerate(zip(counts, unique_values)):
143
+ fout.write(" ")
144
+ if fmt:
145
+ formatted_value = fmt % unique_value
146
+ elif gridprop.isdiscrete:
147
+ formatted_value = str(unique_value)
148
+ else:
149
+ formatted_value = f"{unique_value:3e}"
150
+ if count > 1:
151
+ # Try to preserve the alignment
152
+ text_width = len(formatted_value)
153
+ new_text = f"{count}*{formatted_value.lstrip()}"
154
+ formatted_value = " " * (text_width - len(new_text)) + new_text
155
+ fout.write(formatted_value)
156
+ if i % 6 == 5:
157
+ fout.write("\n")
158
+ else:
159
+ for i, v in enumerate(vals):
160
+ fout.write(" ")
161
+ if fmt:
162
+ fout.write(fmt % v)
163
+ elif gridprop.isdiscrete:
164
+ fout.write(str(v))
165
+ else:
166
+ fout.write(f"{v:3e}")
167
+ if i % 6 == 5:
168
+ fout.write("\n")
147
169
  fout.write(" /\n")
148
170
 
149
171