Commit Graph

872 Commits

Author SHA1 Message Date
Markus Blatt
c2362daae9 reactive applyMultipliers_(trans, outsideFaceIdx, ..) for PINCH(5)=ALL
Should make the tests succeed.
2020-09-10 10:20:17 +02:00
Markus Blatt
06827bdd17 Apply only MULTZ+ in applyAllZMultipliers_, prepare for PINCH(5)=TOP
For PINCH(5)==ALL, we take the minimum of MULTZ+ and ignore MULTZ-.
We also prepare for PINCH(5)==TOP taking only the toplevel MULTZ+
value.

For non-vertical directions we use both MULTZ+ and MULTZ-
2020-09-10 09:12:34 +02:00
Bård Skaflestad
8033e8fc67
Merge pull request #2781 from blattms/fix_pinchmode_all_parallel_3
fix insideCartElmIdx and outsideCartElmIdx order for faces in parallel (2)
2020-09-09 23:30:24 +02:00
Markus Blatt
d2a2d5074d Rely on insideCartElemIdx<outsideCartElemIdx in allpyAllZMultipliers_
and simpily code under that assumption.
2020-09-09 21:41:52 +02:00
Bård Skaflestad
f771088414
Merge pull request #2779 from joakim-hove/use-make-unique
Use std::make_unique<>
2020-09-08 22:44:57 +02:00
Joakim Hove
c0187ffc73 Use std::make_unique<> 2020-09-08 21:57:26 +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
Markus Blatt
11f9eb9d88 Base face processing decision of faces on cartesian indices
This will process the same faces in serial and parallel.
Hence it make the silent assumption that we only process faces
from low cartesian index to high cartesian index hold again.

This should fix PINCH MULTZ ALL in parallel.
2020-09-08 11:10:31 +02:00
Joakim Hove
ead673b58a Add report_step argument to UDQConfig::eval() 2020-09-08 07:39:03 +02:00
Bård Skaflestad
399ff94bce
Merge pull request #2752 from joakim-hove/pass-udq-state
Pass the UDQState member when evaluating UDQ
2020-09-03 01:00:03 +02:00
Arne Morten Kvarving
7305f84351 use std::make_unique where applicable 2020-09-02 15:35:39 +02:00
Joakim Hove
d330d883be Pass the UDQState member when evaluating UDQ 2020-09-01 15:09:13 +02:00
Joakim Hove
4b45623333
Merge pull request #2748 from joakim-hove/add-udq-state
Add UDQState argument to output writer
2020-09-01 15:07:21 +02:00
Joakim Hove
c2f7e900b6 Add UDQState argument to output writer 2020-08-31 18:40:39 +02:00
Bård Skaflestad
2bd80947b9 Fix Debug Build
Remove left parenthesis character left over from transitioning to
the type-based parameter system.  The '(' produced a build failure
which only manifested in debug builds.

