OPM / opm-parser

http://www.opm-project.org
11 stars 44 forks source link

AQUTAB table parsing #1155

Closed nairr closed 6 years ago

nairr commented 6 years ago

Added parser support for the AQUDIMS and the AQUTAB table. An example of the AQUTAB table is:

AQUTAB


-- ANALYTIC AQUIFIER Rd = 2.0


-- TD PD 0.01 0.112 0.05 0.229 0.10 0.315 0.15 0.376 0.20 0.424 0.22 0.443 0.24 0.459 0.26 0.476 0.28 0.492 0.30 0.507 0.32 0.522 0.34 0.536 0.36 0.551 0.38 0.565 0.40 0.579 0.42 0.593 0.44 0.607 0.46 0.621 0.48 0.634 0.50 0.648 0.60 0.715 0.70 0.782 0.80 0.849 0.90 0.915 1.00 0.982 2.00 1.649 3.00 2.316 5.00 3.649 10.00 6.982 20.00 13.649 30.00 20.316 50.00 33.649 100.00 66.982 200.00 133.649 300.00 200.316 500.00 333.649 1000.00 666.982 /


-- ANALYTIC AQUIFIER Rd = 3.0


-- TD PD 0.01 0.112
0.05 0.229
0.10 0.315
0.15 0.376
0.20 0.424
0.25 0.469
0.30 0.503
0.40 0.564
0.50 0.616
0.52 0.627
0.54 0.636
0.56 0.645
0.60 0.662
0.65 0.683
0.70 0.703
0.75 0.721
0.80 0.740
0.85 0.758
0.90 0.776
0.95 0.791
1.00 0.806
1.20 0.865
1.40 0.920
1.60 0.973
2.00 1.076
3.00 1.328
4.00 1.578
5.00 1.828
10.00 3.078
20.00 5.578
30.00 8.078
50.00 13.078
100.00 25.578
200.00 50.578
300.00 75.578
500.00 125.578
1000.00 250.578 /

joakim-hove commented 6 years ago

Will review properly later today

joakim-hove commented 6 years ago

jenkins build this with downstreams please

joakim-hove commented 6 years ago

ÒK - what is here is fine; apart from the use of std::shared_ptr<> for the Aqudims member variable. But as discussed previously I would prefer if the aquifer configuration was assembled in a separate object, as a starting point this could just be:

class Aquifer

    private:
         std::vector<Aquatable> aquifer_tables;

The existing Aquatable implementation is fine, it is just a question of creating this tiny container class and collecting the Aquatableinstances in a std::vector<> instead of a TableManager. The reason I would like this is that the aquifer tables are semantically quite different - in particular the collection of them - from the other PVT/relperm tables.

I am not familiar with aquifer usage/requirements from the downstream code, it will be natural to extend the Aquifer class when that is clear.

Don't forget to add a (very) small test for the new functionality.

joakim-hove commented 6 years ago

Please rebase on current master - #1161 should have fixed the weird parsing requirements of AQUTAB

joakim-hove commented 6 years ago

Is this in progress?

joakim-hove commented 6 years ago

Is this in progress?

nairr commented 6 years ago

@joakim-hove - Thanks for the shifted tables fix. yes this is in progress.

joakim-hove commented 6 years ago

Please follow the suggestion here of splitting the PR in three parts. Then we can complete and merge one-at-a-time; right now it is a bit unwieldy.

nairr commented 6 years ago

Closing since this PR has been split into 3 separate PR's