xtgeo 4.14.0__cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.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 (658) hide show
  1. cxtgeo.py +558 -0
  2. cxtgeoPYTHON_wrap.c +19537 -0
  3. xtgeo/__init__.py +248 -0
  4. xtgeo/_cxtgeo.cpython-311-x86_64-linux-gnu.so +0 -0
  5. xtgeo/_internal.cpython-311-x86_64-linux-gnu.so +0 -0
  6. xtgeo/common/__init__.py +19 -0
  7. xtgeo/common/_angles.py +29 -0
  8. xtgeo/common/_xyz_enum.py +50 -0
  9. xtgeo/common/calc.py +396 -0
  10. xtgeo/common/constants.py +30 -0
  11. xtgeo/common/exceptions.py +42 -0
  12. xtgeo/common/log.py +93 -0
  13. xtgeo/common/sys.py +166 -0
  14. xtgeo/common/types.py +18 -0
  15. xtgeo/common/version.py +34 -0
  16. xtgeo/common/xtgeo_dialog.py +604 -0
  17. xtgeo/cube/__init__.py +9 -0
  18. xtgeo/cube/_cube_export.py +214 -0
  19. xtgeo/cube/_cube_import.py +532 -0
  20. xtgeo/cube/_cube_roxapi.py +180 -0
  21. xtgeo/cube/_cube_utils.py +287 -0
  22. xtgeo/cube/_cube_window_attributes.py +273 -0
  23. xtgeo/cube/cube1.py +1023 -0
  24. xtgeo/grid3d/__init__.py +15 -0
  25. xtgeo/grid3d/_ecl_grid.py +778 -0
  26. xtgeo/grid3d/_ecl_inte_head.py +152 -0
  27. xtgeo/grid3d/_ecl_logi_head.py +71 -0
  28. xtgeo/grid3d/_ecl_output_file.py +81 -0
  29. xtgeo/grid3d/_egrid.py +1004 -0
  30. xtgeo/grid3d/_find_gridprop_in_eclrun.py +625 -0
  31. xtgeo/grid3d/_grdecl_format.py +309 -0
  32. xtgeo/grid3d/_grdecl_grid.py +400 -0
  33. xtgeo/grid3d/_grid3d.py +29 -0
  34. xtgeo/grid3d/_grid3d_fence.py +284 -0
  35. xtgeo/grid3d/_grid3d_utils.py +228 -0
  36. xtgeo/grid3d/_grid_boundary.py +76 -0
  37. xtgeo/grid3d/_grid_etc1.py +1683 -0
  38. xtgeo/grid3d/_grid_export.py +222 -0
  39. xtgeo/grid3d/_grid_hybrid.py +50 -0
  40. xtgeo/grid3d/_grid_import.py +79 -0
  41. xtgeo/grid3d/_grid_import_ecl.py +101 -0
  42. xtgeo/grid3d/_grid_import_roff.py +135 -0
  43. xtgeo/grid3d/_grid_import_xtgcpgeom.py +375 -0
  44. xtgeo/grid3d/_grid_refine.py +258 -0
  45. xtgeo/grid3d/_grid_roxapi.py +292 -0
  46. xtgeo/grid3d/_grid_translate_coords.py +154 -0
  47. xtgeo/grid3d/_grid_wellzone.py +165 -0
  48. xtgeo/grid3d/_gridprop_export.py +202 -0
  49. xtgeo/grid3d/_gridprop_import_eclrun.py +164 -0
  50. xtgeo/grid3d/_gridprop_import_grdecl.py +130 -0
  51. xtgeo/grid3d/_gridprop_import_roff.py +52 -0
  52. xtgeo/grid3d/_gridprop_import_xtgcpprop.py +168 -0
  53. xtgeo/grid3d/_gridprop_lowlevel.py +171 -0
  54. xtgeo/grid3d/_gridprop_op1.py +272 -0
  55. xtgeo/grid3d/_gridprop_roxapi.py +301 -0
  56. xtgeo/grid3d/_gridprop_value_init.py +140 -0
  57. xtgeo/grid3d/_gridprops_import_eclrun.py +344 -0
  58. xtgeo/grid3d/_gridprops_import_roff.py +83 -0
  59. xtgeo/grid3d/_roff_grid.py +470 -0
  60. xtgeo/grid3d/_roff_parameter.py +303 -0
  61. xtgeo/grid3d/grid.py +3010 -0
  62. xtgeo/grid3d/grid_properties.py +699 -0
  63. xtgeo/grid3d/grid_property.py +1313 -0
  64. xtgeo/grid3d/types.py +15 -0
  65. xtgeo/include/eigen3/Eigen/Cholesky +45 -0
  66. xtgeo/include/eigen3/Eigen/CholmodSupport +48 -0
  67. xtgeo/include/eigen3/Eigen/Core +384 -0
  68. xtgeo/include/eigen3/Eigen/Dense +7 -0
  69. xtgeo/include/eigen3/Eigen/Eigen +2 -0
  70. xtgeo/include/eigen3/Eigen/Eigenvalues +60 -0
  71. xtgeo/include/eigen3/Eigen/Geometry +59 -0
  72. xtgeo/include/eigen3/Eigen/Householder +29 -0
  73. xtgeo/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  74. xtgeo/include/eigen3/Eigen/Jacobi +32 -0
  75. xtgeo/include/eigen3/Eigen/KLUSupport +41 -0
  76. xtgeo/include/eigen3/Eigen/LU +47 -0
  77. xtgeo/include/eigen3/Eigen/MetisSupport +35 -0
  78. xtgeo/include/eigen3/Eigen/OrderingMethods +70 -0
  79. xtgeo/include/eigen3/Eigen/PaStiXSupport +49 -0
  80. xtgeo/include/eigen3/Eigen/PardisoSupport +35 -0
  81. xtgeo/include/eigen3/Eigen/QR +50 -0
  82. xtgeo/include/eigen3/Eigen/QtAlignedMalloc +39 -0
  83. xtgeo/include/eigen3/Eigen/SPQRSupport +34 -0
  84. xtgeo/include/eigen3/Eigen/SVD +50 -0
  85. xtgeo/include/eigen3/Eigen/Sparse +34 -0
  86. xtgeo/include/eigen3/Eigen/SparseCholesky +37 -0
  87. xtgeo/include/eigen3/Eigen/SparseCore +69 -0
  88. xtgeo/include/eigen3/Eigen/SparseLU +50 -0
  89. xtgeo/include/eigen3/Eigen/SparseQR +36 -0
  90. xtgeo/include/eigen3/Eigen/StdDeque +27 -0
  91. xtgeo/include/eigen3/Eigen/StdList +26 -0
  92. xtgeo/include/eigen3/Eigen/StdVector +27 -0
  93. xtgeo/include/eigen3/Eigen/SuperLUSupport +64 -0
  94. xtgeo/include/eigen3/Eigen/UmfPackSupport +40 -0
  95. xtgeo/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  96. xtgeo/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  97. xtgeo/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  98. xtgeo/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  99. xtgeo/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  100. xtgeo/include/eigen3/Eigen/src/Core/Array.h +417 -0
  101. xtgeo/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  102. xtgeo/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  103. xtgeo/include/eigen3/Eigen/src/Core/Assign.h +90 -0
  104. xtgeo/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  105. xtgeo/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  106. xtgeo/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  107. xtgeo/include/eigen3/Eigen/src/Core/Block.h +448 -0
  108. xtgeo/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  109. xtgeo/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  110. xtgeo/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  111. xtgeo/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  112. xtgeo/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  113. xtgeo/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  114. xtgeo/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  115. xtgeo/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  116. xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  117. xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  118. xtgeo/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  119. xtgeo/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  120. xtgeo/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  121. xtgeo/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  122. xtgeo/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  123. xtgeo/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  124. xtgeo/include/eigen3/Eigen/src/Core/Dot.h +318 -0
  125. xtgeo/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  126. xtgeo/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  127. xtgeo/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  128. xtgeo/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  129. xtgeo/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  130. xtgeo/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  131. xtgeo/include/eigen3/Eigen/src/Core/IO.h +258 -0
  132. xtgeo/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  133. xtgeo/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  134. xtgeo/include/eigen3/Eigen/src/Core/Map.h +171 -0
  135. xtgeo/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  136. xtgeo/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  137. xtgeo/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  138. xtgeo/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  139. xtgeo/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  140. xtgeo/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  141. xtgeo/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  142. xtgeo/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  143. xtgeo/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  144. xtgeo/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  145. xtgeo/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  146. xtgeo/include/eigen3/Eigen/src/Core/Product.h +191 -0
  147. xtgeo/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  148. xtgeo/include/eigen3/Eigen/src/Core/Random.h +218 -0
  149. xtgeo/include/eigen3/Eigen/src/Core/Redux.h +515 -0
  150. xtgeo/include/eigen3/Eigen/src/Core/Ref.h +381 -0
  151. xtgeo/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  152. xtgeo/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  153. xtgeo/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  154. xtgeo/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  155. xtgeo/include/eigen3/Eigen/src/Core/Select.h +164 -0
  156. xtgeo/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  157. xtgeo/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  158. xtgeo/include/eigen3/Eigen/src/Core/Solve.h +188 -0
  159. xtgeo/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  160. xtgeo/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  161. xtgeo/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  162. xtgeo/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  163. xtgeo/include/eigen3/Eigen/src/Core/Stride.h +116 -0
  164. xtgeo/include/eigen3/Eigen/src/Core/Swap.h +68 -0
  165. xtgeo/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  166. xtgeo/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  167. xtgeo/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  168. xtgeo/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  169. xtgeo/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  170. xtgeo/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  171. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  172. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  173. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  174. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  175. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  176. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  177. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  178. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  179. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  180. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  181. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  182. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  183. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  184. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  185. xtgeo/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  186. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  187. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  188. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  189. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  190. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  191. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  192. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  193. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  194. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  195. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  196. xtgeo/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  197. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  198. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  199. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  200. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  201. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  202. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  203. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  204. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  205. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  206. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  207. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  208. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  209. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  210. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  211. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  212. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  213. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  214. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  215. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  216. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  217. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  218. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  219. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  220. xtgeo/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  221. xtgeo/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  222. xtgeo/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  223. xtgeo/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  224. xtgeo/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  225. xtgeo/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  226. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  227. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  228. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  229. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  230. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  231. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  232. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  233. xtgeo/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  234. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  235. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  236. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  237. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  238. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  239. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  240. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  241. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  242. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  243. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  244. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  245. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  246. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  247. xtgeo/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  248. xtgeo/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  249. xtgeo/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  250. xtgeo/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  251. xtgeo/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  252. xtgeo/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  253. xtgeo/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  254. xtgeo/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  255. xtgeo/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  256. xtgeo/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  257. xtgeo/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  258. xtgeo/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  259. xtgeo/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  260. xtgeo/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  261. xtgeo/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  262. xtgeo/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  263. xtgeo/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  264. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  265. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  266. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  267. xtgeo/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  268. xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  269. xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  270. xtgeo/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  271. xtgeo/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  272. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  273. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  274. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  275. xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  276. xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  277. xtgeo/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  278. xtgeo/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  279. xtgeo/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  280. xtgeo/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  281. xtgeo/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  282. xtgeo/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  283. xtgeo/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  284. xtgeo/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  285. xtgeo/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  286. xtgeo/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  287. xtgeo/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  288. xtgeo/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  289. xtgeo/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  290. xtgeo/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  291. xtgeo/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  292. xtgeo/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  293. xtgeo/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  294. xtgeo/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  295. xtgeo/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  296. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  297. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  298. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  299. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  300. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  301. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  302. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  303. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  304. xtgeo/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  305. xtgeo/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  306. xtgeo/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  307. xtgeo/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  308. xtgeo/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  309. xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  310. xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  311. xtgeo/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  312. xtgeo/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  313. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  314. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  315. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  316. xtgeo/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  317. xtgeo/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  318. xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  319. xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  320. xtgeo/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  321. xtgeo/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  322. xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  323. xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  324. xtgeo/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  325. xtgeo/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  326. xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  327. xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  328. xtgeo/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  329. xtgeo/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  330. xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  331. xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  332. xtgeo/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  333. xtgeo/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  334. xtgeo/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  335. xtgeo/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  336. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  337. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  338. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  339. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  340. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  341. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  342. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  343. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  344. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  345. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  346. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  347. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  348. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  349. xtgeo/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  350. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  351. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  352. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  353. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  354. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  355. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  356. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  357. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  358. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  359. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  360. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  361. xtgeo/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  362. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  363. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  364. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  365. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  366. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  367. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  368. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  369. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  370. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  371. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  372. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  373. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  374. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  375. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  376. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  377. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  378. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  379. xtgeo/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  380. xtgeo/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  381. xtgeo/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  382. xtgeo/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  383. xtgeo/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  384. xtgeo/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  385. xtgeo/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  386. xtgeo/include/eigen3/Eigen/src/misc/Image.h +82 -0
  387. xtgeo/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  388. xtgeo/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  389. xtgeo/include/eigen3/Eigen/src/misc/blas.h +440 -0
  390. xtgeo/include/eigen3/Eigen/src/misc/lapack.h +152 -0
  391. xtgeo/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  392. xtgeo/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  393. xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  394. xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  395. xtgeo/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  396. xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  397. xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  398. xtgeo/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  399. xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  400. xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  401. xtgeo/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  402. xtgeo/include/eigen3/signature_of_eigen3_matrix_library +1 -0
  403. xtgeo/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  404. xtgeo/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  405. xtgeo/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  406. xtgeo/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  407. xtgeo/include/eigen3/unsupported/Eigen/BVH +95 -0
  408. xtgeo/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  409. xtgeo/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  410. xtgeo/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  411. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  412. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  413. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  414. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  415. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  416. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  417. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  418. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  419. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  420. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  421. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  422. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  423. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  424. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  425. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  426. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  427. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  428. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  429. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  430. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  431. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  432. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  433. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  434. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  435. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  436. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  437. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  438. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  439. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  440. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  441. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  442. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  443. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  444. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  445. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  446. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  447. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  448. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  449. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  450. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  451. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  452. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  453. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  454. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  455. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  456. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  457. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  458. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  459. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  460. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  461. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  462. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  463. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  464. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  465. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  466. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  467. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  468. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  469. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  470. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  471. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  472. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  473. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  474. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  475. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  476. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  477. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  478. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  479. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  480. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  481. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  482. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  483. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  484. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  485. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  486. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  487. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  488. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  489. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  490. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  491. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  492. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  493. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  494. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  495. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  496. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  497. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  498. xtgeo/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  499. xtgeo/include/eigen3/unsupported/Eigen/FFT +419 -0
  500. xtgeo/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  501. xtgeo/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  502. xtgeo/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  503. xtgeo/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  504. xtgeo/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  505. xtgeo/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  506. xtgeo/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  507. xtgeo/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  508. xtgeo/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  509. xtgeo/include/eigen3/unsupported/Eigen/Polynomials +137 -0
  510. xtgeo/include/eigen3/unsupported/Eigen/Skyline +39 -0
  511. xtgeo/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  512. xtgeo/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  513. xtgeo/include/eigen3/unsupported/Eigen/Splines +35 -0
  514. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  515. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  516. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  517. xtgeo/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  518. xtgeo/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  519. xtgeo/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  520. xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  521. xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  522. xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  523. xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  524. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  525. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  526. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  527. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  528. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  529. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  530. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  531. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  532. xtgeo/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  533. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  534. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  535. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  536. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  537. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  538. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  539. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  540. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  541. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  542. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  543. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  544. xtgeo/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  545. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  546. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  547. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  548. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  549. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  550. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  551. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  552. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  553. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  554. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  555. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  556. xtgeo/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  557. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  558. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  559. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  560. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  561. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  562. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  563. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  564. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  565. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  566. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  567. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  568. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  569. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  570. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  571. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  572. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  573. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  574. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  575. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  576. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  577. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  578. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  579. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  580. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  581. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  582. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  583. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  584. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  585. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  586. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  587. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  588. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  589. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  590. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  591. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  592. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  593. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  594. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  595. xtgeo/interfaces/rms/__init__.py +18 -0
  596. xtgeo/interfaces/rms/_regular_surface.py +460 -0
  597. xtgeo/interfaces/rms/_rms_base.py +100 -0
  598. xtgeo/interfaces/rms/_rmsapi_package.py +69 -0
  599. xtgeo/interfaces/rms/rmsapi_utils.py +438 -0
  600. xtgeo/io/__init__.py +1 -0
  601. xtgeo/io/_file.py +603 -0
  602. xtgeo/metadata/__init__.py +17 -0
  603. xtgeo/metadata/metadata.py +435 -0
  604. xtgeo/roxutils/__init__.py +7 -0
  605. xtgeo/roxutils/_roxar_loader.py +54 -0
  606. xtgeo/roxutils/_roxutils_etc.py +122 -0
  607. xtgeo/roxutils/roxutils.py +207 -0
  608. xtgeo/share/eigen3/cmake/Eigen3Config.cmake +37 -0
  609. xtgeo/share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
  610. xtgeo/share/eigen3/cmake/Eigen3Targets.cmake +106 -0
  611. xtgeo/share/eigen3/cmake/UseEigen3.cmake +6 -0
  612. xtgeo/share/pkgconfig/eigen3.pc +9 -0
  613. xtgeo/surface/__init__.py +20 -0
  614. xtgeo/surface/_regsurf_boundary.py +26 -0
  615. xtgeo/surface/_regsurf_cube.py +210 -0
  616. xtgeo/surface/_regsurf_cube_window.py +391 -0
  617. xtgeo/surface/_regsurf_cube_window_v2.py +297 -0
  618. xtgeo/surface/_regsurf_cube_window_v3.py +360 -0
  619. xtgeo/surface/_regsurf_export.py +388 -0
  620. xtgeo/surface/_regsurf_grid3d.py +275 -0
  621. xtgeo/surface/_regsurf_gridding.py +347 -0
  622. xtgeo/surface/_regsurf_ijxyz_parser.py +278 -0
  623. xtgeo/surface/_regsurf_import.py +347 -0
  624. xtgeo/surface/_regsurf_lowlevel.py +122 -0
  625. xtgeo/surface/_regsurf_oper.py +538 -0
  626. xtgeo/surface/_regsurf_utils.py +81 -0
  627. xtgeo/surface/_surfs_import.py +43 -0
  628. xtgeo/surface/_zmap_parser.py +138 -0
  629. xtgeo/surface/regular_surface.py +3043 -0
  630. xtgeo/surface/surfaces.py +276 -0
  631. xtgeo/well/__init__.py +24 -0
  632. xtgeo/well/_blockedwell_roxapi.py +241 -0
  633. xtgeo/well/_blockedwells_roxapi.py +68 -0
  634. xtgeo/well/_well_aux.py +30 -0
  635. xtgeo/well/_well_io.py +327 -0
  636. xtgeo/well/_well_oper.py +483 -0
  637. xtgeo/well/_well_roxapi.py +304 -0
  638. xtgeo/well/_wellmarkers.py +486 -0
  639. xtgeo/well/_wells_utils.py +158 -0
  640. xtgeo/well/blocked_well.py +220 -0
  641. xtgeo/well/blocked_wells.py +134 -0
  642. xtgeo/well/well1.py +1516 -0
  643. xtgeo/well/wells.py +211 -0
  644. xtgeo/xyz/__init__.py +6 -0
  645. xtgeo/xyz/_polygons_oper.py +272 -0
  646. xtgeo/xyz/_xyz.py +758 -0
  647. xtgeo/xyz/_xyz_data.py +646 -0
  648. xtgeo/xyz/_xyz_io.py +737 -0
  649. xtgeo/xyz/_xyz_lowlevel.py +42 -0
  650. xtgeo/xyz/_xyz_oper.py +613 -0
  651. xtgeo/xyz/_xyz_roxapi.py +766 -0
  652. xtgeo/xyz/points.py +698 -0
  653. xtgeo/xyz/polygons.py +827 -0
  654. xtgeo-4.14.0.dist-info/METADATA +146 -0
  655. xtgeo-4.14.0.dist-info/RECORD +658 -0
  656. xtgeo-4.14.0.dist-info/WHEEL +6 -0
  657. xtgeo-4.14.0.dist-info/licenses/LICENSE.md +165 -0
  658. xtgeo.libs/libgomp-e985bcbb.so.1.0.0 +0 -0