Thanks to Håkon Hægland for bringing the issue to our attention.
2020-08-31 16:33:52 +02:00
Bård Skaflestad
5392726a8f
Merge pull request #2745 from akva2/no_macro_properties
Continue replacing macros for typetags et al
2020-08-31 13:00:56 +02:00
Arne Morten Kvarving
9a000c6d07 changed: remove SET_TAG_PROP macro usage 2020-08-28 10:44:53 +02:00
Arne Morten Kvarving
3b21a8a481 changed: remove SET_TYPE_PROP macro usage 2020-08-28 10:44:53 +02:00
Arne Morten Kvarving
93a3ebf8f7 changed: remove NEW_PROP_TAG macro usage 2020-08-28 10:44:53 +02:00
Joakim Hove
0fabb02db4 Add vanguard member UDQState 2020-08-27 17:31:39 +02:00
Joakim Hove
f6d2b4fd27
Merge pull request #2737 from joakim-hove/extract-eval-udq
Extract UDQ eval to separate function call
2020-08-27 17:09:33 +02:00
Arne Morten Kvarving
941e4916f8 changed: remove SET_PROP macro usage 2020-08-27 14:02:05 +02:00
Arne Morten Kvarving
7d853d2e05 changed: remove SET_SCALAR_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
fca83318aa changed: remove SET_INT_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
a79c37a041 changed: remove SET_STRING_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
0e71c0e29b changed: remove SET_BOOL_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
e8248b44ff changed: remove NEW_TYPE_TAG macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
914053ac3c changed: remove GET_PROP_VALUE macro usage 2020-08-27 13:01:51 +02:00
Joakim Hove
3c565ef59e Use const_cast< > in variant serialization 2020-08-27 11:01:22 +02:00
Markus Blatt
322bc8d9cc only check deck on process 0 2020-08-27 09:05:09 +02:00
Markus Blatt
c958034d26 Adapt and use readDeck from EclipseBaseVanguard, too.
This reduces code duplication ad should fix the bad_cast exception
when running ebos in parallel.
2020-08-27 09:05:09 +02:00
Markus Blatt
575245d785 Factored out logging setup and deck reading from class Main.
These codes are reimplemented in the ebos simulator and should
be reused, instead. This commit factilitates this and starts
reusing the logging setup code in ebos. Hence reduces code duplication.
2020-08-27 09:05:09 +02:00
Markus Blatt
6b3c6cd7f1 Remove EclBaseVanguard::internal*_ variables.
Before this we had a set of external*_ variabales (unique_ptrs), a set of
internal_*_ variables (unique_ptrs) and another set of pointers that
point to the pointers actually used. That seemed a bit much. With this
commit skip the internal variables and use unique_ptrs for all
others. In the constructor either the external*_ gets moved or the
objects are directly created as unique_ptrs.
2020-08-27 09:05:09 +02:00
Markus Blatt
1300139eea Use make_unique to create unique_ptrs with exception safety. 2020-08-27 09:05:09 +02:00
Markus Blatt
75104fd310 Move to more consistent ownership of ECL data in EclBaseVanguard
We resort to consistently use unique_ptrs in EclBaseVanguard for
the data read from ECL files or set externally. This means that
during the simulation EclBaseVanguard owns this data and not Main
or the ebos setup functions. This ownership transfer becomes
transparent due to std::move.

This came up when trying to fix the parallel runs of ebos and during
that removing some code duplication.
2020-08-27 09:05:09 +02:00
Arne Morten Kvarving
74fac38d85 changed: remove GET_PROP_TYPE / GET_PROP macro usage 2020-08-27 08:19:39 +02:00
Arne Morten Kvarving
82a35e53b7 changed: remove TTAG macro calls 2020-08-27 08:19:39 +02:00
Arne Morten Kvarving
8148a81ed0 changed: replace EWOMS_RESET_PARAMETERS macro calls 2020-08-26 10:50:34 +02:00
Bård Skaflestad
9829bfd61a
Merge pull request #2733 from joakim-hove/serialize-variant
Serialize variant
2020-08-25 23:10:18 +02:00
Joakim Hove
cc32189a2e Handle serialization of std::variant<T0,T1> 2020-08-25 22:37:24 +02:00
Joakim Hove
c7b68482f3 Extract UDQ eval to separate function call 2020-08-25 16:33:30 +02:00
Arne Morten Kvarving
70908d9017 changed: remove BEGIN_PROPERTIES/END_PROPERTIES macro usage 2020-08-21 15:50:35 +02:00
Tor Harald Sandve
9d72b6ad1a clean-up saltved implementation based on code review 2020-08-18 11:04:39 +02:00
Tor Harald Sandve
491b532a6a Add trivial saltvd table for cases without saltvd given in the deck 2020-08-18 10:55:43 +02:00
Tor Harald Sandve
bd9186b41d implement Saltvd 2020-08-18 10:55:43 +02:00
Kai Bao
11807747cb renaming solveWellEqUntilConverged to be iterateWellEquations 2020-08-11 09:10:19 +02:00
Tor Harald Sandve
fc45b1bd47 Add inner iterations for standard wells also 2020-08-11 09:10:19 +02:00
Bård Skaflestad
8c8635d221 Cell Data: Don't Warn About Supported Output Directives
This commit ensures that we don't issue misleading warning about
output creation directives such as

    BASIC
    FREQ
    RESTART

that could be, and typically are, put into keywords like RPTRST and
RPTSCHED.  Previously, we would interpret these directives as names
of cell vectors and we would get very confusing diagnostic messages
of the form

    Keyword 'BASIC' is unhandled for output to file

