Commit Graph

20537 Commits

Author SHA1 Message Date
Bård Skaflestad
0240922cf4 Handle WELPI from ACTIONX Separately From Constraints
This commit switches to using the 'welpi_wells' information from the
SimulatorUpdate structure as a basis to decide the wells for which
it is safe/sufficient to update only the CTFs in response to an
ACTIONX block running WELPI.  To this end, we split the actions of
the existing member function updateEclWells() into two parts,

  1. updateEclWellsConstraints()
  2. updateEclWellsCTFFromAction()

in which the first handles well status and well control updates
while the second deals with CTF updates in response to WELPI.  We do
not run the second part if the well structure has changed--e.g., due
to COMPDAT or WELOPEN--since the update loop depends on a static
connection topology.

We add a new member function wellUpdateLoop() which will traverse a
sequence of well names and invoke a loop body on those wells which
exist in wells_ecl_.  This collects common operations needed for
both the constraints and the CTF updates.
2024-10-29 14:06:08 +01:00
Arne Morten Kvarving
c67f39db80
Merge pull request #5692 from akva2/fix_missing_rescoup_serialization
add missing ReservoirCouplingInfo.hpp includes
2024-10-29 11:51:30 +01:00
Arne Morten Kvarving
58365df3ff add missing ReservoirCouplingInfo.hpp includes
now that Schedule(State) properly serializes the member
2024-10-28 15:51:14 +01:00
Bård Skaflestad
d8c6ebb509
Merge pull request #5691 from GitPaean/enableThresholdPressure_false
enableThresholdPressure_ initialized to be false
2024-10-25 12:45:44 +02:00
Markus Blatt
4a60c167fb
Merge pull request #5686 from vkip/bugfix_inactive_rank0
Bugfixes #5609
2024-10-25 12:00:46 +02:00
Kai Bao
6742679e48 enableThresholdPressure_ initialized to be false
in GenericThresholdPressure
2024-10-25 11:58:27 +02:00
Markus Blatt
5a350e5b3f
Merge pull request #5690 from bska/well-matcher-from-schedule
Get WellMatcher Object Directly From Schedule
2024-10-25 11:28:26 +02:00
Bård Skaflestad
7f4d787522 Get WellMatcher Object Directly From Schedule
There's no need for us to invoke the WellMatcher constructor when
the Schedule object already knows how to do that.
2024-10-25 10:55:32 +02:00
Vegard Kippe
7f6c7aec01 Info message, cmdline option and avoid splitting wells on restart (for now) 2024-10-22 20:29:24 +02:00
Atgeirr Flø Rasmussen
bf5f0c864d
Merge pull request #5605 from totto82/issue_stopped_wells
Fix issue with stopped injectors in thermal runs
2024-10-22 10:48:44 +02:00
Vegard Kippe
729d3c2a59 Use bool, not int, to also add inactive wells to rank 0... 2024-10-21 15:30:50 +02:00
Lisa Julia Nebel
5032a37283
Merge pull request #5649 from aritorto/levelsCartMappALU
Separate non-DUNE methods in LevelCartesianIndexMapper<AluGrid>
2024-10-21 15:01:22 +02:00
Bård Skaflestad
09ebfbf3e3
Merge pull request #5664 from GitPaean/make_flowexp_version_output_rst
in flowexp_blackoil, invalidate output data after solution is updated
2024-10-21 12:04:47 +02:00
Antonella Ritorto
b875ba8122 LevelCartesianIndexMapper for AluGrid 2024-10-21 11:25:27 +02:00
Kai Bao
3d04a97ff5 removing invalidateLocalData() in updateSolution() in BlackoilModel 2024-10-21 10:42:39 +02:00
Kai Bao
2d082cae42 in flowexp_blackoil, invalidate output data after solution is updated 2024-10-21 10:34:00 +02:00
Markus Blatt
afcfedb9f1
Merge pull request #5609 from vkip/use_only_active_wells_in_partitioning
In partitioning, only account for wells that will be active at some point in time
2024-10-21 07:35:28 +02:00
Arne Morten Kvarving
139088398c
Merge pull request #5682 from akva2/lambda_janitoring
Some lambda fixes
2024-10-17 12:54:55 +02:00
Arne Morten Kvarving
501ee0f818 avoid declaring t1 outside lambda
clang doesn't want us to capture t1, and g++-14 requires us
to capture t1. this workaround avoids warnings with both.
2024-10-17 12:32:59 +02:00
Arne Morten Kvarving
0af94eef27 remove unused capture 2024-10-17 11:32:04 +02:00
Bård Skaflestad
0d4b7ece0a
Merge pull request #5668 from totto82/fixGWrestart
FIX gas-water restart
2024-10-17 09:18:31 +02:00
Tor Harald Sandve
a45ad36c70 Add rsw to restart arrays and remove temperature 2024-10-17 08:53:17 +02:00
Vegard Kippe
9d9726920b Post-review update - reducing global communication and simplifying 2024-10-16 22:24:01 +02:00
Vegard Kippe
6c4512be12 Fix MPI restart issue (test failures for some oil-water cases) 2024-10-16 22:24:01 +02:00
Vegard Kippe
4bc904d941 Fix RFT output for non-root connections.. 2024-10-16 22:24:01 +02:00
Vegard Kippe
f7ac4f8a3c Avoid initializing inactive multi-segment wells + avoid direct MPI call 2024-10-16 22:24:01 +02:00
Vegard Kippe
5191271883 Add inactive wells to all partitions with connections 2024-10-16 22:24:01 +02:00
Vegard Kippe
cd26ce5568 Add inactive wells to rank 0 for output 2024-10-16 22:24:00 +02:00
Vegard Kippe
7ee218b1e2 In partitioning, only account for wells that will be active at some point in the simulation. 2024-10-16 22:24:00 +02:00
Atgeirr Flø Rasmussen
b886d4e4ae
Merge pull request #5596 from bska/enable-new-satfunc-consistency-checks
Enable New Saturation Function Consistency Checks
2024-10-16 15:31:18 +02:00
Bård Skaflestad
2aac0d6cf5 Enable New Saturation Function Consistency Checks
The new parameter CheckSatfuncConsistency, command line option
--check-satfunc-consistency, allows users to opt into running the
checks.  The option currently defaults to 'false' to reflect the
somewhat experimental nature of the new facility.