@@ -0,0 +1,778 @@
1
+ import warnings
2
+ from abc import ABC, abstractmethod
3
+ from dataclasses import astuple, dataclass, fields
4
+ from enum import Enum, auto, unique
5
+ from typing import Any, List, Optional, Tuple, Union
6
+
7
+ import numpy as np
8
+ from scipy.constants import foot
9
+
10
+ from xtgeo.common.log import null_logger
11
+
12
+ from ._grdecl_format import match_keyword
13
+
14
+ logger = null_logger(__name__)
15
+
16
+
17
+ @unique
18
+ class Units(Enum):
19
+ METRES = auto()
20
+ CM = auto()
21
+ FEET = auto()
22
+
23
+ def conversion_factor(self, other):
24
+ "Conversion factor from one unit to another"
25
+ result = 1.0
26
+ if self == other:
27
+ return result
28
+ if other == Units.FEET:
29
+ result *= 1 / foot
30
+ if other == Units.CM:
31
+ result *= 1e2
32
+ if self == Units.FEET:
33
+ result *= foot
34
+ if self == Units.CM:
35
+ result *= 1e-2
36
+ return result
37
+
38
+ def to_grdecl(self):
39
+ return self.name
40
+
41
+ def to_bgrdecl(self):
42
+ return self.to_grdecl().ljust(8)
43
+
44
+ @classmethod
45
+ def from_grdecl(cls, unit_string):
46
+ if match_keyword(unit_string, "METRES"):
47
+ return cls.METRES
48
+ if match_keyword(unit_string, "FEET"):
49
+ return cls.FEET
50
+ if match_keyword(unit_string, "CM"):
51
+ return cls.CM
52
+ raise ValueError(f"Unknown unit string {unit_string}")
53
+
54
+ @classmethod
55
+ def from_bgrdecl(cls, unit_string):
56
+ if isinstance(unit_string, bytes):
57
+ return cls.from_grdecl(unit_string.decode("ascii"))
58
+ return cls.from_grdecl(unit_string)
59
+
60
+
61
+ @unique
62
+ class GridRelative(Enum):
63
+ """GridRelative is the second value given GRIDUNIT keyword.
64
+
65
+ MAP means map relative units, while
66
+ leaving it blank means relative to the origin given by the
67
+ MAPAXES keyword.
68
+ """
69
+
70
+ MAP = auto()
71
+ ORIGIN = auto()
72
+
73
+ def to_grdecl(self) -> str:
74
+ return "MAP" if self == GridRelative.MAP else ""
75
+
76
+ def to_bgrdecl(self) -> str:
77
+ return self.to_grdecl().ljust(8)
78
+
79
+ @classmethod
80
+ def from_grdecl(cls, unit_string: str):
81
+ return cls.MAP if match_keyword(unit_string, "MAP") else cls.ORIGIN
82
+
83
+ @classmethod
84
+ def from_bgrdecl(cls, unit_string):
85
+ if isinstance(unit_string, bytes):
86
+ return cls.from_grdecl(unit_string.decode("ascii"))
87
+ return cls.from_grdecl(unit_string)
88
+
89
+
90
+ @dataclass
91
+ class GrdeclKeyword:
92
+ """An abstract grdecl keyword.
93
+
94
+ Gives a general implementation of to/from grdecl which recurses on
95
+ fields. Ie. a dataclass such as
96
+ >>> class A(GrdeclKeyword):
97
+ ... ...
98
+ >>> class B(GrdeclKeyword):
99
+ ... ...
100
+
101
+ >>> @dataclass
102
+ ... class MyKeyword(GrdeclKeyword):
103
+ ... field1: A
104
+ ... field2: B
105
+
106
+ will have a to_grdecl method that will be similar to
107
+
108
+ >>> def to_grdecl(self):
109
+ ... return [self.field1.to_grdecl(), self.field2.to_grdecl]
110
+
111
+ Similarly from_grdecl will call fields from_grdecl
112
+ to construct the object
113
+
114
+ >>> @classmethod
115
+ ... def from_grdecl(cls, values):
116
+ ... return cls(A.from_grdecl(values[0]), B.from_grdecl(values[1]))
117
+ """
118
+
119
+ def to_grdecl(self) -> List[Any]:
120
+ """Convert the keyword to list of grdecl keyword values.
121
+ Returns:
122
+ list of values of the given keyword. ie. The
123
+ keyword read from "SPECGRID 1 1 1 F" should return
124
+ [1,1,1,CoordinateType.CYLINDRICAL]
125
+ """
126
+ return [value.to_grdecl() for value in astuple(self)]
127
+
128
+ def to_bgrdecl(self) -> List[Any]:
129
+ return [value.to_bgrdecl() for value in astuple(self)]
130
+
131
+ @classmethod
132
+ def from_bgrdecl(cls, values):
133
+ object_types = [f.type for f in fields(cls)]
134
+ return cls(*[typ.from_bgrdecl(val) for val, typ in zip(values, object_types)])
135
+
136
+ @classmethod
137
+ def from_grdecl(cls, values):
138
+ """Convert list of grdecl keyword values to a keyword.
139
+ Args:
140
+ values(list): list of values given after the keyword in
141
+ the grdecl file.
142
+ Returns:
143
+ A GrdeclKeyword constructed from the given values.
144
+ """
145
+ object_types = [f.type for f in fields(cls)]
146
+ return cls(*[typ.from_grdecl(val) for val, typ in zip(values, object_types)])
147
+
148
+
149
+ @unique
150
+ class Order(Enum):
151
+ """Either increasing or decreasing.
152
+
153
+ Used for the grdecl keywords INC and DEC
154
+ respectively.
155
+ """
156
+
157
+ INCREASING = auto()
158
+ DECREASING = auto()
159
+
160
+ def to_grdecl(self) -> str:
161
+ return str(self.name)[0:3]
162
+
163
+ def to_bgrdecl(self) -> str:
164
+ return self.to_grdecl().ljust(8)
165
+
166
+ @classmethod
167
+ def from_grdecl(cls, order_string):
168
+ if match_keyword(order_string, "INC"):
169
+ return cls.INCREASING
170
+ if match_keyword(order_string, "DEC"):
171
+ return cls.DECREASING
172
+ return None
173
+
174
+ @classmethod
175
+ def from_bgrdecl(cls, unit_string: Union[bytes, str]):
176
+ if isinstance(unit_string, bytes):
177
+ return cls.from_grdecl(unit_string.decode("ascii"))
178
+ return cls.from_grdecl(unit_string)
179
+
180
+
181
+ @unique
182
+ class Handedness(Enum):
183
+ """The handedness of an orientation.
184
+
185
+ Eiter left handed or right handed. Used for the grdecl keywords LEFT and
186
+ RIGHT.
187
+ """
188
+
189
+ LEFT = auto()
190
+ RIGHT = auto()
191
+
192
+ def to_grdecl(self) -> str:
193
+ return self.name
194
+
195
+ def to_bgrdecl(self) -> str:
196
+ return self.to_grdecl().ljust(8)
197
+
198
+ @classmethod
199
+ def from_grdecl(cls, orientation_string: str):
200
+ if match_keyword(orientation_string, "LEFT"):
201
+ return cls.LEFT
202
+ if match_keyword(orientation_string, "RIGHT"):
203
+ return cls.RIGHT
204
+ raise ValueError(f"Unknown handedness string {orientation_string}")
205
+
206
+ @classmethod
207
+ def from_bgrdecl(cls, unit_string: Union[bytes, str]):
208
+ if isinstance(unit_string, bytes):
209
+ return cls.from_grdecl(unit_string.decode("ascii"))
210
+ return cls.from_grdecl(unit_string)
211
+
212
+
213
+ @unique
214
+ class Orientation(Enum):
215
+ """Either up or down, for the grdecl keywords UP and DOWN."""
216
+
217
+ UP = auto()
218
+ DOWN = auto()
219
+
220
+ def to_grdecl(self) -> str:
221
+ return self.name
222
+
223
+ def to_bgrdecl(self) -> str:
224
+ return self.to_grdecl().ljust(8)
225
+
226
+ @classmethod
227
+ def from_grdecl(cls, orientation_string: str):
228
+ if match_keyword(orientation_string, "UP"):
229
+ return cls.UP
230
+ if match_keyword(orientation_string, "DOWN"):
231
+ return cls.DOWN
232
+ raise ValueError(f"Unknown orientation string {orientation_string}")
233
+
234
+ @classmethod
235
+ def from_bgrdecl(cls, unit_string: Union[bytes, str]):
236
+ if isinstance(unit_string, bytes):
237
+ return cls.from_grdecl(unit_string.decode("ascii"))
238
+ return cls.from_grdecl(unit_string)
239
+
240
+
241
+ @dataclass
242
+ class GdOrient(GrdeclKeyword):
243
+ """The GDORIENT keyword gives the orientation of the grid.
244
+
245
+ The three first values is either increasing or decreasing
246
+ depending on whether the corresponding dimension has increasing
247
+ or decreasing coordinates. Then comes the direction of the z dimension,
248
+ and finally the handedness of the orientation. Defaults to
249
+ "GDORIENT INC INC INC DOWN RIGHT /".
250
+ """
251
+
252
+ i_order: Order = Order.INCREASING
253
+ j_order: Order = Order.INCREASING
254
+ k_order: Order = Order.INCREASING
255
+ z_direction: Orientation = Orientation.DOWN
256
+ handedness: Handedness = Handedness.RIGHT
257
+
258
+
259
+ @dataclass
260
+ class GridUnit(GrdeclKeyword):
261
+ """Defines the units used for grid dimensions.
262
+
263
+ The first value is a string describing the units used, defaults to METRES,
264
+ known accepted other units are FIELD and LAB. The last value describes
265
+ whether the measurements are relative to the map or to the origin of
266
+ MAPAXES.
267
+ """
268
+
269
+ unit: Units = Units.METRES
270
+ grid_relative: GridRelative = GridRelative.ORIGIN
271
+
272
+
273
+ @dataclass
274
+ class MapAxes(GrdeclKeyword):
275
+ """The mapaxes keyword gives the local coordinate system of the map.
276
+
277
+ The map coordinate system is given by a point on the y line, the origin and
278
+ a point on the x line. ie. The usual coordinate system is given by "MAPAXES
279
+ 0 1 0 0 1 0 /" where the two first values is a point on the y line, the
280
+ middle two values is the origin, and the last two values is a point on the
281
+ x line.
282
+ """
283
+
284
+ y_line: Tuple[float, float] = (0.0, 1.0)
285
+ origin: Tuple[float, float] = (0.0, 0.0)
286
+ x_line: Tuple[float, float] = (1.0, 0.0)
287
+
288
+ def to_grdecl(self) -> List[float]:
289
+ return list(self.y_line) + list(self.origin) + list(self.x_line)
290
+
291
+ def to_bgrdecl(self) -> List[float]:
292
+ return np.array(self.to_grdecl(), dtype=np.float32)
293
+
294
+ def in_units(self, old_units, new_units):
295
+ factor = old_units.conversion_factor(new_units)
296
+ y_line = (self.y_line[0] * factor, self.y_line[1] * factor)
297
+ x_line = (self.x_line[0] * factor, self.x_line[1] * factor)
298
+ origin = (self.origin[0] * factor, self.origin[1] * factor)
299
+ return MapAxes(y_line, origin, x_line)
300
+
301
+ @classmethod
302
+ def from_bgrdecl(cls, values: List[Union[float, str]]):
303
+ return cls.from_grdecl(values)
304
+
305
+ @classmethod
306
+ def from_grdecl(cls, values: List[Union[float, str]]):
307
+ if len(values) != 6:
308
+ raise ValueError("MAPAXES must contain 6 values")
309
+ return cls(
310
+ (float(values[0]), float(values[1])),
311
+ (float(values[2]), float(values[3])),
312
+ (float(values[4]), float(values[5])),
313
+ )
314
+
315
+
316
+ @unique
317
+ class CoordinateType(Enum):
318
+ """The coordinate system type given in the SPECGRID keyword.
319
+
320
+ This is given by either T or F in the last value of SPECGRID, meaning
321
+ either cylindrical or cartesian coordinates respectively.
322
+ """
323
+
324
+ CARTESIAN = auto()
325
+ CYLINDRICAL = auto()
326
+
327
+ def to_grdecl(self) -> str:
328
+ return "F" if self == CoordinateType.CARTESIAN else "T"
329
+
330
+ def to_bgrdecl(self) -> int:
331
+ return 0 if self == CoordinateType.CARTESIAN else 1
332
+
333
+ @classmethod
334
+ def from_bgrdecl(cls, coord_value: int):
335
+ return cls.CARTESIAN if coord_value == 0 else cls.CYLINDRICAL
336
+
337
+ @classmethod
338
+ def from_grdecl(cls, coord_string: str):
339
+ if match_keyword(coord_string, "F"):
340
+ return cls.CARTESIAN
341
+ if match_keyword(coord_string, "T"):
342
+ return cls.CYLINDRICAL
343
+ raise ValueError(f"Unknown coordinate type {coord_string}")
344
+
345
+
346
+ def transform_xtgeo_coord_by_mapaxes(mapaxes: MapAxes, coord: np.ndarray):
347
+ """Transforms xtgeo coord values by mapaxes.
348
+
349
+ The mapaxes keyword in a grdecl file defines a new coordinate system by
350
+ which x and y values are to be interpreted. The given xtgeo coord
351
+ values are transformed from the local coordinate system defined by
352
+ mapaxes to global coordinates.
353
+ """
354
+ x_point = mapaxes.x_line
355
+ y_point = mapaxes.y_line
356
+ origin = mapaxes.origin
357
+
358
+ x_axis = np.array(x_point) - origin
359
+ y_axis = np.array(y_point) - origin
360
+
361
+ x_unit = x_axis / np.linalg.norm(x_axis)
362
+ y_unit = y_axis / np.linalg.norm(y_axis)
363
+
364
+ coord[:, :, (0, 1)] = (
365
+ origin
366
+ + coord[:, :, 0, np.newaxis] * x_unit
367
+ + coord[:, :, 1, np.newaxis] * y_unit
368
+ )
369
+ coord[:, :, (3, 4)] = (
370
+ origin
371
+ + coord[:, :, 3, np.newaxis] * x_unit
372
+ + coord[:, :, 4, np.newaxis] * y_unit
373
+ )
374
+
375
+ return coord
376
+
377
+
378
+ def inverse_transform_xtgeo_coord_by_mapaxes(mapaxes: MapAxes, coord: np.ndarray):
379
+ """Inversely transforms xtgeo coord values by mapaxes.
380
+
381
+ The inverse operation of transform_xtgeo_coord_by_mapaxes.
382
+ """
383
+ x_point = mapaxes.x_line
384
+ y_point = mapaxes.y_line
385
+ origin = mapaxes.origin
386
+
387
+ x_axis = np.array(x_point) - origin
388
+ y_axis = np.array(y_point) - origin
389
+
390
+ x_unit = x_axis / np.linalg.norm(x_axis)
391
+ y_unit = y_axis / np.linalg.norm(y_axis)
392
+
393
+ coord[:, :, (0, 1)] -= np.array(origin)
394
+ coord[:, :, (3, 4)] -= np.array(origin)
395
+
396
+ inv_transform = np.linalg.inv(np.transpose([x_unit, y_unit]))
397
+
398
+ # The following index manipulation is
399
+ # an optimized version of
400
+
401
+ # nx, ny, _ = coord.shape
402
+ # for i in range(nx):
403
+ # for j in range(ny):
404
+ # coord[i, j, (0, 1)] = inv_transform @ coord[i, j, (0, 1)]
405
+ # coord[i, j, (3, 4)] = inv_transform @ coord[i, j, (3, 4)]
406
+ coord[:, :, (0, 1)] = (
407
+ inv_transform[np.newaxis, np.newaxis, :, :] @ coord[:, :, (0, 1), np.newaxis]
408
+ )[:, :, :, 0]
409
+ coord[:, :, (3, 4)] = (
410
+ inv_transform[np.newaxis, np.newaxis, :, :] @ coord[:, :, (3, 4), np.newaxis]
411
+ )[:, :, :, 0]
412
+ return coord
413
+
414
+
415
+ class EclGrid(ABC):
416
+ """
417
+ The main keywords that describe a grdecl grid is COORD, ZCORN and ACTNUM.
418
+
419
+ The grid is made up of nx*ny*nz cells in three corresponding dimensions.
420
+ The number of cells in each direction is described in the SPECGRID keyword.
421
+
422
+ The values in COORD, ZCORN and ACTNUM are stored flattened in F-order and
423
+ have dimensions (nx+1,ny+1,6), (nx,2,ny,2,nz,2), and (nx,ny,nz) respectively.
424
+
425
+ COORD and ZCORN descibe a corner point geometry for the grid. There is a
426
+ straight line from the bottom to the top of the grid on which the corners
427
+ of each grid lie. COORD describe the top and bottom (x,y,z) values of these
428
+ corner lines, hence, it contains six floats for each corner line.
429
+
430
+ ZCORN has 8 values for each grid, which describes the z-value (height) at
431
+ which that cells corners intersect with the corresponding corner line. The
432
+ order of corners is "left" before "right" in the second dimension of
433
+ ZCORN, "near" before "far" in the fourth dimension , and "upper" before
434
+ "bottom" in the last dimension. Note that this orientation assumes,
435
+ increasing first dimension as to the "right", increasing second dimension
436
+ towards "far", and increasing third dimension as towards "bottom".
437
+
438
+ The topology is such that, assuming no gaps between cells, the (i,j,k)th
439
+ cell and the (i+1,j+1,k+1)th cell share the upper near left corner of the
440
+ (i+1,j+1,k+1)th cell which is the lower far right corner of the (i,j,k)th
441
+ cell.
442
+
443
+ ACTNUM describes the active status of each cell. For simulations without
444
+ dual porosity or thermal, 0 means inactive, 1 means active and other values
445
+ are not used. For dual porosity, 0 means inactive, 1 means matrix only,
446
+ 2 means fracture only, and 3 means both fracture and matrix. For thermal
447
+ simulations, 0 means inactive, 1 means active, 2 means rock volume only,
448
+ 3 means pore volume only.
449
+ """
450
+
451
+ @property
452
+ @abstractmethod
453
+ def coord(self) -> np.ndarray:
454
+ pass
455
+
456
+ @property
457
+ @abstractmethod
458
+ def zcorn(self) -> np.ndarray:
459
+ pass
460
+
461
+ @property
462
+ @abstractmethod
463
+ def actnum(self) -> Optional[np.ndarray]:
464
+ pass
465
+
466
+ def __eq__(self, other) -> bool:
467
+ if not isinstance(other, EclGrid):
468
+ return False
469
+ return (
470
+ (
471
+ (self.actnum is None and other.actnum is None)
472
+ or np.array_equal(self.actnum, other.actnum)
473
+ )
474
+ and np.array_equal(self.coord, other.coord)
475
+ and np.array_equal(self.zcorn, other.zcorn)
476
+ )
477
+
478
+ @property
479
+ @abstractmethod
480
+ def is_map_relative(self) -> bool:
481
+ pass
482
+
483
+ @property
484
+ @abstractmethod
485
+ def mapaxes(self) -> Optional[MapAxes]:
486
+ pass
487
+
488
+ @property
489
+ @abstractmethod
490
+ def dimensions(self) -> Tuple[int, int, int]:
491
+ pass
492
+
493
+ @property
494
+ @abstractmethod
495
+ def map_axis_units(self) -> Units:
496
+ pass
497
+
498
+ @property
499
+ @abstractmethod
500
+ def grid_units(self) -> Units:
501
+ pass
502
+
503
+ @abstractmethod
504
+ def _check_xtgeo_compatible(self):
505
+ pass
506
+
507
+ def convert_grid_units(self, units):
508
+ """Converts the units of the grid
509
+ Args:
510
+ units: The unit to convert to.
511
+
512
+ After convert_grid_units is called, `EclGrid.grid_units == units`.
513
+
514
+ """
515
+ old_grid_units = self.grid_units
516
+ factor = old_grid_units.conversion_factor(units)
517
+ self.coord *= factor
518
+ self.zcorn *= factor
519
+ self.grid_units = units
520
+
521
+ @staticmethod
522
+ def valid_mapaxes(mapaxes: MapAxes) -> bool:
523
+ y_line = mapaxes.y_line
524
+ x_line = mapaxes.x_line
525
+ origin = mapaxes.origin
526
+ x_axis = np.array(x_line) - origin
527
+ y_axis = np.array(y_line) - origin
528
+
529
+ return np.linalg.norm(x_axis) > 1e-5 and np.linalg.norm(y_axis) > 1e-5
530
+
531
+ def _relative_to_transform(self, xtgeo_coord, relative_to=GridRelative.MAP):
532
+ """Handle relative transform of xtgeo_coord()."""
533
+ mapaxes = self.mapaxes
534
+ has_mapaxes = True
535
+ if self.mapaxes is None:
536
+ mapaxes = MapAxes()
537
+ has_mapaxes = False
538
+ axis_units = self.map_axis_units
539
+
540
+ has_axis_units = True
541
+ if axis_units is None:
542
+ axis_units = self.grid_units
543
+ has_axis_units = False
544
+
545
+ if has_mapaxes and not has_axis_units:
546
+ logger.info(
547
+ "Axis units specification is missing in input, assuming that no "
548
+ "unit conversion is necessary."
549
+ )
550
+
551
+ if relative_to == GridRelative.MAP and not self.is_map_relative:
552
+ xtgeo_coord *= self.grid_units.conversion_factor(axis_units)
553
+ xtgeo_coord = transform_xtgeo_coord_by_mapaxes(mapaxes, xtgeo_coord)
554
+
555
+ elif relative_to == GridRelative.ORIGIN and self.is_map_relative:
556
+ mapaxes = mapaxes.in_units(axis_units, self.grid_units)
557
+ xtgeo_coord = inverse_transform_xtgeo_coord_by_mapaxes(mapaxes, xtgeo_coord)
558
+
559
+ return xtgeo_coord
560
+
561
+ def xtgeo_coord(self, relative_to=GridRelative.MAP):
562
+ """
563
+ Args:
564
+ relative_to: Specifies the axis system the coords should be
565
+ relative to, either map or grid. Defaults to map. If relative_to is
566
+ GridRelative.MAP then the resulting units are that of map_axis_units.
567
+ Returns:
568
+ coord in xtgeo format.
569
+ """
570
+ self._check_xtgeo_compatible()
571
+ nx, ny, _ = self.dimensions
572
+
573
+ xtgeo_coord = (
574
+ np.swapaxes(self.coord.reshape((ny + 1, nx + 1, 6)), 0, 1)
575
+ .astype(np.float64)
576
+ .copy()
577
+ )
578
+ xtgeo_coord = self._relative_to_transform(xtgeo_coord, relative_to)
579
+ return np.ascontiguousarray(xtgeo_coord)
580
+
581
+ def xtgeo_actnum(self):
582
+ """
583
+ Returns:
584
+ actnum in xtgeo format.
585
+ """
586
+ self._check_xtgeo_compatible()
587
+ nx, ny, nz = self.dimensions
588
+ if self.actnum is None:
589
+ return np.ones(shape=(nx, ny, nz), dtype=np.int32)
590
+ activity_number = self.actnum.reshape((nx, ny, nz), order="F")
591
+ return np.ascontiguousarray(activity_number)
592
+
593
+ def xtgeo_zcorn(self, relative_to=GridRelative.MAP):
594
+ """
595
+ relative_to: Specifies the axis system the zcorn should be
596
+ relative to, either map or origin. Defaults to map. For zcorn
597
+ this only affects which units zcorn will be in, grid units for
598
+ relative to origin, map units for relative to map.
599
+ Returns:
600
+ zcorn in xtgeo format.
601
+ """
602
+ self._check_xtgeo_compatible()
603
+ nx, ny, nz = self.dimensions
604
+ zcorn = self.zcorn.reshape((2, nx, 2, ny, 2, nz), order="F")
605
+
606
+ if not np.allclose(
607
+ zcorn[:, :, :, :, 1, : nz - 1], zcorn[:, :, :, :, 0, 1:], atol=1e-2
608
+ ):
609
+ warnings.warn(
610
+ "An Eclipse style grid with vertical ZCORN splits "
611
+ "or overlaps between vertical neighbouring cells is detected. XTGeo "
612
+ "will import the grid as if the cell layers are connected, "
613
+ "hence check result carefully. "
614
+ "(Note also that this check both active and inactive cells!)",
615
+ UserWarning,
616
+ )
617
+
618
+ result = np.zeros((nx + 1, ny + 1, nz + 1, 4), dtype=np.float32)
619
+
620
+ # xtgeo uses 4 z values per i,j,k to mean the 4 z values of
621
+ # adjacent cells for the cornerline at position i,j,k assuming
622
+ # no difference in z values between upper and lower cells. In
623
+ # the order sw,se,nw,ne.
624
+
625
+ # In grdecl, there are 8 zvalues per i,j,k meaning the z values
626
+ # of each corner for the cell at i,j,k. In
627
+ # the order "left" (west) before "right" (east) , "near" (south)
628
+ # before "far" (north) , "upper" before "bottom"
629
+
630
+ # set the nw value of cornerline i+1,j to
631
+ # the near right corner of cell i,j
632
+ result[1:, :ny, 0:nz, 2] = zcorn[1, :, 0, :, 0, :]
633
+ result[1:, :ny, nz, 2] = zcorn[1, :, 0, :, 1, nz - 1]
634
+
635
+ # set the ne value of cornerline i,j to
636
+ # the near left corner of cell i,j
637
+ result[:nx, :ny, 0:nz, 3] = zcorn[0, :, 0, :, 0, :]
638
+ result[:nx, :ny, nz, 3] = zcorn[0, :, 0, :, 1, nz - 1]
639
+
640
+ # set the sw value of cornerline i+1,j+1 to
641
+ # the far right corner of cell i,j to
642
+ result[1:, 1:, 0:nz, 0] = zcorn[1, :, 1, :, 0, :]
643
+ result[1:, 1:, nz, 0] = zcorn[1, :, 1, :, 1, nz - 1]
644
+
645
+ # set the se value of cornerline i,j+1 to
646
+ # the far left corner of cell i,j
647
+ result[:nx, 1:, 0:nz, 1] = zcorn[0, :, 1, :, 0, :]
648
+ result[:nx, 1:, nz, 1] = zcorn[0, :, 1, :, 1, nz - 1]
649
+
650
+ self.duplicate_insignificant_xtgeo_zcorn(result)
651
+
652
+ axis_units = self.map_axis_units
653
+ if axis_units is None:
654
+ axis_units = self.grid_units
655
+ if relative_to == GridRelative.MAP and not self.is_map_relative:
656
+ result *= self.grid_units.conversion_factor(self.map_axis_units)
657
+
658
+ return np.ascontiguousarray(result)
659
+
660
+ def duplicate_insignificant_xtgeo_zcorn(self, zcorn: np.ndarray):
661
+ """Duplicates values on the faces and corners of the grid.
662
+
663
+ The xtgeo format has 4 z values for all cornerlines, refering
664
+ to the z value for the corresponding corner of the cell that is
665
+ sw, se, nw and ne of the cornerline. However, for the cornerlines
666
+ that are on the boundary of the grid, there might be no such cell, ie.
667
+ north of the northernmost cornerlines there are no cells. These are
668
+ then duplicated of corresponding cells in the opposite direction.
669
+
670
+ """
671
+ nx, ny, nz = self.dimensions
672
+
673
+ # south of the sw->se face is duplicate
674
+ # of the north values
675
+ zcorn[1:nx, 0, :, 0] = zcorn[1:nx, 0, :, 2]
676
+ zcorn[1:nx, 0, :, 1] = zcorn[1:nx, 0, :, 3]
677
+
678
+ # vertical sw corner line is duplicates of
679
+ # the ne value
680
+ zcorn[0, 0, :, 0] = zcorn[0, 0, :, 3]
681
+ zcorn[0, 0, :, 1] = zcorn[0, 0, :, 3]
682
+ zcorn[0, 0, :, 2] = zcorn[0, 0, :, 3]
683
+
684
+ # east values of the se->ne face
685
+ # is duplicates of the corresponding
686
+ # west values
687
+ zcorn[nx, 1:ny, :, 1] = zcorn[nx, 1:ny, :, 0]
688
+ zcorn[nx, 1:ny, :, 3] = zcorn[nx, 1:ny, :, 2]
689
+
690
+ # vertical se corner line is all duplicates
691
+ # of its nw value
692
+ zcorn[nx, 0, :, 0] = zcorn[nx, 0, :, 2]
693
+ zcorn[nx, 0, :, 1] = zcorn[nx, 0, :, 2]
694
+ zcorn[nx, 0, :, 3] = zcorn[nx, 0, :, 2]
695
+
696
+ # north values of the nw->ne face is duplicates
697
+ # of the corresponding south values
698
+ zcorn[1:nx, ny, :, 2] = zcorn[1:nx, ny, :, 0]
699
+ zcorn[1:nx, ny, :, 3] = zcorn[1:nx, ny, :, 1]
700
+
701
+ # vertical nw corner line is all duplicates
702
+ # of the se value
703
+ zcorn[0, ny, :, 0] = zcorn[0, ny, :, 1]
704
+ zcorn[0, ny, :, 2] = zcorn[0, ny, :, 1]
705
+ zcorn[0, ny, :, 3] = zcorn[0, ny, :, 1]
706
+
707
+ # west values of the sw->nw face is duplicates
708
+ # of corresponding east values
709
+ zcorn[0, 1:ny, :, 0] = zcorn[0, 1:ny, :, 1]
710
+ zcorn[0, 1:ny, :, 2] = zcorn[0, 1:ny, :, 3]
711
+
712
+ # vertical ne corner line is all duplicates
713
+ # of the sw value
714
+ zcorn[nx, ny, :, 1] = zcorn[nx, ny, :, 0]
715
+ zcorn[nx, ny, :, 2] = zcorn[nx, ny, :, 0]
716
+ zcorn[nx, ny, :, 3] = zcorn[nx, ny, :, 0]
717
+
718
+ @classmethod
719
+ @abstractmethod
720
+ def default_settings_grid(
721
+ cls,
722
+ coord: np.ndarray,
723
+ zcorn: np.ndarray,
724
+ actnum: Optional[np.ndarray],
725
+ size: Tuple[int, int, int],
726
+ ):
727
+ pass
728
+
729
+ @classmethod
730
+ def from_xtgeo_grid(cls, xtgeo_grid):
731
+ xtgeo_grid._set_xtgformat2()
732
+
733
+ nx, ny, nz = xtgeo_grid.dimensions
734
+ actnum = xtgeo_grid._actnumsv.reshape(nx, ny, nz)
735
+ actnum = actnum.ravel(order="F")
736
+ if np.all(actnum == 1):
737
+ actnum = None
738
+ coord = np.ascontiguousarray(np.swapaxes(xtgeo_grid._coordsv, 0, 1).ravel())
739
+ zcorn = np.zeros((2, nx, 2, ny, 2, nz))
740
+ xtgeo_zcorn = xtgeo_grid._zcornsv.reshape((nx + 1, ny + 1, nz + 1, 4))
741
+
742
+ # This is the reverse operation of that of xtgeo_zcorn,
743
+ # see that function for description of operations.
744
+
745
+ # set the nw value of cornerline i+1,j to
746
+ # the near right corner of cell i,j
747
+ zcorn[1, :, 0, :, 1, :] = xtgeo_zcorn[1:, :ny, 1:, 2]
748
+ zcorn[1, :, 0, :, 0, :] = xtgeo_zcorn[1:, :ny, :nz, 2]
749
+
750
+ # set the ne value of cornerline i,j to
751
+ # the near left corner of cell i,j
752
+ zcorn[0, :, 0, :, 1, :] = xtgeo_zcorn[:nx, :ny, 1:, 3]
753
+ zcorn[0, :, 0, :, 0, :] = xtgeo_zcorn[:nx, :ny, :nz, 3]
754
+
755
+ # set the sw value of cornerline i+1,j+1 to
756
+ # the far right corner of cell i,j to
757
+ zcorn[1, :, 1, :, 1, :] = xtgeo_zcorn[1:, 1:, 1:, 0]
758
+ zcorn[1, :, 1, :, 0, :] = xtgeo_zcorn[1:, 1:, :nz, 0]
759
+
760
+ # set the se value of cornerline i,j+1 to
761
+ # the far left corner of cell i,j
762
+ zcorn[0, :, 1, :, 1, :] = xtgeo_zcorn[:nx, 1:, 1:, 1]
763
+ zcorn[0, :, 1, :, 0, :] = xtgeo_zcorn[:nx, 1:, :nz, 1]
764
+
765
+ zcorn = zcorn.ravel(order="F")
766
+
767
+ result = cls.default_settings_grid(
768
+ coord=coord,
769
+ zcorn=zcorn,
770
+ actnum=actnum,
771
+ size=(nx, ny, nz),
772
+ )
773
+
774
+ if xtgeo_grid.units is not None:
775
+ result.grid_units = xtgeo_grid.units
776
+ result.map_axis_units = xtgeo_grid.units
777
+
778
+ return result