which suggests that 'BASIC' is unsupported despite the output system
supporting the directive for quite some time.  While here, also
apply the same reasoning to the vectors we always output such as
SWAT, SGAS, or PRESSURE.
2020-07-28 13:36:25 +02:00
Joakim Hove
8f78a15938 Add WListManager argument when constructing ActionContext 2020-07-09 07:30:37 +02:00
Bård Skaflestad
47d4a5087f
Merge pull request #2698 from totto82/applyPVTWsalt
Pass the salt concentration to the water PVT
2020-07-08 09:32:51 +02:00
Joakim Hove
b9b1e734cb Add data::GroupValues member to RestartValue 2020-07-04 10:06:03 +02:00
Tor Harald Sandve
88ee892fdf pass the saltConcentration to the waterPVT 2020-07-02 13:44:01 +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
Bård Skaflestad
7cf035da80 EclWriter: Refactor Cell Loop out to Helper Function
That way we can use the same code for both the 'writeOutput' and
the 'evalSummaryState' member functions.  While here, also change
the declared types of 'wellData' and 'groupData' to 'auto' in
preparation of API updates for collecting group- and well level
guiderate data.

Finally, apply 'const' where possible.
2020-06-27 21:14:09 +02:00
Joakim Hove
b52366926a Add Action::State member to EclPropblem and pass it to io/ActionX 2020-06-17 12:25:03 +02:00
Bård Skaflestad
0310fa4edf
Merge pull request #2673 from blattms/fix-tranyxyz-sub-3D
[bugfix] Fix TRANXYZ for problems with less than 3 dimensions.

Also subsumes and closes #2150.
2020-06-15 17:15:48 +02:00
Markus Blatt
2e9cfffea6 Fix TRANXYZ for problems with less than 3 dimensions.
Up to now We always assumed that cardDims[i]>1 holds. which it does for most
of the cases. But when e.g. simulating a vertical stack of 5 cells
flow would report the transmissibilities in the Z direction in TRANX
and output TRANZ as zero. Similar problems should be there for 2D grids.

With this commit we actually check whether there can be neighbours in
the X and Z direction to prevent this behavior.
2020-06-15 10:40:26 +02:00
Arne Morten Kvarving
44bec2d7db changed: delay deck dereference
this was harmless unless enableExperiments was given, since
the deck ref is not used otherwise, but it caused an UBSAN issue
when run in parallel.
2020-06-15 09:50:06 +02:00
Joakim Hove
754f74df01 Adapt variant serialization to four types 2020-06-12 07:21:46 +02:00
Joakim Hove
a1306a62fc Add serialization of std::variant<T1,T2,T3> 2020-06-10 20:41:14 +02:00
Atgeirr Flø Rasmussen
cdbbdd828e Always create proper case name.
Without this, rank 0 gets an empty case name, resulting in
buggy VTK output with filenames containing the genereric stem
"sim" rather than the case name as stem.
2020-05-29 10:28:42 +02:00
Atgeirr Flø Rasmussen
20c63f9f49
Merge pull request #2624 from OPM/fix/adapt-to-propertysystem-changes
adapt to changes in the property system
2020-05-28 12:05:17 +02:00
Joakim Hove
fd8c79b668 Default to initialize from restart file in case of restarted run 2020-05-21 10:15:20 +02:00
Bernd Flemisch
21df1cbe31 [properties] adapt to changes in the property system
`NEW_PROP_TAG` is now a definition and not just a declaration.
Eliminate superfluous declarations, include headers with definitions.
Make one necessary forward declaration explicit.
2020-05-18 15:54:26 +02:00
Kai Bao
93655244ce increasing the max iteration number for statFromPc
when doing the equilibration.
2020-04-30 12:12:58 +02:00
Bård Skaflestad
b288602dfc Equilibration: Add Experimental Support for Horizontal Subdivision
This commit adds a very early, alpha-quality implementation of the
"horizontal subdivision" strategy (N < 0) of the EQUIL directive.
This in turn enables more accurate derivations of the initial fluids
in place.

Interactions with SWATINIT are completely untested, and the initial
Rs/Rv derivations in this context are possibly incomplete.  More
work is likely needed in this area, but this does at least enable
more widespread testing.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
4b04a36a2f Initial State Calculator: Prune Unneeded Steps and Variables
In particular, remove unneeded function parameters and don't form a
per-cell PVT zero-based index when we're not going to use the
values.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
f0ed53a6f1 Vertical Extent: Prune Unneeded 'cellcount' Parameter
The purpose of this function is to determine the vertical extent of
a set of cells.  Counting the number of cells in the region is not
its responsibility.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
6292855bd5 Initial State Calculator: Refactor Cell Loop
This commit splits out the per-cell initial state derivation to two
separate helper functions, equilibrateCellCentres() and cellLoop().
The latter manages the per-cell assignments to pertinent data
members and calls an arbitrary "equilbration method" that is
provided as a callback and which calculates per-cell phase
pressures, phase saturations and mixing ratios (Rs/Rv).