The new parameter --num-satfunc-consistency-sample-points allows the
user to select the maximum number of reported failures for each
individual consistency check.  By default, the simulator will report
at most five failures for each check.

We check the unscaled curves if the run does not activate the
end-point scaling option and the scaled curves otherwise.  At
present we're limited to reversible and non-directional saturation
functions for the drainage process, but those restrictions will be
lifted in due time.
2024-10-16 15:03:07 +02:00
Bård Skaflestad
92efa31c31 Tidy Up FlowProblem* Classes
In preparation of enabling the new saturation function consistency
checks.
2024-10-16 12:18:33 +02:00
Atgeirr Flø Rasmussen
585627295f
Merge pull request #5592 from bska/top-level-sfunc-check-mgr
Add Top Level Container for Saturation Function Consistency Checks
2024-10-16 12:02:55 +02:00
Atgeirr Flø Rasmussen
84a94478d2
Merge pull request #5678 from akva2/janitoring_clang
rename capture variable
2024-10-16 11:50:22 +02:00
Arne Morten Kvarving
9561191992 rename capture variable
to avoid shadowing warnings with clang
2024-10-16 11:02:26 +02:00
Bård Skaflestad
b5305b928d Use More Specific Name for 'anyFailedChecks'
The function returns whether or not there were any failed checks at
the 'Standard' level.  Make the function name reflect this.
2024-10-16 09:32:19 +02:00
Bård Skaflestad
8082e72d32 Add Top Level Container for Saturation Function Consistency Checks
This commit introduces a new top-level "manager" for all saturation
function consistency checks.  This component associates collections
of saturation function curves with per-cell or per-region end-point
definitions and provides an interface to run all checks for all
interior entities (i.e., active cells) in a DUNE grid view.  We form
one set of SatfuncConsistencyChecks objects for each
SatfuncCheckPointInterface<> object, thereby enabling running the
same set of consistency checks for both the unscaled, tabulated,
per-region saturation functions and the per-cell scaled saturation
functions.  The latter is executed only if the run enables end-point
scaling for the saturation functions while the former is executed
only if the run does not enable end-point scaling.

At present we're limited to reversible and non-directional
saturation functions for the drainage process only, but those
restrictions will be lifted in due time.

