Commit Graph

56 Commits

Author SHA1 Message Date
Elyes Ahmed
5c2b60bcd0 rebasing 2022-07-28 20:40:34 +02:00
Bård Skaflestad
840a29f8ef Communicate Inter-Region Flows to I/O Rank
This commit ensures that compute inter-region flow rates on all
ranks and collect those on the I/O rank using CollectDataToIORank.

We add a trivial EclInterRegFlowMap data member to the communication
object.  This data member only knows the pertinent FIP region array
names, but uses existing read/write support to collect contributions
from all ranks into this "global" object.  We then pass this global
object on to the summary evaluation routine.
2022-02-18 14:53:43 +01:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00
Joakim Hove
ac3748229a Collect WellTestState on IORank 2021-10-02 20:28:44 +02:00
Arne Morten Kvarving
d55df4330e fixed: do not use Opm:: prefix when inside namespace Opm 2021-05-25 12:06:06 +02:00
Arne Morten Kvarving
c7c29483e7 fix regression: unconditional dereferences
equilGrid and equilCartesianMapper can only
be dereferenced on rank 0.
2021-05-11 15:21:50 +02:00
Arne Morten Kvarving
543dbe7114 CollectDataToIORank: move to separate compile unit
make it a template for grid types. this allows using
explicit template instantation and compile this code
only once per grid type, instead of once per simulator object.
2021-05-03 13:45:52 +02:00
Bård Skaflestad
9def2fab12 Unpack Aquifer Subobjects Too
This is needed to properly communicate type-specific parameters to
other processes.  In particular, outputting the Carter-Tracy summary
vectors AAQTD and AAQPD needs this in a parallel simulation run.
2021-04-10 17:28:57 +02:00
Arne Morten Kvarving
1907fe4937 collect global aquifer data for output in eclwriter 2020-12-21 12:54:34 +01:00
Joakim Hove
72905f3e3b Gather WBP pressure data before summary eval 2020-12-03 09:40:40 +01:00
Joakim Hove
cc6abb4086
Merge pull request #2796 from joakim-hove/rm-exceptions
Remove unused #include of exceptions
2020-09-21 16:33:19 +02:00
Joakim Hove
0565d6f402 Remove unused #include of exceptions 2020-09-21 11:12:15 +02:00
Bård Skaflestad
fde3c476c3 Chase Group/Node Summary API Update
This is in preparation of adding support for outputting the network
node pressure quantity, GPR, to the summary file.  In particular,
'GroupValues' is renamed to 'GroupAndNetworkValues' and has new
individual datamembers for the former group-level data and the new
node-level data.

Update BlackoilWellModel::groupData() and CollectToIORank
accordingly and bring the parallel restart facility in line with the
new layout.
2020-09-20 22:26:07 +02:00
Markus Blatt
ee6044b2e0 Fixes determining whether index of summary keyword is on process.
We used a method isGlobalIdxOnThisRank to determine whether to write
an entry for a summary keyword (like BPR). Unfortunately, this did
exactly what the name suggested, but we actually passed a cartesian
index to it. That meant that a lower cartesian index might have found on
many processes (with different cartesian index and hence resulting in
wrong values), while higher for ones no process would have been found
with it (resulting in writing zeros).

With this commit we store a sorted list of cartesian indices and query
that in the renamed and restructured function isCartesianidxOnThisRank.

Most probably this broke during refactoring.

Closes #2665
2020-09-08 20:44:27 +02:00
Bård Skaflestad
5bb4321824 Simulator Group Data: Chase Upstream API Update
This commit makes the 'groupData()' function return a

    map<string, Opm::data::GroupData>

object instead of a

    map<string, Opm::data::GroupConstraints>

object.  The 'GroupData' structure adds a level of indirection to
the current per-group summary quantities that are directly assigned
by the simulator.  While here, also move the assignment of the
current group constraints/control values out to a separate helper
to reduce the body of the per-group loop in 'groupData()'.