In turn, the equilibrateCellCentres() uses the cellLoop() to affect
the existing equilibration procedure within a cell using values at
the depths of the cell centres only.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
fd2d8536eb Refactor Phase Saturation Derivation Procedure
This commit introduces a new helper class,

    Opm::EQUIL::Details::PhaseSaturations<>

that subsumes the responsibility of the existing helper function

    Opm::EQUIL::phaseSaturations<>()

and generalises that functionality to arbitrary depth points within
single cells.  This is in preparation of adding support for the N<0
case of the initial fluid in place procedure defined in the EQUIL
keyword.  The class consumes an already equlibrated pressure table
for the pertinent equilibration region, calculates capillary
pressure values and inverts Pc curves to derive saturation values.
If the capillary pressure curves are constant within a cell, then a
simple depth consideration with respect to the implied sharp phase
interface is used to derive saturation values.  We also preserve
existing support for SWATINIT-type initialisation of the water
saturation field.

Switch InitialStateComputer<>::calcPressSatRsRv() over to using the
pressure and saturation helper classes instead of the original
helper functions since this provides additional control.  Also
remove those helper functions to reduce risk of confusion over which
method to use.  Update the unit tests accordingly.
2020-04-14 23:01:02 +02:00
Bård Skaflestad
d039a1d60e Basic Equilibration: Prepare for Subdivision Strategy
This commit is the first step of several that implements ECLIPSE's
"accurate fluid-in-place" model initialization procedure based on
subdividing the vertical range/extent of individual cells.  This
first step puts the O/G/W phase-pressure calculation into a helper
class,

    Opm::EQUIL::Details::PressureTable<>

through which phase pressure values can be calculated at abritrary
depths rather than just at the cell centre depths.  In other words,
this helper class extends and subsumes the responsibilities of the
existing helper functions

    Opm::EQUIL::Details::PhasePressure::assign()
    Opm::EQUIL::Details::PhasePressure::oil()
    Opm::EQUIL::Details::PhasePressure::gas()
    Opm::EQUIL::Details::PhasePressure::water()

We still use the same ODE-based evaluation procedure for the phase
pressures and the equilibrateOWG() helper function still computes
the phase pressure values at cell centre depths only.

