xtgeo 4.13.1__cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.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 (654) hide show
  1. cxtgeo.py +558 -0
  2. cxtgeoPYTHON_wrap.c +19537 -0
  3. xtgeo/__init__.py +246 -0
  4. xtgeo/_cxtgeo.cpython-313-aarch64-linux-gnu.so +0 -0
  5. xtgeo/_internal.cpython-313-aarch64-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 +774 -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 +1595 -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 +2957 -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/io/__init__.py +1 -0
  596. xtgeo/io/_file.py +594 -0
  597. xtgeo/metadata/__init__.py +17 -0
  598. xtgeo/metadata/metadata.py +435 -0
  599. xtgeo/roxutils/__init__.py +7 -0
  600. xtgeo/roxutils/_roxar_loader.py +54 -0
  601. xtgeo/roxutils/_roxutils_etc.py +122 -0
  602. xtgeo/roxutils/roxutils.py +207 -0
  603. xtgeo/share/eigen3/cmake/Eigen3Config.cmake +37 -0
  604. xtgeo/share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
  605. xtgeo/share/eigen3/cmake/Eigen3Targets.cmake +106 -0
  606. xtgeo/share/eigen3/cmake/UseEigen3.cmake +6 -0
  607. xtgeo/share/pkgconfig/eigen3.pc +9 -0
  608. xtgeo/surface/__init__.py +18 -0
  609. xtgeo/surface/_regsurf_boundary.py +26 -0
  610. xtgeo/surface/_regsurf_cube.py +210 -0
  611. xtgeo/surface/_regsurf_cube_window.py +391 -0
  612. xtgeo/surface/_regsurf_cube_window_v2.py +297 -0
  613. xtgeo/surface/_regsurf_cube_window_v3.py +360 -0
  614. xtgeo/surface/_regsurf_export.py +388 -0
  615. xtgeo/surface/_regsurf_grid3d.py +275 -0
  616. xtgeo/surface/_regsurf_gridding.py +347 -0
  617. xtgeo/surface/_regsurf_ijxyz_parser.py +278 -0
  618. xtgeo/surface/_regsurf_import.py +347 -0
  619. xtgeo/surface/_regsurf_lowlevel.py +122 -0
  620. xtgeo/surface/_regsurf_oper.py +538 -0
  621. xtgeo/surface/_regsurf_roxapi.py +241 -0
  622. xtgeo/surface/_regsurf_utils.py +81 -0
  623. xtgeo/surface/_surfs_import.py +43 -0
  624. xtgeo/surface/_zmap_parser.py +138 -0
  625. xtgeo/surface/regular_surface.py +2962 -0
  626. xtgeo/surface/surfaces.py +276 -0
  627. xtgeo/well/__init__.py +24 -0
  628. xtgeo/well/_blockedwell_roxapi.py +241 -0
  629. xtgeo/well/_blockedwells_roxapi.py +68 -0
  630. xtgeo/well/_well_aux.py +30 -0
  631. xtgeo/well/_well_io.py +327 -0
  632. xtgeo/well/_well_oper.py +483 -0
  633. xtgeo/well/_well_roxapi.py +304 -0
  634. xtgeo/well/_wellmarkers.py +486 -0
  635. xtgeo/well/_wells_utils.py +158 -0
  636. xtgeo/well/blocked_well.py +220 -0
  637. xtgeo/well/blocked_wells.py +134 -0
  638. xtgeo/well/well1.py +1516 -0
  639. xtgeo/well/wells.py +211 -0
  640. xtgeo/xyz/__init__.py +6 -0
  641. xtgeo/xyz/_polygons_oper.py +272 -0
  642. xtgeo/xyz/_xyz.py +758 -0
  643. xtgeo/xyz/_xyz_data.py +646 -0
  644. xtgeo/xyz/_xyz_io.py +737 -0
  645. xtgeo/xyz/_xyz_lowlevel.py +42 -0
  646. xtgeo/xyz/_xyz_oper.py +613 -0
  647. xtgeo/xyz/_xyz_roxapi.py +766 -0
  648. xtgeo/xyz/points.py +698 -0
  649. xtgeo/xyz/polygons.py +827 -0
  650. xtgeo-4.13.1.dist-info/METADATA +146 -0
  651. xtgeo-4.13.1.dist-info/RECORD +654 -0
  652. xtgeo-4.13.1.dist-info/WHEEL +6 -0
  653. xtgeo-4.13.1.dist-info/licenses/LICENSE.md +165 -0
  654. xtgeo.libs/libgomp-a49a47f9.so.1.0.0 +0 -0
