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.
- cxtgeo.py +558 -0
- cxtgeoPYTHON_wrap.c +19537 -0
- xtgeo/__init__.py +246 -0
- xtgeo/_cxtgeo.cpython-313-aarch64-linux-gnu.so +0 -0
- xtgeo/_internal.cpython-313-aarch64-linux-gnu.so +0 -0
- xtgeo/common/__init__.py +19 -0
- xtgeo/common/_angles.py +29 -0
- xtgeo/common/_xyz_enum.py +50 -0
- xtgeo/common/calc.py +396 -0
- xtgeo/common/constants.py +30 -0
- xtgeo/common/exceptions.py +42 -0
- xtgeo/common/log.py +93 -0
- xtgeo/common/sys.py +166 -0
- xtgeo/common/types.py +18 -0
- xtgeo/common/version.py +34 -0
- xtgeo/common/xtgeo_dialog.py +604 -0
- xtgeo/cube/__init__.py +9 -0
- xtgeo/cube/_cube_export.py +214 -0
- xtgeo/cube/_cube_import.py +532 -0
- xtgeo/cube/_cube_roxapi.py +180 -0
- xtgeo/cube/_cube_utils.py +287 -0
- xtgeo/cube/_cube_window_attributes.py +273 -0
- xtgeo/cube/cube1.py +1023 -0
- xtgeo/grid3d/__init__.py +15 -0
- xtgeo/grid3d/_ecl_grid.py +774 -0
- xtgeo/grid3d/_ecl_inte_head.py +152 -0
- xtgeo/grid3d/_ecl_logi_head.py +71 -0
- xtgeo/grid3d/_ecl_output_file.py +81 -0
- xtgeo/grid3d/_egrid.py +1004 -0
- xtgeo/grid3d/_find_gridprop_in_eclrun.py +625 -0
- xtgeo/grid3d/_grdecl_format.py +309 -0
- xtgeo/grid3d/_grdecl_grid.py +400 -0
- xtgeo/grid3d/_grid3d.py +29 -0
- xtgeo/grid3d/_grid3d_fence.py +284 -0
- xtgeo/grid3d/_grid3d_utils.py +228 -0
- xtgeo/grid3d/_grid_boundary.py +76 -0
- xtgeo/grid3d/_grid_etc1.py +1595 -0
- xtgeo/grid3d/_grid_export.py +222 -0
- xtgeo/grid3d/_grid_hybrid.py +50 -0
- xtgeo/grid3d/_grid_import.py +79 -0
- xtgeo/grid3d/_grid_import_ecl.py +101 -0
- xtgeo/grid3d/_grid_import_roff.py +135 -0
- xtgeo/grid3d/_grid_import_xtgcpgeom.py +375 -0
- xtgeo/grid3d/_grid_refine.py +258 -0
- xtgeo/grid3d/_grid_roxapi.py +292 -0
- xtgeo/grid3d/_grid_translate_coords.py +154 -0
- xtgeo/grid3d/_grid_wellzone.py +165 -0
- xtgeo/grid3d/_gridprop_export.py +202 -0
- xtgeo/grid3d/_gridprop_import_eclrun.py +164 -0
- xtgeo/grid3d/_gridprop_import_grdecl.py +130 -0
- xtgeo/grid3d/_gridprop_import_roff.py +52 -0
- xtgeo/grid3d/_gridprop_import_xtgcpprop.py +168 -0
- xtgeo/grid3d/_gridprop_lowlevel.py +171 -0
- xtgeo/grid3d/_gridprop_op1.py +272 -0
- xtgeo/grid3d/_gridprop_roxapi.py +301 -0
- xtgeo/grid3d/_gridprop_value_init.py +140 -0
- xtgeo/grid3d/_gridprops_import_eclrun.py +344 -0
- xtgeo/grid3d/_gridprops_import_roff.py +83 -0
- xtgeo/grid3d/_roff_grid.py +470 -0
- xtgeo/grid3d/_roff_parameter.py +303 -0
- xtgeo/grid3d/grid.py +2957 -0
- xtgeo/grid3d/grid_properties.py +699 -0
- xtgeo/grid3d/grid_property.py +1313 -0
- xtgeo/grid3d/types.py +15 -0
- xtgeo/include/eigen3/Eigen/Cholesky +45 -0
- xtgeo/include/eigen3/Eigen/CholmodSupport +48 -0
- xtgeo/include/eigen3/Eigen/Core +384 -0
- xtgeo/include/eigen3/Eigen/Dense +7 -0
- xtgeo/include/eigen3/Eigen/Eigen +2 -0
- xtgeo/include/eigen3/Eigen/Eigenvalues +60 -0
- xtgeo/include/eigen3/Eigen/Geometry +59 -0
- xtgeo/include/eigen3/Eigen/Householder +29 -0
- xtgeo/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
- xtgeo/include/eigen3/Eigen/Jacobi +32 -0
- xtgeo/include/eigen3/Eigen/KLUSupport +41 -0
- xtgeo/include/eigen3/Eigen/LU +47 -0
- xtgeo/include/eigen3/Eigen/MetisSupport +35 -0
- xtgeo/include/eigen3/Eigen/OrderingMethods +70 -0
- xtgeo/include/eigen3/Eigen/PaStiXSupport +49 -0
- xtgeo/include/eigen3/Eigen/PardisoSupport +35 -0
- xtgeo/include/eigen3/Eigen/QR +50 -0
- xtgeo/include/eigen3/Eigen/QtAlignedMalloc +39 -0
- xtgeo/include/eigen3/Eigen/SPQRSupport +34 -0
- xtgeo/include/eigen3/Eigen/SVD +50 -0
- xtgeo/include/eigen3/Eigen/Sparse +34 -0
- xtgeo/include/eigen3/Eigen/SparseCholesky +37 -0
- xtgeo/include/eigen3/Eigen/SparseCore +69 -0
- xtgeo/include/eigen3/Eigen/SparseLU +50 -0
- xtgeo/include/eigen3/Eigen/SparseQR +36 -0
- xtgeo/include/eigen3/Eigen/StdDeque +27 -0
- xtgeo/include/eigen3/Eigen/StdList +26 -0
- xtgeo/include/eigen3/Eigen/StdVector +27 -0
- xtgeo/include/eigen3/Eigen/SuperLUSupport +64 -0
- xtgeo/include/eigen3/Eigen/UmfPackSupport +40 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- xtgeo/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
- xtgeo/include/eigen3/Eigen/src/Core/Array.h +417 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
- xtgeo/include/eigen3/Eigen/src/Core/Assign.h +90 -0
- xtgeo/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
- xtgeo/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
- xtgeo/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
- xtgeo/include/eigen3/Eigen/src/Core/Block.h +448 -0
- xtgeo/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
- xtgeo/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
- xtgeo/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
- xtgeo/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
- xtgeo/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
- xtgeo/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
- xtgeo/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
- xtgeo/include/eigen3/Eigen/src/Core/Dot.h +318 -0
- xtgeo/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
- xtgeo/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- xtgeo/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
- xtgeo/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
- xtgeo/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
- xtgeo/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
- xtgeo/include/eigen3/Eigen/src/Core/IO.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
- xtgeo/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Core/Map.h +171 -0
- xtgeo/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
- xtgeo/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
- xtgeo/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- xtgeo/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
- xtgeo/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
- xtgeo/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
- xtgeo/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
- xtgeo/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
- xtgeo/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
- xtgeo/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
- xtgeo/include/eigen3/Eigen/src/Core/Product.h +191 -0
- xtgeo/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
- xtgeo/include/eigen3/Eigen/src/Core/Random.h +218 -0
- xtgeo/include/eigen3/Eigen/src/Core/Redux.h +515 -0
- xtgeo/include/eigen3/Eigen/src/Core/Ref.h +381 -0
- xtgeo/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
- xtgeo/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
- xtgeo/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
- xtgeo/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
- xtgeo/include/eigen3/Eigen/src/Core/Select.h +164 -0
- xtgeo/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
- xtgeo/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- xtgeo/include/eigen3/Eigen/src/Core/Solve.h +188 -0
- xtgeo/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
- xtgeo/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
- xtgeo/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
- xtgeo/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
- xtgeo/include/eigen3/Eigen/src/Core/Stride.h +116 -0
- xtgeo/include/eigen3/Eigen/src/Core/Swap.h +68 -0
- xtgeo/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
- xtgeo/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
- xtgeo/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
- xtgeo/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
- xtgeo/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
- xtgeo/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- xtgeo/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
- xtgeo/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
- xtgeo/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
- xtgeo/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- xtgeo/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
- xtgeo/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
- xtgeo/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
- xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
- xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- xtgeo/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
- xtgeo/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
- xtgeo/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- xtgeo/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- xtgeo/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- xtgeo/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
- xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- xtgeo/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- xtgeo/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
- xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
- xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- xtgeo/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
- xtgeo/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- xtgeo/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
- xtgeo/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- xtgeo/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- xtgeo/include/eigen3/Eigen/src/misc/Image.h +82 -0
- xtgeo/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
- xtgeo/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
- xtgeo/include/eigen3/Eigen/src/misc/blas.h +440 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapack.h +152 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- xtgeo/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
- xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- xtgeo/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
- xtgeo/include/eigen3/signature_of_eigen3_matrix_library +1 -0
- xtgeo/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
- xtgeo/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
- xtgeo/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
- xtgeo/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/BVH +95 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
- xtgeo/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
- xtgeo/include/eigen3/unsupported/Eigen/FFT +419 -0
- xtgeo/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
- xtgeo/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
- xtgeo/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
- xtgeo/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
- xtgeo/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
- xtgeo/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
- xtgeo/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
- xtgeo/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
- xtgeo/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
- xtgeo/include/eigen3/unsupported/Eigen/Polynomials +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/Skyline +39 -0
- xtgeo/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
- xtgeo/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
- xtgeo/include/eigen3/unsupported/Eigen/Splines +35 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
- xtgeo/io/__init__.py +1 -0
- xtgeo/io/_file.py +594 -0
- xtgeo/metadata/__init__.py +17 -0
- xtgeo/metadata/metadata.py +435 -0
- xtgeo/roxutils/__init__.py +7 -0
- xtgeo/roxutils/_roxar_loader.py +54 -0
- xtgeo/roxutils/_roxutils_etc.py +122 -0
- xtgeo/roxutils/roxutils.py +207 -0
- xtgeo/share/eigen3/cmake/Eigen3Config.cmake +37 -0
- xtgeo/share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
- xtgeo/share/eigen3/cmake/Eigen3Targets.cmake +106 -0
- xtgeo/share/eigen3/cmake/UseEigen3.cmake +6 -0
- xtgeo/share/pkgconfig/eigen3.pc +9 -0
- xtgeo/surface/__init__.py +18 -0
- xtgeo/surface/_regsurf_boundary.py +26 -0
- xtgeo/surface/_regsurf_cube.py +210 -0
- xtgeo/surface/_regsurf_cube_window.py +391 -0
- xtgeo/surface/_regsurf_cube_window_v2.py +297 -0
- xtgeo/surface/_regsurf_cube_window_v3.py +360 -0
- xtgeo/surface/_regsurf_export.py +388 -0
- xtgeo/surface/_regsurf_grid3d.py +275 -0
- xtgeo/surface/_regsurf_gridding.py +347 -0
- xtgeo/surface/_regsurf_ijxyz_parser.py +278 -0
- xtgeo/surface/_regsurf_import.py +347 -0
- xtgeo/surface/_regsurf_lowlevel.py +122 -0
- xtgeo/surface/_regsurf_oper.py +538 -0
- xtgeo/surface/_regsurf_roxapi.py +241 -0
- xtgeo/surface/_regsurf_utils.py +81 -0
- xtgeo/surface/_surfs_import.py +43 -0
- xtgeo/surface/_zmap_parser.py +138 -0
- xtgeo/surface/regular_surface.py +2962 -0
- xtgeo/surface/surfaces.py +276 -0
- xtgeo/well/__init__.py +24 -0
- xtgeo/well/_blockedwell_roxapi.py +241 -0
- xtgeo/well/_blockedwells_roxapi.py +68 -0
- xtgeo/well/_well_aux.py +30 -0
- xtgeo/well/_well_io.py +327 -0
- xtgeo/well/_well_oper.py +483 -0
- xtgeo/well/_well_roxapi.py +304 -0
- xtgeo/well/_wellmarkers.py +486 -0
- xtgeo/well/_wells_utils.py +158 -0
- xtgeo/well/blocked_well.py +220 -0
- xtgeo/well/blocked_wells.py +134 -0
- xtgeo/well/well1.py +1516 -0
- xtgeo/well/wells.py +211 -0
- xtgeo/xyz/__init__.py +6 -0
- xtgeo/xyz/_polygons_oper.py +272 -0
- xtgeo/xyz/_xyz.py +758 -0
- xtgeo/xyz/_xyz_data.py +646 -0
- xtgeo/xyz/_xyz_io.py +737 -0
- xtgeo/xyz/_xyz_lowlevel.py +42 -0
- xtgeo/xyz/_xyz_oper.py +613 -0
- xtgeo/xyz/_xyz_roxapi.py +766 -0
- xtgeo/xyz/points.py +698 -0
- xtgeo/xyz/polygons.py +827 -0
- xtgeo-4.13.1.dist-info/METADATA +146 -0
- xtgeo-4.13.1.dist-info/RECORD +654 -0
- xtgeo-4.13.1.dist-info/WHEEL +6 -0
- xtgeo-4.13.1.dist-info/licenses/LICENSE.md +165 -0
- xtgeo.libs/libgomp-a49a47f9.so.1.0.0 +0 -0
|
@@ -0,0 +1,625 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
import itertools
|
|
3
|
+
import operator
|
|
4
|
+
import pathlib
|
|
5
|
+
import warnings
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import Dict, List, Literal, Optional, Union
|
|
8
|
+
|
|
9
|
+
import numpy as np
|
|
10
|
+
import resfo
|
|
11
|
+
|
|
12
|
+
import xtgeo
|
|
13
|
+
|
|
14
|
+
from ._ecl_inte_head import InteHead
|
|
15
|
+
from ._ecl_logi_head import LogiHead
|
|
16
|
+
from ._ecl_output_file import Phases
|
|
17
|
+
from ._grdecl_format import match_keyword
|
|
18
|
+
|
|
19
|
+
sat_keys = ["SOIL", "SGAS", "SWAT"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def filter_lgr(generator):
|
|
23
|
+
try:
|
|
24
|
+
while True:
|
|
25
|
+
entry = next(generator)
|
|
26
|
+
if entry.read_keyword() == "LGR":
|
|
27
|
+
warnings.warn(
|
|
28
|
+
"Found LGR in ecl run file. "
|
|
29
|
+
"LGR's are not directly supported, "
|
|
30
|
+
"instead only global values are imported."
|
|
31
|
+
)
|
|
32
|
+
while entry.read_keyword() != "ENDLGR":
|
|
33
|
+
entry = next(generator)
|
|
34
|
+
else:
|
|
35
|
+
yield entry
|
|
36
|
+
except StopIteration:
|
|
37
|
+
return
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# Based on which phases are present some saturation values are given default
|
|
41
|
+
# values, e.g. if phases=Phases.OIL, the saturation of oil ("SOIL") is 1.0 and
|
|
42
|
+
# all other phases are 0.0.
|
|
43
|
+
DEFAULT_SATURATIONS = {
|
|
44
|
+
Phases.OIL: {
|
|
45
|
+
"SOIL": 1.0,
|
|
46
|
+
"SWAT": 0.0,
|
|
47
|
+
"SGAS": 0.0,
|
|
48
|
+
},
|
|
49
|
+
Phases.GAS: {
|
|
50
|
+
"SOIL": 0.0,
|
|
51
|
+
"SWAT": 0.0,
|
|
52
|
+
"SGAS": 1.0,
|
|
53
|
+
},
|
|
54
|
+
Phases.WATER: {
|
|
55
|
+
"SOIL": 0.0,
|
|
56
|
+
"SWAT": 1.0,
|
|
57
|
+
"SGAS": 0.0,
|
|
58
|
+
},
|
|
59
|
+
Phases.OIL_WATER: {
|
|
60
|
+
"SGAS": 0.0,
|
|
61
|
+
},
|
|
62
|
+
Phases.OIL_GAS: {
|
|
63
|
+
"SWAT": 0.0,
|
|
64
|
+
},
|
|
65
|
+
Phases.GAS_WATER: {
|
|
66
|
+
"SOIL": 0.0,
|
|
67
|
+
},
|
|
68
|
+
Phases.OIL_WATER_GAS: {},
|
|
69
|
+
Phases.E300_GENERIC: {},
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def remainder_saturations(saturations):
|
|
74
|
+
"""Infers remainder saturations based on sum(saturations.values()) == 1.
|
|
75
|
+
|
|
76
|
+
>>> remainder_saturations({'SWAT': 0.5, 'SGAS': 0.5})
|
|
77
|
+
{'SOIL': 0.0}
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
saturations: Dictionary of phases, such as returned by
|
|
81
|
+
:meth:`default_saturations()`.
|
|
82
|
+
|
|
83
|
+
Returns:
|
|
84
|
+
dictionary of saturation values that can be inferred.
|
|
85
|
+
"""
|
|
86
|
+
if all(k in saturations for k in sat_keys):
|
|
87
|
+
return {}
|
|
88
|
+
if any(k not in sat_keys for k in saturations):
|
|
89
|
+
raise ValueError(f"Unknown saturation keys: {list(saturations.keys())}")
|
|
90
|
+
rest = sum(saturations.values())
|
|
91
|
+
if len(saturations) == 2 or np.allclose(rest, 1.0):
|
|
92
|
+
missing = set(sat_keys).difference(set(saturations.keys()))
|
|
93
|
+
return dict.fromkeys(missing, 1.0 - rest)
|
|
94
|
+
return {}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def peek_headers(generator):
|
|
98
|
+
"""Reads header from a resfo keyword generator without consuming keywords.
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
generator: keyword generator such as returned by resfo.lazy_read
|
|
102
|
+
|
|
103
|
+
Returns:
|
|
104
|
+
Tuple of inthead, logihead, and a modified generator which contains all original
|
|
105
|
+
keywords.
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
def read_headers(generator):
|
|
109
|
+
intehead_array = None
|
|
110
|
+
logihead_array = None
|
|
111
|
+
while intehead_array is None or logihead_array is None:
|
|
112
|
+
entry = next(generator)
|
|
113
|
+
kw = entry.read_keyword()
|
|
114
|
+
if match_keyword(kw, "LOGIHEAD"):
|
|
115
|
+
logihead_array = entry.read_array()
|
|
116
|
+
if match_keyword(kw, "INTEHEAD"):
|
|
117
|
+
intehead_array = entry.read_array()
|
|
118
|
+
|
|
119
|
+
intehead = InteHead(intehead_array)
|
|
120
|
+
logihead = LogiHead.from_file_values(logihead_array, intehead.simulator)
|
|
121
|
+
return intehead, logihead
|
|
122
|
+
|
|
123
|
+
header_generator, generator = itertools.tee(generator)
|
|
124
|
+
try:
|
|
125
|
+
intehead, logihead = read_headers(header_generator)
|
|
126
|
+
except StopIteration as stopit:
|
|
127
|
+
raise ValueError("Reached end of file without reading headers") from stopit
|
|
128
|
+
return intehead, logihead, generator
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def get_fetch_names(name: str) -> List[str]:
|
|
132
|
+
"""Given a gridproperty name, give list of supporting keyword names.
|
|
133
|
+
|
|
134
|
+
>>> get_fetch_names('PORO')
|
|
135
|
+
['PORO']
|
|
136
|
+
>>> get_fetch_names('SWAT')
|
|
137
|
+
['SOIL', 'SGAS', 'SWAT']
|
|
138
|
+
|
|
139
|
+
Args:
|
|
140
|
+
name: The name of a grid property
|
|
141
|
+
Returns:
|
|
142
|
+
List of grid properties that must be fetched from the file.
|
|
143
|
+
|
|
144
|
+
"""
|
|
145
|
+
if any(match_keyword(name, saturation_keyword) for saturation_keyword in sat_keys):
|
|
146
|
+
fetch_names = sat_keys
|
|
147
|
+
else:
|
|
148
|
+
fetch_names = [name]
|
|
149
|
+
return fetch_names
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def read_values(generator, intehead, names, lengths="all"):
|
|
153
|
+
"""Read the given list of parameter values from the generator.
|
|
154
|
+
|
|
155
|
+
Reads the given list of values from the generator. Some saturation
|
|
156
|
+
values may be inferred from the invariant sum(saturations.values()) == 1.0
|
|
157
|
+
(see :meth:`remainder_saturations()`.
|
|
158
|
+
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
def flatten(lst):
|
|
162
|
+
return functools.reduce(operator.iconcat, lst, [])
|
|
163
|
+
|
|
164
|
+
fetch_names = set(flatten([get_fetch_names(name) for name in names]))
|
|
165
|
+
defaulted = []
|
|
166
|
+
if names == "all":
|
|
167
|
+
values = {}
|
|
168
|
+
else:
|
|
169
|
+
values = DEFAULT_SATURATIONS[intehead.phases].copy()
|
|
170
|
+
defaulted = list(values.keys())
|
|
171
|
+
|
|
172
|
+
for entry in generator:
|
|
173
|
+
if all(name in values for name in fetch_names):
|
|
174
|
+
break
|
|
175
|
+
kw = entry.read_keyword()
|
|
176
|
+
if lengths != "all" and entry.read_length() not in lengths:
|
|
177
|
+
continue
|
|
178
|
+
if names == "all":
|
|
179
|
+
key = kw.rstrip()
|
|
180
|
+
array = entry.read_array()
|
|
181
|
+
if np.issubdtype(array.dtype, np.number) or np.issubdtype(
|
|
182
|
+
array.dtype, bool
|
|
183
|
+
):
|
|
184
|
+
values[key] = entry.read_array()
|
|
185
|
+
else:
|
|
186
|
+
matched = [name for name in fetch_names if match_keyword(kw, name)]
|
|
187
|
+
if len(matched) == 1:
|
|
188
|
+
if matched[0] in values and matched[0] not in defaulted:
|
|
189
|
+
raise ValueError(f"Found duplicate keyword {matched[0]}")
|
|
190
|
+
values[matched[0]] = entry.read_array()
|
|
191
|
+
elif len(matched) > 1:
|
|
192
|
+
# This should not happen if get_fetch_names and
|
|
193
|
+
# match_keyword work as intended
|
|
194
|
+
raise ValueError(f"Ambiguous keywords {matched} matched vs {kw}")
|
|
195
|
+
|
|
196
|
+
if names == "all":
|
|
197
|
+
# A more consistent behavior would be to include saturations calculated
|
|
198
|
+
# with remainder_saturations when names=="all" aswell, however, we do
|
|
199
|
+
# not include those to keep backwards compatability.
|
|
200
|
+
# TODO: deprecate this behavior
|
|
201
|
+
return values
|
|
202
|
+
values.update(
|
|
203
|
+
**remainder_saturations({k: values[k] for k in sat_keys if k in values})
|
|
204
|
+
)
|
|
205
|
+
return {name: values[name] for name in names if name in values}
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
def check_grid_match(intehead: InteHead, logihead: LogiHead, grid):
|
|
209
|
+
"""Checks that the init/restart headers matches the grid
|
|
210
|
+
|
|
211
|
+
Checks that the values given in the headers are compatible with
|
|
212
|
+
the grid.
|
|
213
|
+
"""
|
|
214
|
+
dimensions = intehead.num_x, intehead.num_y, intehead.num_z
|
|
215
|
+
|
|
216
|
+
if logihead.dual_porosity:
|
|
217
|
+
dimensions = intehead.num_x, intehead.num_y, intehead.num_z // 2
|
|
218
|
+
|
|
219
|
+
if logihead.dual_porosity != grid.dualporo:
|
|
220
|
+
raise ValueError("Grid dual poro status does not match output file")
|
|
221
|
+
|
|
222
|
+
if dimensions != grid.dimensions:
|
|
223
|
+
raise ValueError(
|
|
224
|
+
"Grid dimensions do not match dimensions given in output file,"
|
|
225
|
+
f" {dimensions} vs {grid.dimensions}"
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
def expand_scalar_values(value, num_cells, dualporo: bool) -> np.ndarray:
|
|
230
|
+
"""Convert from scalar value to filled array of expected size.
|
|
231
|
+
Args:
|
|
232
|
+
value: The potentially scalar value
|
|
233
|
+
num_cells: The number of cells in the grid
|
|
234
|
+
dualporo: Whether the model has dual porosity
|
|
235
|
+
Returns:
|
|
236
|
+
If value is an array, then returns that array, otherwise
|
|
237
|
+
calls np.full with the shape determined by dualporo status and
|
|
238
|
+
number of cells.
|
|
239
|
+
|
|
240
|
+
"""
|
|
241
|
+
if dualporo:
|
|
242
|
+
return np.full(fill_value=value, shape=num_cells * 2)
|
|
243
|
+
return np.full(fill_value=value, shape=num_cells)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
def pick_dualporo_values(
|
|
247
|
+
values: np.ndarray, actind: np.ndarray, num_cells: int, fracture: bool
|
|
248
|
+
) -> np.ndarray:
|
|
249
|
+
"""From array of values in an ecl run file, give the fracture or matrix values.
|
|
250
|
+
|
|
251
|
+
Args:
|
|
252
|
+
values: Array of values from an ecl run file.
|
|
253
|
+
actind: Array of the indecies of active cells.
|
|
254
|
+
num_cells: Total number of cells.
|
|
255
|
+
fracture: Whether to give the fracture or matrix values.
|
|
256
|
+
Returns:
|
|
257
|
+
Array of either fracture or matrix values from the input values.
|
|
258
|
+
"""
|
|
259
|
+
active_size = len(actind)
|
|
260
|
+
indsize = num_cells if len(values) == 2 * num_cells else active_size
|
|
261
|
+
if fracture:
|
|
262
|
+
return values[-indsize:]
|
|
263
|
+
return values[:indsize]
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
def valid_gridprop_lengths(grid):
|
|
267
|
+
num_cells = np.prod(grid.dimensions)
|
|
268
|
+
if grid.dualporo:
|
|
269
|
+
num_fracture = len(grid.get_dualactnum_indices(fracture=True))
|
|
270
|
+
num_matrix = len(grid.get_dualactnum_indices(fracture=False))
|
|
271
|
+
return [2 * num_cells, num_fracture + num_matrix]
|
|
272
|
+
|
|
273
|
+
num_active = len(grid.get_actnum_indices())
|
|
274
|
+
return [num_cells, num_active]
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
def match_values_to_active_cells(
|
|
278
|
+
values,
|
|
279
|
+
actind,
|
|
280
|
+
num_cells,
|
|
281
|
+
) -> np.ndarray:
|
|
282
|
+
"""Expands array of ecl run values to be one-to-one with cells.
|
|
283
|
+
|
|
284
|
+
In the ecl run file, the values might be only those for active cells.
|
|
285
|
+
This funtion expands those values to one for each cell with non-active
|
|
286
|
+
indecies given the xtgeo.UNDEF/xtgeo.UNDEF_INT value.
|
|
287
|
+
|
|
288
|
+
Args:
|
|
289
|
+
values: Array of values from an ecl run file.
|
|
290
|
+
actind: Array of the indecies of active cells.
|
|
291
|
+
num_cells: Total number of cells.
|
|
292
|
+
Returns:
|
|
293
|
+
Array of input values, but guaranteed num_cells length.
|
|
294
|
+
|
|
295
|
+
"""
|
|
296
|
+
if len(values) != len(actind):
|
|
297
|
+
raise ValueError(
|
|
298
|
+
f"Unexpected shape of values in init file: {np.asarray(values).shape}, "
|
|
299
|
+
f"expected to match grid dimensions {num_cells} or "
|
|
300
|
+
f"number of active cells {len(actind)}"
|
|
301
|
+
)
|
|
302
|
+
|
|
303
|
+
undef = xtgeo.UNDEF_INT if np.issubdtype(values.dtype, np.integer) else xtgeo.UNDEF
|
|
304
|
+
result = np.full(fill_value=undef, shape=num_cells, dtype=values.dtype)
|
|
305
|
+
result[actind] = values
|
|
306
|
+
return result
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
def make_gridprop_values(values, grid, fracture):
|
|
310
|
+
"""Converts values given in init or restart file to one suitable for GridProperty.
|
|
311
|
+
|
|
312
|
+
Args:
|
|
313
|
+
values: The array read from the file
|
|
314
|
+
grid: The grid from the ecl run
|
|
315
|
+
fracture: Whether to get the fracture or matrix values
|
|
316
|
+
|
|
317
|
+
Returns:
|
|
318
|
+
Masked array of values indexed by cell
|
|
319
|
+
"""
|
|
320
|
+
num_cells = np.prod(grid.dimensions)
|
|
321
|
+
if np.isscalar(values):
|
|
322
|
+
values = expand_scalar_values(values, num_cells, grid.dualporo)
|
|
323
|
+
|
|
324
|
+
if grid.dualporo:
|
|
325
|
+
actind = grid.get_dualactnum_indices(fracture=fracture, order="F")
|
|
326
|
+
values = pick_dualporo_values(values, actind, num_cells, fracture)
|
|
327
|
+
else:
|
|
328
|
+
actind = grid.get_actnum_indices(order="F")
|
|
329
|
+
|
|
330
|
+
if len(values) != num_cells:
|
|
331
|
+
values = match_values_to_active_cells(values, actind, num_cells)
|
|
332
|
+
|
|
333
|
+
values = values.reshape(grid.dimensions, order="F")
|
|
334
|
+
|
|
335
|
+
if grid.dualporo:
|
|
336
|
+
if fracture:
|
|
337
|
+
values[grid._dualactnum.values == 1] = 0.0
|
|
338
|
+
else:
|
|
339
|
+
values[grid._dualactnum.values == 2] = 0.0
|
|
340
|
+
|
|
341
|
+
return np.ma.masked_where(grid.get_actnum().values < 1, values)
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
def date_from_intehead(intehead: InteHead) -> Optional[int]:
|
|
345
|
+
"""Returns date format for use in GridProperty name given intehead."""
|
|
346
|
+
if any(val is None for val in [intehead.day, intehead.month, intehead.year]):
|
|
347
|
+
return None
|
|
348
|
+
return intehead.day + intehead.month * 100 + intehead.year * 10000
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
def gridprop_params(values, name, date, grid, fracture):
|
|
352
|
+
"""Make dictionary of GridProperty parameters from imported values."""
|
|
353
|
+
result = {}
|
|
354
|
+
result["name"] = name
|
|
355
|
+
result["date"] = str(date) if date is not None else None
|
|
356
|
+
result["fracture"] = fracture
|
|
357
|
+
|
|
358
|
+
result["ncol"], result["nrow"], result["nlay"] = grid.dimensions
|
|
359
|
+
result["dualporo"] = grid.dualporo
|
|
360
|
+
result["dualperm"] = grid.dualperm
|
|
361
|
+
|
|
362
|
+
result["values"] = make_gridprop_values(values, grid, fracture)
|
|
363
|
+
|
|
364
|
+
if np.issubdtype(result["values"].dtype, np.integer):
|
|
365
|
+
uniq = np.unique(values).tolist()
|
|
366
|
+
codes = dict(zip(uniq, uniq))
|
|
367
|
+
codes = {key: str(val) for key, val in codes.items()}
|
|
368
|
+
result["codes"] = codes
|
|
369
|
+
result["values"] = result["values"].astype(np.int32)
|
|
370
|
+
result["discrete"] = True
|
|
371
|
+
else:
|
|
372
|
+
result["codes"] = {}
|
|
373
|
+
result["values"] = result["values"].astype(np.float64)
|
|
374
|
+
result["discrete"] = False
|
|
375
|
+
return result
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
def get_actnum_from_porv(init_filelike, grid):
|
|
379
|
+
"""Override actnum value based on the cell pore volume.
|
|
380
|
+
|
|
381
|
+
Args:
|
|
382
|
+
init_filelike: The init file
|
|
383
|
+
grid: The grid used by the simulator to produce the init file.
|
|
384
|
+
Returns:
|
|
385
|
+
None
|
|
386
|
+
"""
|
|
387
|
+
generator = filter_lgr(resfo.lazy_read(init_filelike))
|
|
388
|
+
intehead, logihead, generator = peek_headers(generator)
|
|
389
|
+
|
|
390
|
+
if "INTERSECT" not in str(intehead.simulator):
|
|
391
|
+
# no need to continue if other simulators than INTERSECT
|
|
392
|
+
return
|
|
393
|
+
|
|
394
|
+
check_grid_match(intehead, logihead, grid)
|
|
395
|
+
porv = read_values(
|
|
396
|
+
generator, intehead, ["PORV"], lengths=valid_gridprop_lengths(grid)
|
|
397
|
+
)
|
|
398
|
+
|
|
399
|
+
original_active = grid.nactive
|
|
400
|
+
if porv:
|
|
401
|
+
if grid.dualporo:
|
|
402
|
+
num_cells = np.prod(grid.dimensions)
|
|
403
|
+
actnum_matrix = np.where(
|
|
404
|
+
porv["PORV"][:num_cells].reshape(grid.dimensions, order="F") > 0.0, 1, 0
|
|
405
|
+
)
|
|
406
|
+
actnum_fracture = np.where(
|
|
407
|
+
porv["PORV"][num_cells:].reshape(grid.dimensions, order="F") > 0.0, 2, 0
|
|
408
|
+
)
|
|
409
|
+
grid._dualactnum.values = actnum_matrix + actnum_fracture
|
|
410
|
+
else:
|
|
411
|
+
acttmp = grid.get_actnum().copy()
|
|
412
|
+
acttmp.values = np.where(
|
|
413
|
+
porv["PORV"].reshape(grid.dimensions, order="F") > 0.0, 1, 0
|
|
414
|
+
)
|
|
415
|
+
grid.set_actnum(acttmp)
|
|
416
|
+
|
|
417
|
+
new_active = grid.nactive
|
|
418
|
+
if new_active != original_active:
|
|
419
|
+
warnings.warn(
|
|
420
|
+
"The original active cells (ACTNUM) has been overrided by PORV criteria "
|
|
421
|
+
"from INIT file (purpose: fix simulator INTERSECT issue)",
|
|
422
|
+
UserWarning,
|
|
423
|
+
)
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
def find_gridprop_from_init_file(
|
|
427
|
+
init_filelike,
|
|
428
|
+
names: Union[List[str], Literal["all"]],
|
|
429
|
+
grid,
|
|
430
|
+
fracture: bool = False,
|
|
431
|
+
) -> List[Dict]:
|
|
432
|
+
"""Finds all parameters in a init matching names.
|
|
433
|
+
|
|
434
|
+
Note: Does not check that all names are found.
|
|
435
|
+
|
|
436
|
+
Args:
|
|
437
|
+
init_filelike: The init file
|
|
438
|
+
names: List of property names to be imported. Can also,
|
|
439
|
+
be set to "all" to import all parameters.
|
|
440
|
+
grid: The grid used by the simulator to produce the init file.
|
|
441
|
+
fracture: If a dual porosity module, indicates that the fracture
|
|
442
|
+
(as apposed to the matrix) grid property should be imported.
|
|
443
|
+
Returns:
|
|
444
|
+
List of GridProperty parameters matching the names.
|
|
445
|
+
|
|
446
|
+
"""
|
|
447
|
+
init_stream = not isinstance(init_filelike, (str, Path))
|
|
448
|
+
if init_stream:
|
|
449
|
+
orig_pos = init_filelike.tell()
|
|
450
|
+
get_actnum_from_porv(init_filelike, grid)
|
|
451
|
+
if init_stream:
|
|
452
|
+
init_filelike.seek(orig_pos, 0)
|
|
453
|
+
generator = filter_lgr(resfo.lazy_read(init_filelike))
|
|
454
|
+
intehead, logihead, generator = peek_headers(generator)
|
|
455
|
+
|
|
456
|
+
check_grid_match(intehead, logihead, grid)
|
|
457
|
+
|
|
458
|
+
date = date_from_intehead(intehead)
|
|
459
|
+
return [
|
|
460
|
+
gridprop_params(v, name, date, grid, fracture)
|
|
461
|
+
for name, v in read_values(
|
|
462
|
+
generator, intehead, names, lengths=valid_gridprop_lengths(grid)
|
|
463
|
+
).items()
|
|
464
|
+
]
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
def section_generator(generator):
|
|
468
|
+
"""Sections the generator as delimited by "SEQNUM" keyword.
|
|
469
|
+
|
|
470
|
+
Unified restart files will repeat properties in sections, one for each
|
|
471
|
+
date. The "SEQNUM" keyword indicates a new section. section_generator
|
|
472
|
+
takes a keyword generator and returns a generator over sections.
|
|
473
|
+
|
|
474
|
+
Note: It does so in a lighweight manner so that a section
|
|
475
|
+
is emptied once the next section is requested, and the original
|
|
476
|
+
generator is iterated as you progress in the sections.
|
|
477
|
+
"""
|
|
478
|
+
try:
|
|
479
|
+
first_seq = next(generator)
|
|
480
|
+
# for a few (rare?) cases, restarts start with TNAVHEAD, not SEQNUM
|
|
481
|
+
if match_keyword(first_seq.read_keyword(), "TNAVHEAD"):
|
|
482
|
+
first_seq = next(generator)
|
|
483
|
+
|
|
484
|
+
if not match_keyword(first_seq.read_keyword(), "SEQNUM"):
|
|
485
|
+
raise ValueError("Restart file did not start with SEQNUM.")
|
|
486
|
+
except StopIteration:
|
|
487
|
+
return
|
|
488
|
+
while True:
|
|
489
|
+
this_section = itertools.takewhile(
|
|
490
|
+
lambda x: not match_keyword(x.read_keyword(), "SEQNUM"), generator
|
|
491
|
+
)
|
|
492
|
+
yield this_section
|
|
493
|
+
# empty the section iterator
|
|
494
|
+
for _ in this_section:
|
|
495
|
+
pass
|
|
496
|
+
# peek ahead to see if there are more elements
|
|
497
|
+
# and stop if there are not
|
|
498
|
+
try:
|
|
499
|
+
entry = next(generator)
|
|
500
|
+
generator = itertools.chain(iter([entry]), generator)
|
|
501
|
+
except StopIteration:
|
|
502
|
+
return
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
def find_gridprops_from_restart_file_sections(
|
|
506
|
+
sections,
|
|
507
|
+
names: Union[List[str], Literal["all"]],
|
|
508
|
+
dates: Union[List[int], Literal["all", "last", "first"]],
|
|
509
|
+
grid,
|
|
510
|
+
fracture: bool = False,
|
|
511
|
+
) -> List[Dict]:
|
|
512
|
+
"""Finds list of parameters from an sections generator.
|
|
513
|
+
|
|
514
|
+
See :meth:`section_generator` for suitable input generator.
|
|
515
|
+
|
|
516
|
+
When there are multiple steps/properties matching the given
|
|
517
|
+
date, the first property matching the date is selected.
|
|
518
|
+
|
|
519
|
+
Args:
|
|
520
|
+
sections: Section generator such as returned by :meth:`section_generator`.
|
|
521
|
+
names: List of property names to be imported. Can also,
|
|
522
|
+
be set to "all" to import all parameters.
|
|
523
|
+
dates: List of xtgeo style dates (e.g. int(19990101)), can also
|
|
524
|
+
be "all", "last" and "first".
|
|
525
|
+
grid: The grid used by the simulator to produce the init file.
|
|
526
|
+
fracture: If a dual porosity module, indicates that the fracture
|
|
527
|
+
(as apposed to the matrix) grid property should be imported.
|
|
528
|
+
Returns:
|
|
529
|
+
List of GridProperty parameters matching the names.
|
|
530
|
+
"""
|
|
531
|
+
first_date = None
|
|
532
|
+
last_date = None
|
|
533
|
+
read_properties = {}
|
|
534
|
+
for section in sections:
|
|
535
|
+
intehead, logihead, section = peek_headers(section)
|
|
536
|
+
check_grid_match(intehead, logihead, grid)
|
|
537
|
+
date = date_from_intehead(intehead)
|
|
538
|
+
|
|
539
|
+
if dates not in ("all", "first", "last") and date not in dates:
|
|
540
|
+
continue
|
|
541
|
+
|
|
542
|
+
section_properties = {
|
|
543
|
+
(name, date): gridprop_params(v, name, date, grid, fracture)
|
|
544
|
+
for name, v in read_values(
|
|
545
|
+
section, intehead, names, lengths=valid_gridprop_lengths(grid)
|
|
546
|
+
).items()
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
if dates == "first":
|
|
550
|
+
if first_date is None:
|
|
551
|
+
first_date = date
|
|
552
|
+
elif date != first_date:
|
|
553
|
+
break
|
|
554
|
+
|
|
555
|
+
elif dates == "last" and date != last_date:
|
|
556
|
+
last_date = date
|
|
557
|
+
read_properties = {}
|
|
558
|
+
|
|
559
|
+
for key in section_properties:
|
|
560
|
+
if key not in read_properties:
|
|
561
|
+
read_properties[key] = section_properties[key]
|
|
562
|
+
return list(read_properties.values())
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
def find_gridprops_from_restart_file(
|
|
566
|
+
restart_filelike,
|
|
567
|
+
names: Union[List[str], Literal["all"]],
|
|
568
|
+
dates: Union[List[int], Literal["all", "first", "last"]],
|
|
569
|
+
grid,
|
|
570
|
+
fracture: bool = False,
|
|
571
|
+
fformat: resfo.Format = resfo.Format.UNFORMATTED,
|
|
572
|
+
) -> List[Dict]:
|
|
573
|
+
"""Finds all parameters in a restart file matching the given names and dates.
|
|
574
|
+
|
|
575
|
+
Note: Does not check that all names are found.
|
|
576
|
+
|
|
577
|
+
Args:
|
|
578
|
+
restart_filelike: The restart file.
|
|
579
|
+
names: List of property names to be imported. Can also,
|
|
580
|
+
be set to "all" to import all parameters.
|
|
581
|
+
dates: List of xtgeo style dates (e.g. int(19990101)), can also
|
|
582
|
+
be "all", "last" and "first".
|
|
583
|
+
grid: The grid used by the simulator to produce the restart file.
|
|
584
|
+
fracture: If a dual porosity module, indicates that the fracture
|
|
585
|
+
(as apposed to the matrix) grid property should be imported.
|
|
586
|
+
Returns:
|
|
587
|
+
List of GridProperty parameters matching the names and dates.
|
|
588
|
+
"""
|
|
589
|
+
close = False
|
|
590
|
+
if isinstance(restart_filelike, (pathlib.Path, str)):
|
|
591
|
+
if fformat == resfo.Format.UNFORMATTED:
|
|
592
|
+
filehandle = open(restart_filelike, "rb") # noqa: SIM115
|
|
593
|
+
close = True
|
|
594
|
+
assume_init_file = (str(restart_filelike)).replace(".UNRST", ".INIT")
|
|
595
|
+
elif fformat == resfo.Format.FORMATTED:
|
|
596
|
+
filehandle = open(restart_filelike, "rt", encoding="ascii") # noqa: SIM115
|
|
597
|
+
close = True
|
|
598
|
+
assume_init_file = (str(restart_filelike)).replace(".FUNRST", ".FINIT")
|
|
599
|
+
else:
|
|
600
|
+
raise ValueError(f"Unsupported restart file format {fformat}")
|
|
601
|
+
|
|
602
|
+
# for INTERSECT, the ACTNUM in the grid is unreliable (bug); hence the ACTNUM is
|
|
603
|
+
# overriden by reading PORV from the INIT file; note that this will not work
|
|
604
|
+
# if input is a stream
|
|
605
|
+
if (Path(assume_init_file)).is_file():
|
|
606
|
+
get_actnum_from_porv(assume_init_file, grid)
|
|
607
|
+
|
|
608
|
+
else:
|
|
609
|
+
# If restart_filelike is not a filename/path we assume
|
|
610
|
+
# its a stream
|
|
611
|
+
filehandle = restart_filelike
|
|
612
|
+
close = False
|
|
613
|
+
try:
|
|
614
|
+
generator = section_generator(filter_lgr(resfo.lazy_read(filehandle)))
|
|
615
|
+
read_properties = find_gridprops_from_restart_file_sections(
|
|
616
|
+
generator,
|
|
617
|
+
names,
|
|
618
|
+
dates,
|
|
619
|
+
grid,
|
|
620
|
+
fracture,
|
|
621
|
+
)
|
|
622
|
+
finally:
|
|
623
|
+
if close:
|
|
624
|
+
filehandle.close()
|
|
625
|
+
return read_properties
|