Commit Graph

60 Commits

Author SHA1 Message Date
Bård Skaflestad
9d75915e4b Prepare for Revised Implementation of WBPn
This initial commit changes the API of the CollectDataToIORank
class' handling of WBPn values from collecting a set cell pressures
into communicating pre-computed WBPn values through the new
WellBlockAveragePressures container class.  This is in preparation
of moving the WBPn calculation to the simulator side for greater
parallelism.  For now we do not compute any of the actual WBPn
values.  That will be the subject of follow-up commits.

While here, also split a number of very long lines for readability.
2023-06-09 13:25:43 +02:00
David Landa Marban
5600d7d9e5 FLOWS and FLORES support 2023-02-02 11:19:49 +01:00
Atgeirr Flø Rasmussen
18f6f5e4e3 Push index map to Damaris for output ordering. 2022-12-07 13:05:44 +01:00
Arne Morten Kvarving
d0c528a240 collecttoiorank: use constexpr 2022-08-10 12:37:04 +02:00
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