This is in preparation of adding support for reporting group-level
production/injection guiderates (Gx[IP]GR) to the summary file.
2020-07-01 22:52:26 +02:00
Jostein Alvestad
4006319ff7 further changes to report currentStatusGroupControls to Summary 2020-03-16 10:39:52 +01:00
Arne Morten Kvarving
4978e72039 bump required dune version to 2.6
remove compatiblity code with older versions
2020-02-06 16:24:39 +01:00
Markus Blatt
608b317ecc Allow different ElementMapper types in ElementIndexScatterHandle.
This is needed to support dune-fem where the local mapper might
be
`MultipleCodimMultipleGeomTypeMapper<GridView<GridPart2GridViewTraits<AdaptiveLeafGridPart<CpGrid, (PartitionIteratorType)4,
false> > >, Dune::Impl::MCMGFailLayout>`
as opposed to the global one being
`MultipleCodimMultipleGeomTypeMapper<GridView<DefaultLeafGridViewTraits<CpGrid>>, Dune::Impl::MCMGFailLayout>`.

Closes #2095.
2019-10-22 14:49:55 +02:00
Markus Blatt
0bc1630cc9 CollectToIORank: Made localIdxToGlobalIdx lookup working.
Since the indexMaps do not contain the global element index anymore
(but the global id). The old code did not work anymore.

Unfortunately, we are using CpGrid specific functions (scatterData)
to get the mapping. Therefore this might be broken if other grids are
used.
2019-10-15 14:03:24 +02:00
Markus Blatt
7784d53198 Fix wrong globalSize.
That has gotten a little to big and hence the vector
globalCartesianIndex_ and DistributedIndexMapping::ranks_ ,too.
2019-10-14 14:32:22 +02:00
Markus Blatt
1124b82f05 Move translation of global cartesian index of global grid to IoRank.
Previously, it was still assumed that all ranks knew the global grid
and each map on CollectDataToIORank::indexMaps_ was a mapping of
send/receive index to the index of the cell using the mapper of  the
corresponding global grid.

With this patch inside of CollectDataToIORank::DistributeIndexMapping
indexMaps is a mapping from send/receive index to global cartesian
index until the destructor is run. Inside of the destructor of the
iorank the remapping to mapped index of the global grid happens and
the ranks array is computed.
2019-10-14 14:32:22 +02:00
Arne Morten Kvarving
7efbee9fb0 changed: avoid usage of equilGrid on non-root processes 2019-10-14 14:32:22 +02:00
Arne Morten Kvarving
5599bb6d8c changed: namespace Ewoms -> namespace Opm 2019-09-05 17:14:38 +02:00
Atgeirr Flø Rasmussen
118e3f6dac Restore const-ness accidentally lost. 2018-07-31 15:35:15 +02:00
Andreas Lauser
24fc04a102 collecttoiorank.hh: use camelCase consistently 2018-07-12 11:15:37 +02:00
Andreas Lauser
b92aee90b5 CollectToIORank: remove unnecessary whitespace, braces 2018-07-12 11:15:24 +02:00
Andreas Lauser
4342210b5e CollectToIORank: fix formatting of function declarations reduce unnecessary usage of whitespace 2018-07-12 11:00:56 +02:00
Andreas Lauser
88135e9f7c CollectToIORank: minor fixes to the boiler plate 2018-07-12 11:00:31 +02:00
Andreas Lauser
d9b3b5c2e5 CollectToIORank: reindent code 2018-07-12 11:00:26 +02:00
Andreas Lauser
5f8fdb2324 make all headers fully autonomous again 2018-03-12 14:31:37 +01:00
Tor Harald Sandve
afe26e8f12 Split the PackUnPack class
into PackUnPackBlockData, PackUnPackCellData and PackUnPackWellData
2018-02-19 13:18:56 +01:00
Tor Harald Sandve
76edfa7789 clean up after rebase 2018-02-19 13:18:56 +01:00
Atgeirr Flø Rasmussen
39793ec932 Adapt to moved opm-grid headers. 2018-02-12 10:20:09 +01:00
Andreas Lauser
436c9f8791 rename the "grid manager" to "vanguard"
IMO the term "vanguard" expresses better what these classes are
supposed to do: level the ground for the cavalry. Normally this simply
means to create and distribute a grid object, but it can become quite
a bit more complicated, as exemplified by the vanguard classes of
ebos..
2018-02-08 16:26:58 +01:00
Andreas Lauser
260d62c2b8 adapt to the move of code from opm-common to opm-material 2018-02-08 12:11:20 +01:00
Tor Harald Sandve
d3cb81a7ba Minor clean-up based on review 2018-02-05 14:24:11 +01:00
Tor Harald Sandve
eca5d8aff5 Fix slow code
Avoid checking summaryConfig at every cell
Add temporary fix around issue with RPTSCHED in restartConfig
2018-02-05 14:24:11 +01:00
Tor Harald Sandve
85ed4bffbf Pass block values to OPM-output 2018-02-05 14:24:11 +01:00
Tor Harald Sandve
f62498440d Add FIP, INIT and EGRID output
Writes INIT and EGRID files initially
Adds Fip to summary output if required.
Output Fip to log (.PRT) if Opm-logger is set
2018-02-05 14:24:11 +01:00
Tor Harald Sandve
0132c3326e Add ecl output from opm-output
The new eclwriter output and restart using the eclIO from opm-output