That, in turn, corresponds to the "N = 0" case (steady state) of the
basic equilibration facility.
2020-04-14 23:01:02 +02:00
Joakim Hove
5a09624ad6 Add call to evaluate PYACTION in eclproblem::applyActions() 2020-04-14 08:48:32 +02:00
Joakim Hove
76111897a6 MOve String utility in opm-common 2020-04-04 16:28:16 +02:00
Bård Skaflestad
74368c5f98
Merge pull request #2452 from blattms/use-region-temperature-cleaned
Use correct region temperature when calculating RS/RV
2020-04-02 15:08:53 +02:00
Alf Birger Rustad
62f5ba95b4 Enable owner first ordering by default 2020-04-01 12:58:59 +02:00
Joakim Hove
d6a1d3029e Use std::shared_ptr for Python handle to Schedule 2020-03-31 12:28:07 +02:00
Arne Morten Kvarving
a456b7dff5 fixed: broadcasting an int and receiving as a size_t is a very bad idea
pointy-hat: me
2020-03-30 11:48:00 +02:00
Joakim Hove
30216212c4 Add Python argument to Schedule constructor 2020-03-26 10:15:07 +01:00
Joakim Hove
54cd4f96f7
Merge pull request #2496 from akva2/tracers_from_state
Use tracers from EclipseState
2020-03-25 10:17:56 +01:00
Arne Morten Kvarving
5fd85c1446
Merge pull request #2497 from akva2/deck_avoid
Avoid deck usage in simulator
2020-03-24 08:28:21 +01:00
Arne Morten Kvarving
1424b8e859 changed: use Deck unit system from EclipseState
to avoid deck usage in simulator
2020-03-23 15:54:48 +01:00
Arne Morten Kvarving
b3bf3c58b2 changed: use TracerConfig from opm-common 2020-03-23 15:52:53 +01:00
Arne Morten Kvarving
55ad96a067 use TracerVdTable from opm-common 2020-03-23 15:50:13 +01:00
Atgeirr Flø Rasmussen
56222d4350 Make is_ptr() for unique_ptr handle two template parameters. 2020-03-23 13:36:07 +01:00
Atgeirr Flø Rasmussen
652c7d239b Simplify ptr(), avoiding a template template parameter.
Since unique_ptr<T, Deleter> takes two arguments it cannot strictly
speaking be used via a template template parameter that takes one,
even though the second has a default. GCC allows this anyway, but
not clang.
2020-03-23 11:55:45 +01:00
Arne Morten Kvarving
7775a665d0
Merge pull request #2485 from akva2/i_want_no_deck_dammit
fixed: double-parsing of the deck
2020-03-20 11:17:06 +01:00
Bård Skaflestad
fda4a29c7e
Merge pull request #2459 from jalvestad/group_constraints_summary
Make available current Production/Injection Group Control parameters for use in  Restart
2020-03-19 16:54:34 +01:00
Arne Morten Kvarving
595f601b2c fixed: double-parsing of the deck
externalDeck = nullptr -> internalDeck was parsed.
i have no idea why we have this external/internal deck in the first place.
2020-03-19 14:50:34 +01:00
Jostein Alvestad
35d5269ffa removed unused object opm::data::Group from eclwriter.hh 2020-03-19 14:19:21 +01:00
Markus Blatt
0970867e47
Merge pull request #2484 from akva2/janitoring
avoid potentially uninitialized warnings in serial
2020-03-19 13:07:08 +01:00
Arne Morten Kvarving
42a2d22d89 avoid potentially uninitialized warnings in serial
this was actually broken by an upstream change from return-by-reference
to return-by-value, but we were lucky, the return value was
kept in memory until end of block it seems.
2020-03-19 10:14:04 +01:00
Arne Morten Kvarving
4c5f9f2241 add doxy to eclmpiserializer 2020-03-19 09:31:52 +01:00
Arne Morten Kvarving
59d1ff9b88 updates in EclMpiSerializer to avoid explicit instances in serializer
now the serializer is 'standard', as in we only require basic types
+ stl containers. this should make the actual implementation pretty
pluggable. will ease replacing our serialization routines
with those in Dune 2.7 later.
2020-03-19 09:31:52 +01:00
Arne Morten Kvarving
c86cfbd83a add complexType template parameter to EclMpiSerializer::vector
set to false if vector contains a type without a serializeOp
2020-03-19 09:31:07 +01:00
Arne Morten Kvarving
638a53ac88 add support for unique_ptr in EclMpiSerializer 2020-03-19 09:31:07 +01:00
Arne Morten Kvarving
f0bc3e3815 add bool parameter ComplexType to EclMpiSerializer::map
this is passed on to the serializeOp template for the underlying
type. used with maps over DynamicState where DynamicState is over
a non-complex type.
2020-03-19 09:31:07 +01:00
Jostein Alvestad
7654972db4 corrected for unused parameters in eclwellmanager - groupData 2020-03-19 08:44:46 +01:00
Arne Morten Kvarving
13639cdace add isSerializing member to eclmpiserializer
sometimes it is necessary to know in user code
2020-03-17 08:19:44 +01:00
Arne Morten Kvarving
5eb2ec30a5 add map handler to eclmpiserializer 2020-03-16 20:52:17 +01:00
Arne Morten Kvarving
30cac6b648 add shared_ptr handling in eclmpiserializer 2020-03-16 20:52:17 +01:00
Joakim Hove
65f4635e20
Merge pull request #2464 from joakim-hove/relperm-diag-no-deck
Relperm diag no deck
2020-03-16 13:28:44 +01:00
Arne Morten Kvarving
fe2437e67e add pair handling in eclmpiserializer::vector 2020-03-16 11:44:13 +01:00
Arne Morten Kvarving
6fee426bfc remove static assert in vector handler of eclmpiserializer
std::is_pod is too generic
2020-03-16 10:49:42 +01:00
Jostein Alvestad
6a659339f1 various corrections to code and coding style 2020-03-16 10:39:56 +01:00
Jostein Alvestad
277e5bc39d corrections to groupData(..) in eclwellmanager.hh 2020-03-16 10:39:55 +01:00
Jostein Alvestad
4006319ff7 further changes to report currentStatusGroupControls to Summary 2020-03-16 10:39:52 +01:00
Jostein Alvestad
0dcacb41d4 intial changes to add current group controls to summary 2020-03-16 10:39:51 +01:00
Arne Morten Kvarving
3180974e63
Merge pull request #2471 from akva2/fix_no_mpi
fixed: do not build ParallelRestart test without MPI
2020-03-13 17:53:59 +01:00
Arne Morten Kvarving
c40c733a57 fixed: build without MPI 2020-03-13 17:52:37 +01:00
Markus Blatt
e65f6c02bb
Merge pull request #2220 from andrthu/owners-first
[For testing] Enable "owners first" ordering. Altered SpMV, SP and ILU.
2020-03-13 17:48:22 +01:00
Arne Morten Kvarving
654fae05a4 adjust for SummaryNode -> SummaryConfigNode rename 2020-03-13 15:56:33 +01:00
andrthu
3d0d0f9624 Remove GhostLast ILU 2020-03-13 15:03:31 +01:00
Arne Morten Kvarving
91e9d952d8 added: handler for vectors in eclmpiserializer
this shall be used by users when they have a vector of types
with a serializeOp template. it cannot (at least not right now)
be part of the regular operator() as some vectors should go
directly to the underlying serializer (trivial types).

