From 130f222cb0097b6db9ae0f53d5f9d89bf3876920 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Tue, 1 Dec 2015 19:56:26 +0100 Subject: [PATCH] Added regression test for norne PvtLiveOil PVT. --- CMakeLists_files.cmake | 4 +- tests/norne_pvt.data | 527 +++++++++++++++++++++++++++++++++++++++ tests/test_norne_pvt.cpp | 293 ++++++++++++++++++++++ 3 files changed, 823 insertions(+), 1 deletion(-) create mode 100644 tests/norne_pvt.data create mode 100644 tests/test_norne_pvt.cpp diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake index 5ad1e949..4ad55ed2 100644 --- a/CMakeLists_files.cmake +++ b/CMakeLists_files.cmake @@ -199,6 +199,7 @@ list (APPEND TEST_SOURCE_FILES tests/test_gridutilities.cpp tests/test_anisotropiceikonal.cpp tests/test_stoppedwells.cpp + tests/test_norne_pvt.cpp ) # originally generated with the command: @@ -232,7 +233,8 @@ list (APPEND TEST_DATA_FILES tests/TESTTIMER.DATA tests/CORNERPOINT_ACTNUM.DATA tests/wells_stopped.data - ) + tests/norne_pvt.data + ) # originally generated with the command: # find tutorials examples -name '*.c*' -printf '\t%p\n' | sort diff --git a/tests/norne_pvt.data b/tests/norne_pvt.data new file mode 100644 index 00000000..10de7806 --- /dev/null +++ b/tests/norne_pvt.data @@ -0,0 +1,527 @@ +-- This reservoir simulation deck is made available under the Open Database +-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in +-- individual contents of the database are licensed under the Database Contents +-- License: http://opendatacommons.org/licenses/dbcl/1.0/ + +-- Copyright (C) 2015 Statoil + + +TABDIMS +--ntsfun ntpvt nssfun nppvt ntfip nrpvt ntendp + 2 2 33 60 16 60 / + + +PVTG + +-- PRESSURE RSG B-GAS VISCOSITY +-- BAR (CP) + + 50.00 0.00000497 0.024958 0.01441 + 0.00000248 0.024958 0.01440 + 0.00000000 0.024958 0.01440 / + + 70.00 0.00000521 0.017639 0.01491 + 0.00000261 0.017641 0.01490 + 0.00000000 0.017643 0.01490 / + + 90.00 0.00000627 0.013608 0.01547 + 0.00000313 0.013611 0.01546 + 0.00000000 0.013615 0.01544 / + + 110.00 0.00000798 0.011072 0.01609 + 0.00000399 0.011076 0.01607 + 0.00000000 0.011081 0.01605 / + + 130.00 0.00001041 0.009340 0.01677 + 0.00000520 0.009346 0.01674 + 0.00000000 0.009352 0.01671 / + + 150.00 0.00001365 0.008092 0.01752 + 0.00000683 0.008099 0.01748 + 0.00000000 0.008106 0.01743 / + + 170.00 0.00001786 0.007156 0.01834 + 0.00000893 0.007164 0.01827 + 0.00000000 0.007172 0.01819 / + + 190.00 0.00002316 0.006433 0.01923 + 0.00001158 0.006442 0.01912 + 0.00000000 0.006451 0.01900 / + + 210.00 0.00002972 0.005861 0.02019 + 0.00001486 0.005871 0.02001 + 0.00000000 0.005881 0.01984 / + + 230.00 0.00003767 0.005402 0.02121 + 0.00001883 0.005412 0.02095 + 0.00000000 0.005422 0.02071 / + + 250.80 0.00004756 0.005013 0.02234 + 0.00002378 0.005022 0.02197 + 0.00000000 0.005032 0.02162 / + + 268.42 0.00005757 0.004737 0.02335 + 0.00002878 0.004746 0.02287 + 0.00000000 0.004754 0.02240 / + + 285.33 0.00006853 0.004511 0.02438 + 0.00003427 0.004518 0.02375 + 0.00000000 0.004525 0.02315 / + + 301.59 0.00008041 0.004323 0.02542 + 0.00004020 0.004327 0.02463 + 0.00000000 0.004332 0.02387 / + + 317.23 0.00009313 0.004165 0.02648 + 0.00004657 0.004166 0.02549 + 0.00000000 0.004169 0.02456 / + + 332.29 0.00010668 0.004031 0.02755 + 0.00005334 0.004029 0.02634 + 0.00000000 0.004028 0.02522 / + + 346.80 0.00012100 0.003917 0.02863 + 0.00006050 0.003911 0.02719 + 0.00000000 0.003906 0.02585 / + + 360.80 0.00013607 0.003819 0.02974 + 0.00006803 0.003808 0.02803 + 0.00000000 0.003799 0.02645 / + + 374.31 0.00015188 0.003735 0.03087 + 0.00007594 0.003718 0.02887 + 0.00000000 0.003705 0.02703 / + + 387.36 0.00016843 0.003662 0.03202 + 0.00008421 0.003639 0.02970 + 0.00000000 0.003621 0.02758 / + + 399.99 0.00018571 0.003598 0.03320 + 0.00009286 0.003570 0.03053 + 0.00000000 0.003545 0.02810 / + + 412.21 0.00020375 0.003543 0.03442 + 0.00010188 0.003508 0.03137 + 0.00000000 0.003477 0.02861 / + + 424.05 0.00022256 0.003496 0.03566 + 0.00011128 0.003453 0.03220 + 0.00000000 0.003416 0.02909 / + + 435.53 0.00024218 0.003454 0.03695 + 0.00012109 0.003404 0.03305 + 0.00000000 0.003360 0.02956 / + + 446.68 0.00026266 0.003419 0.03828 + 0.00013133 0.003360 0.03390 + 0.00000000 0.003309 0.03000 / + + 457.51 0.00028404 0.003388 0.03967 + 0.00014202 0.003320 0.03477 + 0.00000000 0.003262 0.03043 / + + 468.04 0.00030639 0.003362 0.04110 + 0.00015319 0.003285 0.03566 + 0.00000000 0.003218 0.03085 / + + 478.30 0.00032980 0.003341 0.04261 + 0.00016490 0.003253 0.03656 + 0.00000000 0.003178 0.03125 / + + 488.30 0.00035436 0.003323 0.04418 + 0.00017718 0.003225 0.03749 + 0.00000000 0.003140 0.03164 / + + 498.06 0.00038020 0.003310 0.04583 + 0.00019010 0.003200 0.03845 + 0.00000000 0.003105 0.03202 / + + 507.59 0.00040745 0.003300 0.04758 + 0.00020373 0.003178 0.03944 + 0.00000000 0.003073 0.03238 / + + 516.92 0.00043630 0.003293 0.04943 + 0.00021815 0.003158 0.04048 + 0.00000000 0.003042 0.03273 / + + 526.06 0.00046694 0.003290 0.05141 + 0.00023347 0.003141 0.04156 + 0.00000000 0.003013 0.03308 / + + 535.02 0.00049963 0.003291 0.05353 + 0.00024981 0.003126 0.04271 + 0.00000000 0.002986 0.03342 / + + 543.83 0.00053469 0.003295 0.05582 + 0.00026734 0.003114 0.04393 + 0.00000000 0.002960 0.03374 / + + 552.49 0.00057251 0.003303 0.05830 + 0.00028625 0.003105 0.04523 + 0.00000000 0.002935 0.03407 / + + 561.04 0.00061359 0.003315 0.06103 + 0.00030679 0.003098 0.04664 + 0.00000000 0.002912 0.03438 / + + 569.48 0.00065855 0.003332 0.06405 + 0.00032928 0.003093 0.04818 + 0.00000000 0.002890 0.03469 / + + 577.82 0.00070820 0.003354 0.06744 + 0.00035410 0.003092 0.04988 + 0.00000000 0.002868 0.03500 / + + 586.09 0.00076355 0.003382 0.07127 + 0.00038178 0.003094 0.05178 + 0.00000000 0.002847 0.03530 / + + 594.29 0.00082592 0.003418 0.07567 + 0.00041296 0.003099 0.05394 + 0.00000000 0.002828 0.03560 / +/ + +-- PVT region 2 -- + + 80.00 0.00000485 0.015151 0.01506 + 0.00000242 0.015154 0.01505 + 0.00000000 0.015157 0.01504 / + + + 100.00 0.00000621 0.012032 0.01566 + 0.00000310 0.012036 0.01564 + 0.00000000 0.012040 0.01563 / + + + 120.00 0.00000821 0.009980 0.01632 + 0.00000411 0.009985 0.01630 + 0.00000000 0.009990 0.01628 / + + + 140.00 0.00001096 0.008537 0.01706 + 0.00000548 0.008544 0.01702 + 0.00000000 0.008550 0.01698 / + + + 160.00 0.00001457 0.007476 0.01786 + 0.00000728 0.007484 0.01780 + 0.00000000 0.007492 0.01774 / + + + 180.00 0.00001918 0.006669 0.01873 + 0.00000959 0.006678 0.01864 + 0.00000000 0.006687 0.01854 / + + + 200.00 0.00002493 0.006038 0.01967 + 0.00001247 0.006048 0.01952 + 0.00000000 0.006058 0.01939 / + + + 216.50 0.00003061 0.005616 0.02049 + 0.00001530 0.005626 0.02029 + 0.00000000 0.005636 0.02010 / +/ + +PVTO + +-- RSO PRESSURE B-OIL VISCOSITY +-- (BAR) (CP) + + 20.59 50.00 1.10615 1.180 + 75.00 1.10164 1.247 + 100.00 1.09744 1.315 + 125.00 1.09351 1.384 + 150.00 1.08984 1.453 / + + 28.19 70.00 1.12522 1.066 + 95.00 1.12047 1.124 + 120.00 1.11604 1.182 + 145.00 1.11191 1.241 + 170.00 1.10804 1.300 / + + 36.01 90.00 1.14458 0.964 + 115.00 1.13959 1.014 + 140.00 1.13494 1.064 + 165.00 1.13060 1.115 + 190.00 1.12653 1.166 / + + 44.09 110.00 1.16437 0.880 + 135.00 1.15915 0.924 + 160.00 1.15428 0.968 + 185.00 1.14973 1.012 + 210.00 1.14547 1.056 / + + 52.46 130.00 1.18467 0.805 + 155.00 1.17921 0.843 + 180.00 1.17413 0.882 + 205.00 1.16937 0.920 + 230.00 1.16491 0.959 / + + 61.13 150.00 1.20555 0.746 + 175.00 1.19985 0.780 + 200.00 1.19454 0.814 + 225.00 1.18958 0.849 + 250.00 1.18492 0.883 / + + 70.14 170.00 1.22704 0.698 + 195.00 1.22111 0.729 + 220.00 1.21558 0.759 + 245.00 1.21040 0.790 + 270.00 1.20555 0.821 / + + 79.50 190.00 1.24922 0.658 + 215.00 1.24305 0.686 + 240.00 1.23729 0.714 + 265.00 1.23190 0.742 + 290.00 1.22685 0.770 / + + 89.24 210.00 1.27214 0.637 + 235.00 1.26573 0.664 + 260.00 1.25974 0.693 + 285.00 1.25414 0.725 + 310.00 1.24888 0.760 / + + 99.39 230.00 1.29586 0.622 + 255.00 1.28921 0.641 + 280.00 1.28300 0.661 + 305.00 1.27718 0.680 + 330.00 1.27171 0.699 / + + 110.41 250.80 1.32148 0.610 + 275.80 1.31457 0.628 + 300.80 1.30812 0.647 + 325.80 1.30207 0.665 + 350.80 1.29638 0.682 / + + 120.32 268.42 1.34449 0.576 + 293.42 1.33735 0.593 + 318.42 1.33068 0.609 + 343.42 1.32442 0.626 + 368.42 1.31853 0.642 / + + 130.23 285.33 1.36737 0.5335 + 310.33 1.36001 0.5487 + 335.33 1.35313 0.5638 + 360.33 1.34667 0.5787 + 385.33 1.34059 0.5934 / + + 140.12 301.59 1.39015 0.4956 + 326.59 1.38257 0.5094 + 351.59 1.37548 0.5230 + 376.59 1.36882 0.5365 + 401.59 1.36255 0.5498 / + + 150.01 317.23 1.41282 0.4614 + 342.23 1.40503 0.4739 + 367.23 1.39773 0.4863 + 392.23 1.39088 0.4986 + 417.23 1.38443 0.5107 / + + 159.89 332.29 1.43539 0.43042 + 357.29 1.42739 0.44183 + 382.29 1.41990 0.45312 + 407.29 1.41286 0.46430 + 432.29 1.40622 0.47537 / + + 169.76 346.80 1.45788 0.41191 + 371.80 1.44967 0.42260 + 396.80 1.44198 0.43318 + 421.80 1.43475 0.44365 + 446.80 1.42794 0.45402 / + + 179.63 360.80 1.48028 0.39503 + 385.80 1.47187 0.40508 + 410.80 1.46398 0.41502 + 435.80 1.45657 0.42487 + 460.80 1.44958 0.43461 / + + 189.48 374.31 1.50260 0.37959 + 399.31 1.49399 0.38907 + 424.31 1.48591 0.39845 + 449.31 1.47832 0.40773 + 474.31 1.47116 0.41692 / + + 199.34 387.36 1.52484 0.36543 + 412.36 1.51603 0.37439 + 437.36 1.50777 0.38326 + 462.36 1.50000 0.39203 + 487.36 1.49267 0.40072 / + + 209.18 399.99 1.54700 0.35239 + 424.99 1.53800 0.36089 + 449.99 1.52956 0.36929 + 474.99 1.52161 0.37762 + 499.99 1.51411 0.38585 / + + 219.02 412.21 1.56910 0.34035 + 437.21 1.55991 0.34843 + 462.21 1.55128 0.35642 + 487.21 1.54316 0.36433 + 512.21 1.53549 0.37216 / + + 228.85 424.05 1.59112 0.32921 + 449.05 1.58174 0.33691 + 474.05 1.57294 0.34453 + 499.05 1.56464 0.35206 + 524.05 1.55681 0.35952 / + + 238.67 435.53 1.61307 0.31888 + 460.53 1.60351 0.32623 + 485.53 1.59453 0.33350 + 510.53 1.58606 0.34070 + 535.53 1.57807 0.34782 / + + 248.48 446.68 1.63496 0.30927 + 471.68 1.62522 0.31630 + 496.68 1.61606 0.32326 + 521.68 1.60743 0.33014 + 546.68 1.59927 0.33695 / + + 258.29 457.51 1.65678 0.30032 + 482.51 1.64686 0.30706 + 507.51 1.63753 0.31373 + 532.51 1.62873 0.32032 + 557.51 1.62042 0.32685 / + + 268.09 468.04 1.67853 0.29196 + 493.04 1.66843 0.29843 + 518.04 1.65893 0.30483 + 543.04 1.64997 0.31117 + 568.04 1.64150 0.31743 / + + 277.89 478.30 1.70022 0.28414 + 503.30 1.68994 0.29037 + 528.30 1.68028 0.29652 + 553.30 1.67116 0.30261 + 578.30 1.66253 0.30864 / + + 287.68 488.30 1.72184 0.27681 + 513.30 1.71139 0.28281 + 538.30 1.70156 0.28874 + 563.30 1.69228 0.29460 + 588.30 1.68350 0.30040 / + + 297.46 498.06 1.74339 0.26994 + 523.06 1.73277 0.27572 + 548.06 1.72278 0.28144 + 573.06 1.71334 0.28709 + 598.06 1.70442 0.29269 / + + 307.23 507.59 1.76487 0.26347 + 532.59 1.75409 0.26906 + 557.59 1.74393 0.27458 + 582.59 1.73434 0.28004 + 607.59 1.72527 0.28544 / + + 317.00 516.92 1.78628 0.25738 + 541.92 1.77533 0.26279 + 566.92 1.76502 0.26812 + 591.92 1.75528 0.27340 + 616.92 1.74606 0.27863 / + + 326.76 526.06 1.80761 0.25165 + 551.06 1.79651 0.25688 + 576.06 1.78604 0.26204 + 601.06 1.77615 0.26716 + 626.06 1.76679 0.27221 / + + 336.51 535.02 1.82887 0.24623 + 560.02 1.81761 0.25130 + 585.02 1.80699 0.25631 + 610.02 1.79696 0.26126 + 635.02 1.78746 0.26616 / + + 346.26 543.83 1.85005 0.24112 + 568.83 1.83864 0.24603 + 593.83 1.82787 0.25089 + 618.83 1.81770 0.25570 + 643.83 1.80806 0.26045 / + + 356.00 552.49 1.87115 0.23628 + 577.49 1.85959 0.24105 + 602.49 1.84868 0.24577 + 627.49 1.83836 0.25043 + 652.49 1.82858 0.25505 / + + 365.73 561.04 1.89217 0.23170 + 586.04 1.88046 0.23634 + 611.04 1.86940 0.24092 + 636.04 1.85895 0.24546 + 661.04 1.84904 0.24994 / + + 375.46 569.48 1.91309 0.22736 + 594.48 1.90124 0.23187 + 619.48 1.89004 0.23633 + 644.48 1.87946 0.24074 + 669.48 1.86942 0.24510 / + + 385.18 577.82 1.93391 0.22325 + 602.82 1.92192 0.22764 + 627.82 1.91060 0.23198 + 652.82 1.89988 0.23627 + 677.82 1.88971 0.24052 / + + 394.89 586.09 1.95464 0.21934 + 611.09 1.94252 0.22362 + 636.09 1.93106 0.22785 + 661.09 1.92021 0.23204 + 686.09 1.90993 0.23617 / + + 404.60 594.29 1.97527 0.21564 + 619.29 1.96301 0.21981 + 644.29 1.95143 0.22393 + 669.29 1.94046 0.22801 + 694.29 1.93005 0.23204 / +/ + +-- PVT region 2 + + 32.91 80.00 1.13304 1.04537 + 114.00 1.12837 1.10009 + 148.00 1.12401 1.15521 + 182.00 1.11994 1.21063 / + + + 40.99 100.00 1.15276 0.97219 + 134.00 1.14786 1.02086 + 168.00 1.14328 1.06983 + 202.00 1.13900 1.11901 / + + + 49.36 120.00 1.17297 0.91124 + 154.00 1.16783 0.95496 + 188.00 1.16303 0.99891 + 222.00 1.15854 1.04301 / + + + 58.04 140.00 1.19374 0.85942 + 174.00 1.18836 0.89902 + 208.00 1.18334 0.93878 + 242.00 1.17864 0.97864 / + + + 67.04 160.00 1.21512 0.81456 + 194.00 1.20951 0.85065 + 228.00 1.20426 0.88686 + 262.00 1.19935 0.92313 / + + + 76.39 180.00 1.23718 0.77508 + 214.00 1.23132 0.80815 + 248.00 1.22585 0.84130 + 282.00 1.22073 0.87448 / + + + 86.11 200.00 1.25996 0.73928 + 234.00 1.25386 0.76989 + 268.00 1.24816 0.80050 + 302.00 1.24283 0.83108 / + + + 94.44 216.50 1.27934 0.67686 + 250.50 1.27304 0.70995 + 284.50 1.26716 0.74427 + 318.50 1.26164 0.77857 / +/ + diff --git a/tests/test_norne_pvt.cpp b/tests/test_norne_pvt.cpp new file mode 100644 index 00000000..0ec5dd2e --- /dev/null +++ b/tests/test_norne_pvt.cpp @@ -0,0 +1,293 @@ +/* + Copyright 2015 Statoil ASA. + + This file is part of the Open Porous Media project (OPM). + + OPM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OPM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OPM. If not, see . +*/ + +#include + +#if HAVE_DYNAMIC_BOOST_TEST +#define BOOST_TEST_DYN_LINK +#endif +#define BOOST_TEST_MODULE NORNE_PVT_TESTS + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +#include + + +using namespace Opm; + +/* + This file contains a regression test of the LiveOilPvt class for the + Norne data. The test is created by calling the PvtLiveOil::mu( ) + function for a list of P and Rs values and storing the results in + the XX_expected vectors. No actual validation of the data has been + done, so the test will only serve to further cement possible bugs. + + The columns of input data and expected data is organized in two + columns, that is mainly because two (P,Rs) values were selected from + each of the 'inner tables' in the PVTO keyword, and carries no + further semantic meaning. +*/ + + +void check_vectors( const std::vector& v1 , const std::vector& v2) { + double tol = 1e-5; + for (decltype(v1.size()) i = 0; i < v1.size(); i++) { + BOOST_CHECK_CLOSE( v1[i] , v2[i] , tol ); + } +} + + + +void verify_norne_oil_pvt_region2(const TableManager& tableManager) { + auto pvtoTables = tableManager.getPvtoTables(); + PvtLiveOil oilPvt(pvtoTables); + + std::vector rs = {33, 33, + 43, 43, + 53, 53, + 61, 61, + 70, 70, + 80, 80}; + + + std::vector P = {114, 148, + 134, 168, + 154, 188, + 174, 208, + 194, 228, + 214, 248, + 234, 268}; + + + std::vector mu_expected = {0.00106736588, 0.00113961037, + 0.00093801366, 0.00099871729, + 0.00083529743, 0.00088728769, + 0.00077986989, 0.00082627508, + 0.00072883113, 0.00076988665, + 0.00068250424, 0.00072040786, + 0.00316290228, 0.00358662596}; + + std::vector b_expected = {0.88421444595, 0.88893909117, + 0.86493342861, 0.86978957420, + 0.84676402016, 0.85171762998, + 0.83354279748, 0.83851861429, + 0.81904041272, 0.82404719615, + 0.80341044483, 0.80845950744, + 0.97499156360, 0.97895261942}; + + { + std::vector tableIndex(P.size() , 0); + + std::vector mu(P.size()); + std::vector dmudp(P.size()); + std::vector dmudr(P.size()); + + std::vector b(P.size()); + std::vector dbdp(P.size()); + std::vector dbdr(P.size()); + + + for (auto& value : P) + value *= Metric::Pressure; + + for (auto& value : rs) + value *= Metric::GasDissolutionFactor; + + oilPvt.mu( P.size() , tableIndex.data() , P.data() , NULL , rs.data() , mu.data() , dmudp.data() , dmudr.data()); + oilPvt.b( P.size() , tableIndex.data() , P.data() , NULL , rs.data() , b.data() , dbdp.data() , dbdr.data()); + + check_vectors( mu , mu_expected ); + check_vectors( b , b_expected ); + } +} + + +void verify_norne_oil_pvt_region1(const TableManager& tableManager) { + auto pvtoTables = tableManager.getPvtoTables(); + PvtLiveOil oilPvt(pvtoTables); + + std::vector rs = {21 , 21, + 30 , 30, + 38 , 38, + 48 , 48, + 55 , 55, + 65 , 65, + 75 , 75, + 85 , 85, + 95 , 95, + 105 , 105, + 115 , 115, + 125 , 125, + 135 , 135, + 145 , 145, + 155 , 155, + 165 , 165, + 175 , 175, + 185 , 185, + 195 , 195, + 205 , 205, + 215 , 215, + 225 , 225, + 234 , 234, + 240 , 240, + 252 , 252, + 262 , 262, + 272 , 272, + 280 , 280}; + + + std::vector P = {70, 110, + 95, 145, + 115, 165, + 135, 185, + 155, 205, + 195, 245, + 215, 265, + 235, 285, + 255, 305, + 275, 325, + 293, 343, + 310, 360, + 326, 376, + 342, 392, + 357, 407, + 371, 420, + 385, 435, + 399, 450, + 420, 480, + 437, 487, + 449, 499, + 460, 510, + 471, 521, + 482, 532, + 503, 553}; + + + std::vector mu_expected = {0.00120767750, 0.00129077352, + 0.00111063039, 0.00119627038, + 0.00103118116, 0.00110633521, + 0.00094413471, 0.00100998373, + 0.00090320931, 0.00096374536, + 0.00086714481, 0.00092142974, + 0.00081811098, 0.00086735227, + 0.00077704364, 0.00082229010, + 0.00070975205, 0.00076029164, + 0.00065679329, 0.00071124175, + 0.00061496175, 0.00067213642, + 0.00058000381, 0.00064115346, + 0.00055124739, 0.00061633274, + 0.00052840888, 0.00059781928, + 0.00050926184, 0.00058323394, + 0.00049295739, 0.00056996321, + 0.00048026810, 0.00056474486, + 0.00047088998, 0.00056427878, + 0.00047649659, 0.00060774836, + 0.00048006188, 0.00059909192, + 0.00026623648, 0.00060915386, + 0.00025670489, 0.00062157315, + 0.00024760210, 0.00064290735, + 0.00023889979, 0.00067946283, + 0.00022330662, 0.00077837223}; + + + std::vector b_expected = {0.90699449462, 0.91120449633, + 0.89040695696, 0.89551008140, + 0.87548859167, 0.88062965205, + 0.85697013389, 0.86224235632, + 0.84533618728, 0.85061301709, + 0.83069819286, 0.83585867335, + 0.81473536808, 0.81994107210, + 0.79955491390, 0.80479144821, + 0.78507711370, 0.79032915313, + 0.77073097762, 0.77596189361, + 0.75627401890, 0.76141290296, + 0.74161331648, 0.74678198081, + 0.72686889575, 0.73206734035, + 0.71214353439, 0.71737175926, + 0.69733207231, 0.70259007745, + 0.68243272267, 0.68761475238, + 0.66755004999, 0.67286761567, + 0.65268405426, 0.65813834713, + 0.63858753316, 0.64504008462, + 0.62408347496, 0.62949038145, + 0.61223874629, 0.61449268543, + 0.60422344638, 0.59939995459, + 0.59620814647, 0.58594855211, + 0.58819284656, 0.57739165219, + 0.57289091037, 0.56019050084}; + + { + std::vector tableIndex(P.size() , 1); + + std::vector mu(P.size()); + std::vector dmudp(P.size()); + std::vector dmudr(P.size()); + + std::vector b(P.size()); + std::vector dbdp(P.size()); + std::vector dbdr(P.size()); + + + for (auto& value : P) + value *= Metric::Pressure; + + for (auto& value : rs) + value *= Metric::GasDissolutionFactor; + + oilPvt.mu( P.size() , tableIndex.data() , P.data() , NULL , rs.data() , mu.data() , dmudp.data() , dmudr.data()); + oilPvt.b( P.size() , tableIndex.data() , P.data() , NULL , rs.data() , b.data() , dbdp.data() , dbdr.data()); + + check_vectors( mu , mu_expected ); + check_vectors( b , b_expected ); + } +} + + + + + +TableManager loadTables( const std::string& deck_file) { + Opm::ParseMode parseMode({{ ParseMode::PARSE_RANDOM_SLASH , InputError::IGNORE }}); + Opm::ParserPtr parser(new Parser()); + std::shared_ptr deck; + + deck = parser->parseFile(deck_file, parseMode); + return TableManager(*deck); +} + + + +BOOST_AUTO_TEST_CASE( Test_Norne_PVT) { + TableManager tableManager = loadTables( "norne_pvt.data" ); + + verify_norne_oil_pvt_region1( tableManager ); + verify_norne_oil_pvt_region2( tableManager ); +}