As an aid to enabling the pertinent individual checks, we add a
private factory function which considers the run's active phases and
whether or not the run uses the alternative, three-point horizontal
scaling method ("SCALECRS = YES").
2024-10-16 09:32:19 +02:00
Bård Skaflestad
98513d92f9
Merge pull request #5675 from jakobtorben/fix_memory_bug_in_setPrimaryVars_for_msw
Fix memory bug in setPrimaryVars for MSW
2024-10-16 09:26:06 +02:00
jakobtorben
e2ac43b76f Fix memory bug in setPrimaryVars for MSW 2024-10-15 16:31:38 +02:00
Tor Harald Sandve
438e40b143 FIX gas-water restart 2024-10-15 10:34:32 +02:00
Bård Skaflestad
c228f31287
Merge pull request #5665 from bska/assign-per-rank-tracer-conc-at-restart
Use Rank's Local Cells for Tracer Concentration Restart
2024-10-14 17:24:33 +02:00
Bård Skaflestad
65654c8e01 Use Rank's Local Cells for Tracer Concentration Restart
The 'globalIdx' generated by localIdxToGlobalIdx() is in the range
zero to number of active cells in global model, not zero to number
of active cells on rank.  Using 'globalIdx' as an argument to
set*TracerConcentration() therefore ends up indexing out-of-bounds
for the internal arrays in the tracer model object in parallel
restarted simulation runs.

The problem has been present since the restart support for tracers
was added in commit e9c45f4ca (PR #3708).

This commit switches to using the 'elemIdx' instead, as we already
do when calling the output module's setRestart() member function.
Following this, we are able to restart the standard Norne benchmark
case (NORNE_ATW2013.DATA) in parallel.  The numerical results for
the tracer concentrations are, however, a little questionable and
will warrant further investigation.  Nevertheless, the tracer values
are now the same in a parallel restarted run as in a sequential
restarted run.
2024-10-11 18:05:48 +02:00
Atgeirr Flø Rasmussen
c7b3e40bfa
Merge pull request #5589 from bska/sfunc-checkpoint-interface
Add Protocol for Populating Saturation Function End Points per Cell
2024-10-11 12:52:04 +02:00
Bård Skaflestad
257e5a2d2a Add Protocol for Populating Saturation Function End Points per Cell
This commit introduces a set of callback functions, packaged in an
abstract base class SatfuncCheckPointInterface<Scalar>, for querying
and populating the saturation function end-points that get probed by
the individual consistency checks.  Member function

    SatfuncCheckPointInterface::pointID(cellIdx)

translates the active cell index 'cellIdx' into a point ID, assumed
to be unique on at least the current MPI rank.  This function will
return 'nullopt' if the 'cellIdx' is not eligible for this
particular end-point.  This typically happens for the region based
tabulated (unscaled) saturation function checks when the 'cellIdx'
happens to be in a region that's already been visited.  Member
function

    SatfuncCheckPointInterface::populateCheckPoint(cellIdx, endPoints)

fills in (assigns) all data members of the 'endPoints' structure
with the pertinent values for the active cell 'cellIdx'.

We implement this interface for the tabulated/unscaled end-points in
derived class UnscaledSatfuncCheckPoint<Scalar> and for the scaled
end-points in derived class ScaledSatfuncCheckPoint<Scalar>.  The
former keeps track of which saturation regions have been visited
and short-circuits its 'pointID()' member function based on that
information while the latter uses an instance of the former in order
initialise the 'endPoints' structure in its populateCheckPoint()
member function.
2024-10-11 11:47:50 +02:00
Bård Skaflestad
eaa9e994d2
Merge pull request #5662 from bska/bump-version
Bump Master Development Version
2024-10-11 11:31:17 +02:00
Bård Skaflestad
cab5b7c000 Bump Master Development Version
New features now go into the 2025.04 release.
2024-10-11 10:10:55 +02:00
Atgeirr Flø Rasmussen
af93859a29
Merge pull request #5660 from jakobtorben/remove_unused_num_cells_argument
Remove unused num_cells argument from well equations
2024-10-11 08:25:16 +02:00
jakobtorben
60bd3f5514 Remove unused num_cells argument from well equations 2024-10-10 20:26:13 +02:00
Atgeirr Flø Rasmussen
064a66e794
Merge pull request #5659 from atgeirr/delay-well-stop-by-one-iteration-rebased
Delay stopping wells after local well solves until global update agrees (rebased)
2024-10-10 17:37:24 +02:00
Atgeirr Flø Rasmussen
a7efc0091d
Merge pull request #5341 from jakobtorben/NLDD_remove_need_for_addWellContrib
Remove the need for add well contributions to matrix for NLDD
2024-10-10 16:23:52 +02:00