we can possibly find some traits magic for this later.
2020-03-13 14:09:17 +01:00
Joakim Hove
8473aa38e5 Remove Deck argument to RelpermDiagnostic 2020-03-13 08:54:30 +01:00
andrthu
c91eb330d3 remove 2.6 and move ownerFirst in lb 2020-03-11 12:42:55 +01:00
andrthu
866a661255 New owners-first based linear algebra operations (SoMV, SP and ILU.apply). 2020-03-11 12:41:38 +01:00
andrthu
1fb0860712 add ownersFirst arguments. Change loadBalance to match change in opm-grid. 2020-03-11 12:41:37 +01:00
Arne Morten Kvarving
5b457cbbd6
Merge pull request #2446 from blattms/use-compressed-in-initstateequil.hh
Autocreate parallel fieldprops and use compressed ones in initstateequil.hh
2020-03-11 08:14:21 +01:00
Markus Blatt
400ca4230b Use dynamic_cast to ParallelEclipseState and do error checking. 2020-03-10 14:29:19 +01:00
Markus Blatt
eb8ac2af2d Use correct region temperature when calculating RS/RV
The InitialStateComputer::temperature_ array, previously used,
was of cartesian size, but used as if it only contained the
values of the cells of a region.
With this commit InitialStateComputer::temperature_ is a compressed local
array and we explicitly copy out only the region values when computing
RS/RV.

Closes #2423.
2020-03-10 11:54:58 +01:00
Markus Blatt
04311f6337 Allow auto creation of field properties arrays in ParallelEclipseState.
There are field properties that can usually be queried even if they
are not explicitly specified in the input
file (e.g. PVTNUM). Unfortunately, the ParallelEclipseState cannot
forsee which of these will be queried at startup and after the
loadbalancing only the master process is able to auto creates
these (easily). Hence this commit uses a fall-back if an unstored
keyword is queried. In this case we use get_global-* to auto create
the keyword and use functions of the cartesian mapper to extract the
relevant values on the process.