All tests in opm-simulator pass and
MPI restart works.

Standard initialization is done prior to restart in order
to compute correct initial thpressure values. This is not
necessary if thpressures are written to the restart file

TODO: Some trivial fields are written out in order mimic legacy code,
this should be cleaned up

TODO: Output of wells, FIP, NNC is still done in opm-simulators.
This should be moved later.
2018-01-09 11:05:50 +01:00
Andreas Lauser
4957a301f1 fix all Dune 2.6 related compiler warnings in ebos 2018-01-08 12:23:58 +01:00
Andreas Lauser
96381e3ed7 remove support for dune < 2.4
this allows quite a substantial amount of code decluttering, mainly
because Dune 2.4 renamed mapper.map() to mapper.index().
2017-07-13 14:08:02 +02:00
Robert Kloefkorn
902b2246db [cleanup] avoid buffer write/read when reordering is not necessary. 2017-06-23 22:58:50 +02:00
Robert Kloefkorn
06280c9062 [bugfix] index maps need to be created in any case to account for
possible reordering of element numbering.
2017-06-23 22:58:50 +02:00
Robert Kloefkorn
2aada96d8c [bugfix] fix build of ebos for Grid != CpGrid. 2017-06-23 22:58:49 +02:00
dr-robertk
626db3a0fa Merge pull request #143 from blattms/collecttoiorank-fixes-2
localIndexMaps in CollectToIORank need to be lists of interior element indices.
2017-04-03 16:30:33 +02:00
Markus Blatt
9d7720ef34 Make localIndexMap_ a non-empty list of indices of interior elements.
Judging from ParallelDebugOutput.hh this is what is should be.
Before this commit it was empty as it had space reserved but never
any entries pushed (they were inserted with operator[]).
2017-01-18 16:36:10 +01:00
Markus Blatt
4418685056 Revert "Makes CollectDataToIORank::localIndexMap_ have nonzero size when accessing."
This reverts commit dde79daf4ec2004148a58250c4c8af5390251689.

Judging from ParallelDebugOutput.hh this should not be a map from element
index to interior element index, but an a list of indices of all interior
elements. Therefore we need to reserve and later on push_back.
2017-01-18 16:29:48 +01:00
Markus Blatt
6893c8cbdd Revert "Make CollectDataIORank::localIndexMap_ as map from element to interior element index."
This reverts commit 09db2fd412abe4b8a2f52274bcc0041e4b20a94d.

Judging from ParallelDebugOutput.hh this should not be a map from element
index to interior element index, but an a list of indices of all interior
elements
2017-01-18 16:25:46 +01:00
Markus Blatt
39a0bbc2b3 Fixes pushing to resized array distributedCartesianIndex.
Previously distributedCartesianIndex was resized and afterwards all
entries were added with push_back. Therefore the array was twice as
big as expected and contained wrong values in the front.

With this commit we insert the values using random access. Thus the
size is as expeceted and the index of the entries do not depend on the
order of the grid traversal.
2017-01-18 14:01:23 +01:00