@@ -0,0 +1,774 @@
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 ._grdecl_format import match_keyword
11
+
12
+
13
+ @unique
14
+ class Units(Enum):
15
+ METRES = auto()
16
+ CM = auto()
17
+ FEET = auto()
18
+
19
+ def conversion_factor(self, other):
20
+ "Conversion factor from one unit to another"
21
+ result = 1.0
22
+ if self == other:
23
+ return result
24
+ if other == Units.FEET:
25
+ result *= 1 / foot
26
+ if other == Units.CM:
27
+ result *= 1e2
28
+ if self == Units.FEET:
29
+ result *= foot
30
+ if self == Units.CM:
31
+ result *= 1e-2
32
+ return result
33
+
34
+ def to_grdecl(self):
35
+ return self.name
36
+
37
+ def to_bgrdecl(self):
38
+ return self.to_grdecl().ljust(8)
39
+
40
+ @classmethod
41
+ def from_grdecl(cls, unit_string):
42
+ if match_keyword(unit_string, "METRES"):
43
+ return cls.METRES
44
+ if match_keyword(unit_string, "FEET"):
45
+ return cls.FEET
46
+ if match_keyword(unit_string, "CM"):
47
+ return cls.CM
48
+ raise ValueError(f"Unknown unit string {unit_string}")
49
+
50
+ @classmethod
51
+ def from_bgrdecl(cls, unit_string):
52
+ if isinstance(unit_string, bytes):
53
+ return cls.from_grdecl(unit_string.decode("ascii"))
54
+ return cls.from_grdecl(unit_string)
55
+
56
+
57
+ @unique
58
+ class GridRelative(Enum):
59
+ """GridRelative is the second value given GRIDUNIT keyword.
60
+
61
+ MAP means map relative units, while
62
+ leaving it blank means relative to the origin given by the
63
+ MAPAXES keyword.
64
+ """
65
+
66
+ MAP = auto()
67
+ ORIGIN = auto()
68
+
69
+ def to_grdecl(self) -> str:
70
+ return "MAP" if self == GridRelative.MAP else ""
71
+
72
+ def to_bgrdecl(self) -> str:
73
+ return self.to_grdecl().ljust(8)
74
+
75
+ @classmethod
76
+ def from_grdecl(cls, unit_string: str):
77
+ return cls.MAP if match_keyword(unit_string, "MAP") else cls.ORIGIN
78
+
79
+ @classmethod
80
+ def from_bgrdecl(cls, unit_string):
81
+ if isinstance(unit_string, bytes):
82
+ return cls.from_grdecl(unit_string.decode("ascii"))
83
+ return cls.from_grdecl(unit_string)
84
+
85
+
86
+ @dataclass
87
+ class GrdeclKeyword:
88
+ """An abstract grdecl keyword.
89
+
90
+ Gives a general implementation of to/from grdecl which recurses on
91
+ fields. Ie. a dataclass such as
92
+ >>> class A(GrdeclKeyword):
93
+ ... ...
94
+ >>> class B(GrdeclKeyword):
95
+ ... ...
96
+
97
+ >>> @dataclass
98
+ ... class MyKeyword(GrdeclKeyword):
99
+ ... field1: A
100
+ ... field2: B
101
+
102
+ will have a to_grdecl method that will be similar to
103
+
104
+ >>> def to_grdecl(self):
105
+ ... return [self.field1.to_grdecl(), self.field2.to_grdecl]
106
+
107
+ Similarly from_grdecl will call fields from_grdecl
108
+ to construct the object
109
+
110
+ >>> @classmethod
111
+ ... def from_grdecl(cls, values):
112
+ ... return cls(A.from_grdecl(values[0]), B.from_grdecl(values[1]))
113
+ """
114
+
115
+ def to_grdecl(self) -> List[Any]:
116
+ """Convert the keyword to list of grdecl keyword values.
117
+ Returns:
118
+ list of values of the given keyword. ie. The
119
+ keyword read from "SPECGRID 1 1 1 F" should return
120
+ [1,1,1,CoordinateType.CYLINDRICAL]
121
+ """
122
+ return [value.to_grdecl() for value in astuple(self)]
123
+
124
+ def to_bgrdecl(self) -> List[Any]:
125
+ return [value.to_bgrdecl() for value in astuple(self)]
126
+
127
+ @classmethod
128
+ def from_bgrdecl(cls, values):
129
+ object_types = [f.type for f in fields(cls)]
130
+ return cls(*[typ.from_bgrdecl(val) for val, typ in zip(values, object_types)])
131
+
132
+ @classmethod
133
+ def from_grdecl(cls, values):
134
+ """Convert list of grdecl keyword values to a keyword.
135
+ Args:
136
+ values(list): list of values given after the keyword in
137
+ the grdecl file.
138
+ Returns:
139
+ A GrdeclKeyword constructed from the given values.
140
+ """
141
+ object_types = [f.type for f in fields(cls)]
142
+ return cls(*[typ.from_grdecl(val) for val, typ in zip(values, object_types)])
143
+
144
+
145
+ @unique
146
+ class Order(Enum):
147
+ """Either increasing or decreasing.
148
+
149
+ Used for the grdecl keywords INC and DEC
150
+ respectively.
151
+ """
152
+
153
+ INCREASING = auto()
154
+ DECREASING = auto()
155
+
156
+ def to_grdecl(self) -> str:
157
+ return str(self.name)[0:3]
158
+
159
+ def to_bgrdecl(self) -> str:
160
+ return self.to_grdecl().ljust(8)
161
+
162
+ @classmethod
163
+ def from_grdecl(cls, order_string):
164
+ if match_keyword(order_string, "INC"):
165
+ return cls.INCREASING
166
+ if match_keyword(order_string, "DEC"):
167
+ return cls.DECREASING
168
+ return None
169
+
170
+ @classmethod
171
+ def from_bgrdecl(cls, unit_string: Union[bytes, str]):
172
+ if isinstance(unit_string, bytes):
173
+ return cls.from_grdecl(unit_string.decode("ascii"))
174
+ return cls.from_grdecl(unit_string)
175
+
176
+
177
+ @unique
178
+ class Handedness(Enum):
179
+ """The handedness of an orientation.
180
+
181
+ Eiter left handed or right handed. Used for the grdecl keywords LEFT and
182
+ RIGHT.
183
+ """
184
+
185
+ LEFT = auto()
186
+ RIGHT = auto()
187
+
188
+ def to_grdecl(self) -> str:
189
+ return self.name
190
+
191
+ def to_bgrdecl(self) -> str:
192
+ return self.to_grdecl().ljust(8)
193
+
194
+ @classmethod
195
+ def from_grdecl(cls, orientation_string: str):
196
+ if match_keyword(orientation_string, "LEFT"):
197
+ return cls.LEFT
198
+ if match_keyword(orientation_string, "RIGHT"):
199
+ return cls.RIGHT
200
+ raise ValueError(f"Unknown handedness string {orientation_string}")
201
+
202
+ @classmethod
203
+ def from_bgrdecl(cls, unit_string: Union[bytes, str]):
204
+ if isinstance(unit_string, bytes):
205
+ return cls.from_grdecl(unit_string.decode("ascii"))
206
+ return cls.from_grdecl(unit_string)
207
+
208
+
209
+ @unique
210
+ class Orientation(Enum):
211
+ """Either up or down, for the grdecl keywords UP and DOWN."""
212
+
213
+ UP = auto()
214
+ DOWN = auto()
215
+
216
+ def to_grdecl(self) -> str:
217
+ return self.name
218
+
219
+ def to_bgrdecl(self) -> str:
220
+ return self.to_grdecl().ljust(8)
221
+
222
+ @classmethod
223
+ def from_grdecl(cls, orientation_string: str):
224
+ if match_keyword(orientation_string, "UP"):
225
+ return cls.UP
226
+ if match_keyword(orientation_string, "DOWN"):
227
+ return cls.DOWN
228
+ raise ValueError(f"Unknown orientation string {orientation_string}")
229
+
230
+ @classmethod
231
+ def from_bgrdecl(cls, unit_string: Union[bytes, str]):
232
+ if isinstance(unit_string, bytes):
233
+ return cls.from_grdecl(unit_string.decode("ascii"))
234
+ return cls.from_grdecl(unit_string)
235
+
236
+
237
+ @dataclass
238
+ class GdOrient(GrdeclKeyword):
239
+ """The GDORIENT keyword gives the orientation of the grid.
240
+
241
+ The three first values is either increasing or decreasing
242
+ depending on whether the corresponding dimension has increasing
243
+ or decreasing coordinates. Then comes the direction of the z dimension,
244
+ and finally the handedness of the orientation. Defaults to
245
+ "GDORIENT INC INC INC DOWN RIGHT /".
246
+ """
247
+
248
+ i_order: Order = Order.INCREASING
249
+ j_order: Order = Order.INCREASING
250
+ k_order: Order = Order.INCREASING
251
+ z_direction: Orientation = Orientation.DOWN
252
+ handedness: Handedness = Handedness.RIGHT
253
+
254
+
255
+ @dataclass
256
+ class GridUnit(GrdeclKeyword):
257
+ """Defines the units used for grid dimensions.
258
+
259
+ The first value is a string describing the units used, defaults to METRES,
260
+ known accepted other units are FIELD and LAB. The last value describes
261
+ whether the measurements are relative to the map or to the origin of
262
+ MAPAXES.
263
+ """
264
+
265
+ unit: Units = Units.METRES
266
+ grid_relative: GridRelative = GridRelative.ORIGIN
267
+
268
+
269
+ @dataclass
270
+ class MapAxes(GrdeclKeyword):
271
+ """The mapaxes keyword gives the local coordinate system of the map.
272
+
273
+ The map coordinate system is given by a point on the y line, the origin and
274
+ a point on the x line. ie. The usual coordinate system is given by "MAPAXES
275
+ 0 1 0 0 1 0 /" where the two first values is a point on the y line, the
276
+ middle two values is the origin, and the last two values is a point on the
277
+ x line.
278
+ """
279
+
280
+ y_line: Tuple[float, float] = (0.0, 1.0)
281
+ origin: Tuple[float, float] = (0.0, 0.0)
282
+ x_line: Tuple[float, float] = (1.0, 0.0)
283
+
284
+ def to_grdecl(self) -> List[float]:
285
+ return list(self.y_line) + list(self.origin) + list(self.x_line)
286
+
287
+ def to_bgrdecl(self) -> List[float]:
288
+ return np.array(self.to_grdecl(), dtype=np.float32)
289
+
290
+ def in_units(self, old_units, new_units):
291
+ factor = old_units.conversion_factor(new_units)
292
+ y_line = (self.y_line[0] * factor, self.y_line[1] * factor)
293
+ x_line = (self.x_line[0] * factor, self.x_line[1] * factor)
294
+ origin = (self.origin[0] * factor, self.origin[1] * factor)
295
+ return MapAxes(y_line, origin, x_line)
296
+
297
+ @classmethod
298
+ def from_bgrdecl(cls, values: List[Union[float, str]]):
299
+ return cls.from_grdecl(values)
300
+
301
+ @classmethod
302
+ def from_grdecl(cls, values: List[Union[float, str]]):
303
+ if len(values) != 6:
304
+ raise ValueError("MAPAXES must contain 6 values")
305
+ return cls(
306
+ (float(values[0]), float(values[1])),
307
+ (float(values[2]), float(values[3])),
308
+ (float(values[4]), float(values[5])),
309
+ )
310
+
311
+
312
+ @unique
313
+ class CoordinateType(Enum):
314
+ """The coordinate system type given in the SPECGRID keyword.
315
+
316
+ This is given by either T or F in the last value of SPECGRID, meaning
317
+ either cylindrical or cartesian coordinates respectively.
318
+ """
319
+
320
+ CARTESIAN = auto()
321
+ CYLINDRICAL = auto()
322
+
323
+ def to_grdecl(self) -> str:
324
+ return "F" if self == CoordinateType.CARTESIAN else "T"
325
+
326
+ def to_bgrdecl(self) -> int:
327
+ return 0 if self == CoordinateType.CARTESIAN else 1
328
+
329
+ @classmethod
330
+ def from_bgrdecl(cls, coord_value: int):
331
+ return cls.CARTESIAN if coord_value == 0 else cls.CYLINDRICAL
332
+
333
+ @classmethod
334
+ def from_grdecl(cls, coord_string: str):
335
+ if match_keyword(coord_string, "F"):
336
+ return cls.CARTESIAN
337
+ if match_keyword(coord_string, "T"):
338
+ return cls.CYLINDRICAL
339
+ raise ValueError(f"Unknown coordinate type {coord_string}")
340
+
341
+
342
+ def transform_xtgeo_coord_by_mapaxes(mapaxes: MapAxes, coord: np.ndarray):
343
+ """Transforms xtgeo coord values by mapaxes.
344
+
345
+ The mapaxes keyword in a grdecl file defines a new coordinate system by
346
+ which x and y values are to be interpreted. The given xtgeo coord
347
+ values are transformed from the local coordinate system defined by
348
+ mapaxes to global coordinates.
349
+ """
350
+ x_point = mapaxes.x_line
351
+ y_point = mapaxes.y_line
352
+ origin = mapaxes.origin
353
+
354
+ x_axis = np.array(x_point) - origin
355
+ y_axis = np.array(y_point) - origin
356
+
357
+ x_unit = x_axis / np.linalg.norm(x_axis)
358
+ y_unit = y_axis / np.linalg.norm(y_axis)
359
+
360
+ coord[:, :, (0, 1)] = (
361
+ origin
362
+ + coord[:, :, 0, np.newaxis] * x_unit
363
+ + coord[:, :, 1, np.newaxis] * y_unit
364
+ )
365
+ coord[:, :, (3, 4)] = (
366
+ origin
367
+ + coord[:, :, 3, np.newaxis] * x_unit
368
+ + coord[:, :, 4, np.newaxis] * y_unit
369
+ )
370
+
371
+ return coord
372
+
373
+
374
+ def inverse_transform_xtgeo_coord_by_mapaxes(mapaxes: MapAxes, coord: np.ndarray):
375
+ """Inversely transforms xtgeo coord values by mapaxes.
376
+
377
+ The inverse operation of transform_xtgeo_coord_by_mapaxes.
378
+ """
379
+ x_point = mapaxes.x_line
380
+ y_point = mapaxes.y_line
381
+ origin = mapaxes.origin
382
+
383
+ x_axis = np.array(x_point) - origin
384
+ y_axis = np.array(y_point) - origin
385
+
386
+ x_unit = x_axis / np.linalg.norm(x_axis)
387
+ y_unit = y_axis / np.linalg.norm(y_axis)
388
+
389
+ coord[:, :, (0, 1)] -= np.array(origin)
390
+ coord[:, :, (3, 4)] -= np.array(origin)
391
+
392
+ inv_transform = np.linalg.inv(np.transpose([x_unit, y_unit]))
393
+
394
+ # The following index manipulation is
395
+ # an optimized version of
396
+
397
+ # nx, ny, _ = coord.shape
398
+ # for i in range(nx):
399
+ # for j in range(ny):
400
+ # coord[i, j, (0, 1)] = inv_transform @ coord[i, j, (0, 1)]
401
+ # coord[i, j, (3, 4)] = inv_transform @ coord[i, j, (3, 4)]
402
+ coord[:, :, (0, 1)] = (
403
+ inv_transform[np.newaxis, np.newaxis, :, :] @ coord[:, :, (0, 1), np.newaxis]
404
+ )[:, :, :, 0]
405
+ coord[:, :, (3, 4)] = (
406
+ inv_transform[np.newaxis, np.newaxis, :, :] @ coord[:, :, (3, 4), np.newaxis]
407
+ )[:, :, :, 0]
408
+ return coord
409
+
410
+
411
+ class EclGrid(ABC):
412
+ """
413
+ The main keywords that describe a grdecl grid is COORD, ZCORN and ACTNUM.
414
+
415
+ The grid is made up of nx*ny*nz cells in three corresponding dimensions.
416
+ The number of cells in each direction is described in the SPECGRID keyword.
417
+
418
+ The values in COORD, ZCORN and ACTNUM are stored flattened in F-order and
419
+ have dimensions (nx+1,ny+1,6), (nx,2,ny,2,nz,2), and (nx,ny,nz) respectively.
420
+
421
+ COORD and ZCORN descibe a corner point geometry for the grid. There is a
422
+ straight line from the bottom to the top of the grid on which the corners
423
+ of each grid lie. COORD describe the top and bottom (x,y,z) values of these
424
+ corner lines, hence, it contains six floats for each corner line.
425
+
426
+ ZCORN has 8 values for each grid, which describes the z-value (height) at
427
+ which that cells corners intersect with the corresponding corner line. The
428
+ order of corners is "left" before "right" in the second dimension of
429
+ ZCORN, "near" before "far" in the fourth dimension , and "upper" before
430
+ "bottom" in the last dimension. Note that this orientation assumes,
431
+ increasing first dimension as to the "right", increasing second dimension
432
+ towards "far", and increasing third dimension as towards "bottom".
433
+
434
+ The topology is such that, assuming no gaps between cells, the (i,j,k)th
435
+ cell and the (i+1,j+1,k+1)th cell share the upper near left corner of the
436
+ (i+1,j+1,k+1)th cell which is the lower far right corner of the (i,j,k)th
437
+ cell.
438
+
439
+ ACTNUM describes the active status of each cell. For simulations without
440
+ dual porosity or thermal, 0 means inactive, 1 means active and other values
441
+ are not used. For dual porosity, 0 means inactive, 1 means matrix only,
442
+ 2 means fracture only, and 3 means both fracture and matrix. For thermal
443
+ simulations, 0 means inactive, 1 means active, 2 means rock volume only,
444
+ 3 means pore volume only.
445
+ """
446
+
447
+ @property
448
+ @abstractmethod
449
+ def coord(self) -> np.ndarray:
450
+ pass
451
+
452
+ @property
453
+ @abstractmethod
454
+ def zcorn(self) -> np.ndarray:
455
+ pass
456
+
457
+ @property
458
+ @abstractmethod
459
+ def actnum(self) -> Optional[np.ndarray]:
460
+ pass
461
+
462
+ def __eq__(self, other) -> bool:
463
+ if not isinstance(other, EclGrid):
464
+ return False
465
+ return (
466
+ (
467
+ (self.actnum is None and other.actnum is None)
468
+ or np.array_equal(self.actnum, other.actnum)
469
+ )
470
+ and np.array_equal(self.coord, other.coord)
471
+ and np.array_equal(self.zcorn, other.zcorn)
472
+ )
473
+
474
+ @property
475
+ @abstractmethod
476
+ def is_map_relative(self) -> bool:
477
+ pass
478
+
479
+ @property
480
+ @abstractmethod
481
+ def mapaxes(self) -> Optional[MapAxes]:
482
+ pass
483
+
484
+ @property
485
+ @abstractmethod
486
+ def dimensions(self) -> Tuple[int, int, int]:
487
+ pass
488
+
489
+ @property
490
+ @abstractmethod
491
+ def map_axis_units(self) -> Units:
492
+ pass
493
+
494
+ @property
495
+ @abstractmethod
496
+ def grid_units(self) -> Units:
497
+ pass
498
+
499
+ @abstractmethod
500
+ def _check_xtgeo_compatible(self):
501
+ pass
502
+
503
+ def convert_grid_units(self, units):
504
+ """Converts the units of the grid
505
+ Args:
506
+ units: The unit to convert to.
507
+
508
+ After convert_grid_units is called, `EclGrid.grid_units == units`.
509
+
510
+ """
511
+ old_grid_units = self.grid_units
512
+ factor = old_grid_units.conversion_factor(units)
513
+ self.coord *= factor
514
+ self.zcorn *= factor
515
+ self.grid_units = units
516
+
517
+ @staticmethod
518
+ def valid_mapaxes(mapaxes: MapAxes) -> bool:
519
+ y_line = mapaxes.y_line
520
+ x_line = mapaxes.x_line
521
+ origin = mapaxes.origin
522
+ x_axis = np.array(x_line) - origin
523
+ y_axis = np.array(y_line) - origin
524
+
525
+ return np.linalg.norm(x_axis) > 1e-5 and np.linalg.norm(y_axis) > 1e-5
526
+
527
+ def _relative_to_transform(self, xtgeo_coord, relative_to=GridRelative.MAP):
528
+ """Handle relative transform of xtgeo_coord()."""
529
+ mapaxes = self.mapaxes
530
+ has_mapaxes = True
531
+ if self.mapaxes is None:
532
+ mapaxes = MapAxes()
533
+ has_mapaxes = False
534
+ axis_units = self.map_axis_units
535
+
536
+ has_axis_units = True
537
+ if axis_units is None:
538
+ axis_units = self.grid_units
539
+ has_axis_units = False
540
+
541
+ if has_mapaxes and not has_axis_units:
542
+ warnings.warn(
543
+ "Axis units specification is missing in input, assuming that no "
544
+ "unit conversion is necessary"
545
+ )
546
+
547
+ if relative_to == GridRelative.MAP and not self.is_map_relative:
548
+ xtgeo_coord *= self.grid_units.conversion_factor(axis_units)
549
+ xtgeo_coord = transform_xtgeo_coord_by_mapaxes(mapaxes, xtgeo_coord)
550
+
551
+ elif relative_to == GridRelative.ORIGIN and self.is_map_relative:
552
+ mapaxes = mapaxes.in_units(axis_units, self.grid_units)
553
+ xtgeo_coord = inverse_transform_xtgeo_coord_by_mapaxes(mapaxes, xtgeo_coord)
554
+
555
+ return xtgeo_coord
556
+
557
+ def xtgeo_coord(self, relative_to=GridRelative.MAP):
558
+ """
559
+ Args:
560
+ relative_to: Specifies the axis system the coords should be
561
+ relative to, either map or grid. Defaults to map. If relative_to is
562
+ GridRelative.MAP then the resulting units are that of map_axis_units.
563
+ Returns:
564
+ coord in xtgeo format.
565
+ """
566
+ self._check_xtgeo_compatible()
567
+ nx, ny, _ = self.dimensions
568
+
569
+ xtgeo_coord = (
570
+ np.swapaxes(self.coord.reshape((ny + 1, nx + 1, 6)), 0, 1)
571
+ .astype(np.float64)
572
+ .copy()
573
+ )
574
+ xtgeo_coord = self._relative_to_transform(xtgeo_coord, relative_to)
575
+ return np.ascontiguousarray(xtgeo_coord)
576
+
577
+ def xtgeo_actnum(self):
578
+ """
579
+ Returns:
580
+ actnum in xtgeo format.
581
+ """
582
+ self._check_xtgeo_compatible()
583
+ nx, ny, nz = self.dimensions
584
+ if self.actnum is None:
585
+ return np.ones(shape=(nx, ny, nz), dtype=np.int32)
586
+ activity_number = self.actnum.reshape((nx, ny, nz), order="F")
587
+ return np.ascontiguousarray(activity_number)
588
+
589
+ def xtgeo_zcorn(self, relative_to=GridRelative.MAP):
590
+ """
591
+ relative_to: Specifies the axis system the zcorn should be
592
+ relative to, either map or origin. Defaults to map. For zcorn
593
+ this only affects which units zcorn will be in, grid units for
594
+ relative to origin, map units for relative to map.
595
+ Returns:
596
+ zcorn in xtgeo format.
597
+ """
598
+ self._check_xtgeo_compatible()
599
+ nx, ny, nz = self.dimensions
600
+ zcorn = self.zcorn.reshape((2, nx, 2, ny, 2, nz), order="F")
601
+
602
+ if not np.allclose(
603
+ zcorn[:, :, :, :, 1, : nz - 1], zcorn[:, :, :, :, 0, 1:], atol=1e-2
604
+ ):
605
+ warnings.warn(
606
+ "An Eclipse style grid with vertical ZCORN splits "
607
+ "or overlaps between vertical neighbouring cells is detected. XTGeo "
608
+ "will import the grid as if the cell layers are connected, "
609
+ "hence check result carefully. "
610
+ "(Note also that this check both active and inactive cells!)",
611
+ UserWarning,
612
+ )
613
+
614
+ result = np.zeros((nx + 1, ny + 1, nz + 1, 4), dtype=np.float32)
615
+
616
+ # xtgeo uses 4 z values per i,j,k to mean the 4 z values of
617
+ # adjacent cells for the cornerline at position i,j,k assuming
618
+ # no difference in z values between upper and lower cells. In
619
+ # the order sw,se,nw,ne.
620
+
621
+ # In grdecl, there are 8 zvalues per i,j,k meaning the z values
622
+ # of each corner for the cell at i,j,k. In
623
+ # the order "left" (west) before "right" (east) , "near" (south)
624
+ # before "far" (north) , "upper" before "bottom"
625
+
626
+ # set the nw value of cornerline i+1,j to
627
+ # the near right corner of cell i,j
628
+ result[1:, :ny, 0:nz, 2] = zcorn[1, :, 0, :, 0, :]
629
+ result[1:, :ny, nz, 2] = zcorn[1, :, 0, :, 1, nz - 1]
630
+
631
+ # set the ne value of cornerline i,j to
632
+ # the near left corner of cell i,j
633
+ result[:nx, :ny, 0:nz, 3] = zcorn[0, :, 0, :, 0, :]
634
+ result[:nx, :ny, nz, 3] = zcorn[0, :, 0, :, 1, nz - 1]
635
+
636
+ # set the sw value of cornerline i+1,j+1 to
637
+ # the far right corner of cell i,j to
638
+ result[1:, 1:, 0:nz, 0] = zcorn[1, :, 1, :, 0, :]
639
+ result[1:, 1:, nz, 0] = zcorn[1, :, 1, :, 1, nz - 1]
640
+
641
+ # set the se value of cornerline i,j+1 to
642
+ # the far left corner of cell i,j
643
+ result[:nx, 1:, 0:nz, 1] = zcorn[0, :, 1, :, 0, :]
644
+ result[:nx, 1:, nz, 1] = zcorn[0, :, 1, :, 1, nz - 1]
645
+
646
+ self.duplicate_insignificant_xtgeo_zcorn(result)
647
+
648
+ axis_units = self.map_axis_units
649
+ if axis_units is None:
650
+ axis_units = self.grid_units
651
+ if relative_to == GridRelative.MAP and not self.is_map_relative:
652
+ result *= self.grid_units.conversion_factor(self.map_axis_units)
653
+
654
+ return np.ascontiguousarray(result)
655
+
656
+ def duplicate_insignificant_xtgeo_zcorn(self, zcorn: np.ndarray):
657
+ """Duplicates values on the faces and corners of the grid.
658
+
659
+ The xtgeo format has 4 z values for all cornerlines, refering
660
+ to the z value for the corresponding corner of the cell that is
661
+ sw, se, nw and ne of the cornerline. However, for the cornerlines
662
+ that are on the boundary of the grid, there might be no such cell, ie.
663
+ north of the northernmost cornerlines there are no cells. These are
664
+ then duplicated of corresponding cells in the opposite direction.
665
+
666
+ """
667
+ nx, ny, nz = self.dimensions
668
+
669
+ # south of the sw->se face is duplicate
670
+ # of the north values
671
+ zcorn[1:nx, 0, :, 0] = zcorn[1:nx, 0, :, 2]
672
+ zcorn[1:nx, 0, :, 1] = zcorn[1:nx, 0, :, 3]
673
+
674
+ # vertical sw corner line is duplicates of
675
+ # the ne value
676
+ zcorn[0, 0, :, 0] = zcorn[0, 0, :, 3]
677
+ zcorn[0, 0, :, 1] = zcorn[0, 0, :, 3]
678
+ zcorn[0, 0, :, 2] = zcorn[0, 0, :, 3]
679
+
680
+ # east values of the se->ne face
681
+ # is duplicates of the corresponding
682
+ # west values
683
+ zcorn[nx, 1:ny, :, 1] = zcorn[nx, 1:ny, :, 0]
684
+ zcorn[nx, 1:ny, :, 3] = zcorn[nx, 1:ny, :, 2]
685
+
686
+ # vertical se corner line is all duplicates
687
+ # of its nw value
688
+ zcorn[nx, 0, :, 0] = zcorn[nx, 0, :, 2]
689
+ zcorn[nx, 0, :, 1] = zcorn[nx, 0, :, 2]
690
+ zcorn[nx, 0, :, 3] = zcorn[nx, 0, :, 2]
691
+
692
+ # north values of the nw->ne face is duplicates
693
+ # of the corresponding south values
694
+ zcorn[1:nx, ny, :, 2] = zcorn[1:nx, ny, :, 0]
695
+ zcorn[1:nx, ny, :, 3] = zcorn[1:nx, ny, :, 1]
696
+
697
+ # vertical nw corner line is all duplicates
698
+ # of the se value
699
+ zcorn[0, ny, :, 0] = zcorn[0, ny, :, 1]
700
+ zcorn[0, ny, :, 2] = zcorn[0, ny, :, 1]
701
+ zcorn[0, ny, :, 3] = zcorn[0, ny, :, 1]
702
+
703
+ # west values of the sw->nw face is duplicates
704
+ # of corresponding east values
705
+ zcorn[0, 1:ny, :, 0] = zcorn[0, 1:ny, :, 1]
706
+ zcorn[0, 1:ny, :, 2] = zcorn[0, 1:ny, :, 3]
707
+
708
+ # vertical ne corner line is all duplicates
709
+ # of the sw value
710
+ zcorn[nx, ny, :, 1] = zcorn[nx, ny, :, 0]
711
+ zcorn[nx, ny, :, 2] = zcorn[nx, ny, :, 0]
712
+ zcorn[nx, ny, :, 3] = zcorn[nx, ny, :, 0]
713
+
714
+ @classmethod
715
+ @abstractmethod
716
+ def default_settings_grid(
717
+ cls,
718
+ coord: np.ndarray,
719
+ zcorn: np.ndarray,
720
+ actnum: Optional[np.ndarray],
721
+ size: Tuple[int, int, int],
722
+ ):
723
+ pass
724
+
725
+ @classmethod
726
+ def from_xtgeo_grid(cls, xtgeo_grid):
727
+ xtgeo_grid._set_xtgformat2()
728
+
729
+ nx, ny, nz = xtgeo_grid.dimensions
730
+ actnum = xtgeo_grid._actnumsv.reshape(nx, ny, nz)
731
+ actnum = actnum.ravel(order="F")
732
+ if np.all(actnum == 1):
733
+ actnum = None
734
+ coord = np.ascontiguousarray(np.swapaxes(xtgeo_grid._coordsv, 0, 1).ravel())
735
+ zcorn = np.zeros((2, nx, 2, ny, 2, nz))
736
+ xtgeo_zcorn = xtgeo_grid._zcornsv.reshape((nx + 1, ny + 1, nz + 1, 4))
737
+
738
+ # This is the reverse operation of that of xtgeo_zcorn,
739
+ # see that function for description of operations.
740
+
741
+ # set the nw value of cornerline i+1,j to
742
+ # the near right corner of cell i,j
743
+ zcorn[1, :, 0, :, 1, :] = xtgeo_zcorn[1:, :ny, 1:, 2]
744
+ zcorn[1, :, 0, :, 0, :] = xtgeo_zcorn[1:, :ny, :nz, 2]
745
+
746
+ # set the ne value of cornerline i,j to
747
+ # the near left corner of cell i,j
748
+ zcorn[0, :, 0, :, 1, :] = xtgeo_zcorn[:nx, :ny, 1:, 3]
749
+ zcorn[0, :, 0, :, 0, :] = xtgeo_zcorn[:nx, :ny, :nz, 3]
750
+
751
+ # set the sw value of cornerline i+1,j+1 to
752
+ # the far right corner of cell i,j to
753
+ zcorn[1, :, 1, :, 1, :] = xtgeo_zcorn[1:, 1:, 1:, 0]
754
+ zcorn[1, :, 1, :, 0, :] = xtgeo_zcorn[1:, 1:, :nz, 0]
755
+
756
+ # set the se value of cornerline i,j+1 to
757
+ # the far left corner of cell i,j
758
+ zcorn[0, :, 1, :, 1, :] = xtgeo_zcorn[:nx, 1:, 1:, 1]
759
+ zcorn[0, :, 1, :, 0, :] = xtgeo_zcorn[:nx, 1:, :nz, 1]
760
+
761
+ zcorn = zcorn.ravel(order="F")
762
+
763
+ result = cls.default_settings_grid(
764
+ coord=coord,
765
+ zcorn=zcorn,
766
+ actnum=actnum,
767
+ size=(nx, ny, nz),
768
+ )
769
+
770
+ if xtgeo_grid.units is not None:
771
+ result.grid_units = xtgeo_grid.units
772
+ result.map_axis_units = xtgeo_grid.units
773
+
774
+ return result