Of course this temporarily wastes space and we might want to resort to
a more memory savy approach later.
2020-03-10 11:36:02 +01:00
Arne Morten Kvarving
dd0f6dd517 changed: simplify eclmpiserializer
now users only have to implement a single method for
packsize/pack/unpack
2020-03-10 08:56:40 +01:00
Markus Blatt
5c8cdc8024 Use get_int instead of get_int_global in initstateequil.hh.
With the arrival of compressed field properties there is no need
to extract the global arrays just to compress them manually
afterwards. This change should remove commununication and
synchronization points.
2020-03-09 21:32:41 +01:00
Arne Morten Kvarving
51ee5205cb changed: no need to serialize EclMaterialLawManager any longer 2020-03-09 11:23:12 +01:00
Arne Morten Kvarving
f24c8a3b2f
Merge pull request #2420 from akva2/drop_serialization
Drop unused serialization code
2020-03-09 09:56:35 +01:00
Markus Blatt
9ccd4be5e3 Shrink EclEquilInitializer::initialFluidStates_.
There is not reason to it as a vector of cartesian size as we access
its entries by the compressed element index. This should save space
and speedup the lookup.
2020-03-08 16:25:35 +01:00
Markus Blatt
8bab43ffbd Removed now unused variables. 2020-03-08 15:18:55 +01:00
Arne Morten Kvarving
09a7c00ed5 changed: no need to serialize PolymerModule any longer 2020-03-06 20:45:53 +01:00
Arne Morten Kvarving
9413425a78 changed: no need to serialize BrineModule any longer 2020-03-06 20:28:34 +01:00
Markus Blatt
6aeac6cb3a
Merge pull request #2407 from akva2/no_serialization_foam
changed: no need to serialize FoamModule any longer
2020-03-06 20:11:27 +01:00
Markus Blatt
4c962e61d1 Also distribute the centroids when loadbalancing CpGrid.
They are attached to the cells as well and are now distributed
during CpGrid::loadBalance. Due to this change we also rename
FieldPropsDataHandle to PropsCentroidsDataHandle.
2020-03-06 14:09:32 +01:00
Arne Morten Kvarving
3162ed067e get rid of unused serialization template 2020-03-06 11:55:41 +01:00
Markus Blatt
77478a59eb Use CpGrid::loadBalance to distribute the field properties.
The created data handle for the communication could in theory be used
with other DUNE grids, too. In reality we will need to merge with the
handle that ALUGrid already uses to communicate the cartesian indices.

This PR gets rid of using the get_global_(double|int) method in
ParallelEclipseState and reduces the amount of boilerplate code there.
2020-03-06 09:48:04 +01:00
Joakim Hove
42f96ca039 Add commandline switch --sched-restart to control restart init 2020-03-04 15:44:32 +01:00
Arne Morten Kvarving
3a559fb9fb changed: no need to serialize FoamModule any longer 2020-03-04 15:05:37 +01:00
Arne Morten Kvarving
30892a006e changed: no need to serialize SolventModule any longer 2020-03-04 10:01:03 +01:00
Bård Skaflestad
6688c19a77
Merge pull request #2397 from akva2/no_serialization_fluidsystem
changed: no need to serialize the FluidSystem any more
2020-03-03 21:51:10 -06:00
Joakim Hove
93964b2fa8
Merge pull request #2389 from joakim-hove/move-wellinjector-enum
InjectorType enum is moved out from Well class
2020-03-03 16:36:40 +01:00
Arne Morten Kvarving
03a2129df3 changed: no need to serialize the FluidSystem any more
setup is now done all from state, which means it can be done
independently on all processes
2020-03-03 14:24:18 +01:00
Bård Skaflestad
8c17e05c7d
Merge pull request #2386 from akva2/use_compressed_trans
use compressed indices setting up transmissibilities
2020-03-03 06:00:29 -06:00
Arne Morten Kvarving
89cb162c1f
Merge pull request #2383 from akva2/use_compressed_fipnum
use compressed field property for fipnum
2020-03-03 10:04:25 +01:00
Joakim Hove
9268bcb2ac InjectorType enum is moved out from Well class 2020-03-03 09:08:02 +01:00
Arne Morten Kvarving
f1e0dc0acb use compressed indices setting up transmissibilities 2020-03-03 08:43:50 +01:00
Arne Morten Kvarving
5a9340b5b1 use compressed field property for fipnum 2020-03-03 08:40:48 +01:00
Bård Skaflestad
8ed3b82c8a
Merge pull request #2385 from akva2/use_compressed_rock
use compressed field properties setting up rock parameters
2020-03-02 13:06:29 -06:00
Bård Skaflestad
c3f127afa0
Merge pull request #2384 from akva2/use_compressed_perm
use compressed properties setting up permeabilities
2020-03-02 11:56:13 -06:00
Arne Morten Kvarving
888f0190b7 use compressed field properties setting up rock parameters 2020-03-02 15:34:12 +01:00
Arne Morten Kvarving
ca91b61bc7 use compressed properties setting up permeabilities 2020-03-02 15:12:26 +01:00
Arne Morten Kvarving
b031f6d4cf
Merge pull request #2382 from akva2/use_compressed_thpressure
use compressed indices setting up ThresholdPressures
2020-03-02 15:02:18 +01:00
Arne Morten Kvarving
9f00c3dfe1
Merge pull request #2381 from akva2/use_compressed_ntg
use compressed field properties applying NTG
2020-03-02 14:49:59 +01:00