Commit Graph
100 Commits
Author SHA1 Message Date
Bård Skaflestad 488da80228 Merge pull request #5241 from bska/datumrx-supported
Permit DATUMR and DATUMRX Keywords in Input File
2024-03-04 14:07:57 +01:00
Bård Skaflestad 553d3c811e Permit DATUMR and DATUMRX Keywords in Input File
Following PRs

  * OPM/opm-common#3958
  * OPM/opm-simulators#5240

these keywords are nominally supported, at least for the block
level summary keywords (BPPx).
2024-03-04 13:50:26 +01:00
Bård Skaflestad 58875a1483 Merge pull request #5224 from bska/fix-per-cell-fip-rst-output
Add Special Case Handling for Fluid-In-Place of Pure Phases
2024-03-04 12:01:14 +01:00
Bård Skaflestad 7d79a86ae4 Merge pull request #5240 from bska/depth-corr-press
Add Support for Calculating Block Level Depth Corrected Pressures
2024-03-04 10:12:12 +01:00
Bård Skaflestad aa77c2ac41 Add Support for Calculating Block Level Depth Corrected Pressures
This commit calculates the block-level depth-corrected phase
pressures BPPO, BPPG, and BPPW.  We use the simulation
configuration's DatumDepth feature to extract the reference depths
for the FIPNUM region set per cell and accumulate average phase
densities per PVT regions using the RegionPhasePoreVolAverage
utility.  To that end, add a new optional<> data member of this type
to the generic output module and initialise this if the input model
requests such summary output.
2024-03-01 16:11:38 +01:00
Bård Skaflestad d4569dba7d Add Special Case Handling for Fluid-In-Place of Pure Phases
In particular, output the per-cell oil, gas, and water fluid in
place vectors using compatible array names and surface condition
unit conversion tags.

While here, also relax certain parallel and restart case regression
test tolerances to make the tests pass once we generate the arrays.
2024-03-01 11:40:36 +01:00
Bård Skaflestad 56b492069b Merge pull request #5238 from akva2/fix_flows_regression
fixed: if we write the size as a size_t we better read it as a size_t
2024-03-01 09:52:13 +01:00
Bård Skaflestad ee6083c358 Merge pull request #5231 from bska/phase-pv-region-average
Add Utility for Region-Based Phase-Filled Averages
2024-02-28 12:49:45 +01:00
Bård Skaflestad d1d22668ea Add Utility for Region-Based Phase-Filled Averages
The initial use case is calculating the phase-filled pore-volume
weighted average of the fluid mass densities per PVT region.  This
value goes into calculating depth-corrected per-cell phase pressure
values such as the BPPO and BPPG summary vectors.

This class manages a single linear array which separately tracks the
averages' numerators and denominators as running sums per region and
region set.  We pick this data structure to simplify the cross-rank
reduction needed in MPI parallel runs.  Client code is expected to
add individual per-cell and per-phase contributions using the
addCell() member function and then call the accumulateParallel()
member to affect the cross-rank reduction.  The averages will then
be available through the fieldValue() and value() member functions.

As a further view towards the initial use case, we track two
different types of average per phase--one for the phase-filled
volume and one for the pore-volume filled volume.  The latter is the
average we would get for the case of the phase saturation being one
throughout the region.  This alternative value is the fallback
option for the case of the phase saturation being identically zero
throughout the region.
2024-02-28 12:08:24 +01:00
Bård Skaflestad d69ba021a9 Merge pull request #5168 from lisajulia/feature/removeFilesOnSimulationStartup
Feature/remove files on simulation startup
2024-02-08 17:30:07 +01:00
Bård Skaflestad 6729190af1 Merge pull request #5169 from akva2/drop_ebos_template_params
Rename EbosSimulator template parameter to Simulator
2024-02-08 15:35:52 +01:00
Bård Skaflestad f569f4bbe9 Merge pull request #5171 from akva2/blackoilmodel_drop_ebos
BlackoilModel: drop ebos in variable names
2024-02-08 13:33:27 +01:00
Bård Skaflestad 644ba538d8 Merge pull request #5153 from akva2/actionhandler_drop_ecl
EclActionHandler: rename to ActionHandler
2024-02-06 13:01:04 +01:00
Bård Skaflestad e44614004a Merge pull request #5162 from akva2/janitoring
add missing include
2024-02-06 13:00:07 +01:00
Bård Skaflestad 97bef564da Merge pull request #5152 from akva2/simulatorfullyimplicit_janitoring
SimulatorFullyImplicitBlackoil.hpp: Some janitoring
2024-02-06 10:08:05 +01:00
Bård Skaflestad 00ecb25979 Merge pull request #5158 from akva2/fix_damaris_test_disabled
fixed: make sure Damaris is enabled before executing test
2024-02-02 22:48:00 +01:00
Bård Skaflestad 6d2d22f390 Merge pull request #5155 from lisajulia/feature/NONNC
Two more enhancements concerning NONNC
2024-02-02 18:57:13 +01:00
Bård Skaflestad 542fa7b612 Merge pull request #5154 from akva2/interregflow_drop_ecl
EclInterRegFlows: rename to InterRegFlows
2024-02-02 14:01:47 +01:00
Bård Skaflestad f6c5397af2 Merge pull request #5139 from GitPaean/shutwell_noxflow_zerorate
shutting wells zero rate constraint and not allowing crossflow
2024-02-02 09:59:05 +01:00
Bård Skaflestad 3ab6c617e5 Merge pull request #5151 from akva2/rename_main_sources
changed: rename simulator main files
2024-02-02 09:58:04 +01:00
Bård Skaflestad 0f5c638947 Merge pull request #5148 from akva2/simulatorfullyimplicit_drop_ebos
SimulatorFullyImplicitBlackoilEbos: rename to SimulatorFullyImplicitBlackoil
2024-02-02 09:49:42 +01:00
Bård Skaflestad a6eb7b65a1 Merge pull request #5149 from akva2/adaptivetimestepping_drop_ebos
AdaptiveTimeSteppingEbos: rename to AdaptiveTimeStepping
2024-02-01 18:36:36 +01:00
Bård Skaflestad ba3c64443c Merge pull request #5150 from akva2/istlsolver_drop_ebos
ISTLSolverEbos: rename to ISTLSolver
2024-02-01 17:43:34 +01:00
Bård Skaflestad a6054e729f Merge pull request #5147 from akva2/nonlinearsolver_drop_ebos
NonlinearSolverEbos: rename to NonlinearSolver
2024-02-01 16:49:26 +01:00
Bård Skaflestad 71b383d8e7 Merge pull request #5142 from akva2/blackoilmodel_remove_ebos
BlackoilModel: remove Ebos from class names
2024-02-01 12:34:12 +01:00
Bård Skaflestad abdf92c959 Merge pull request #5138 from akva2/damariswriter_cleanup
DamarisWriter: some additional cleanup
2024-01-31 11:40:45 +01:00
Bård Skaflestad adc8b968e4 Merge pull request #5126 from daavid00/pcogGasWaterOutput
Write pc for watergas systems
2024-01-30 17:40:56 +01:00
Bård Skaflestad 4010f29b6a Merge pull request #5137 from akva2/damaris_encapsulate
damariswriter: properly encapsulate Damaris
2024-01-30 17:40:17 +01:00
Bård Skaflestad 59d781c11b Merge pull request #5135 from akva2/griddataoutput_tu
GridDataOutput: some cleanup
2024-01-30 14:10:18 +01:00
Bård Skaflestad 472199f63d Merge pull request #5132 from blattms/fix-shared-linking
Fix linking errors when using shared libraries.
2024-01-30 11:02:51 +01:00
Bård Skaflestad 008e1c93c3 Merge pull request #5133 from akva2/damarisvar_cleanup
DamarisVar: Some cleanup
2024-01-30 11:01:07 +01:00
Bård Skaflestad 7a4a060594 Merge pull request #5130 from akva2/hdf5serializer_move
HDF5Serializer: move out of ebos folder
2024-01-30 10:50:22 +01:00
Bård Skaflestad d94ae5dad6 Merge pull request #5131 from akva2/damaris_janitoring
Damaris: avoid signed/unsigned comparison warnings
2024-01-29 17:05:18 +01:00
Bård Skaflestad 859db850c0 Merge pull request #5111 from lisajulia/feature/deterministic-indicesSyncer
Construct the matrices in the AMG hierarchy with deterministic indices.
2024-01-29 13:37:54 +01:00
Bård Skaflestad 3cb254f3ae Merge pull request #5114 from totto82/addMassCo2Output
Add co2 mass in place summary vectors
2024-01-26 13:20:13 +01:00
Bård Skaflestad d2af824b27 Merge pull request #5120 from atgeirr/avoid-nldd-crash
Avoid illegal combination of options.
2024-01-25 15:38:36 +01:00
Bård Skaflestad 79a33d0f53 Merge pull request #4993 from bska/conn-rock-compact-mult
Communicate Dynamic Transmissibility Multiplier to Output Layer
2024-01-25 11:39:55 +01:00
Bård Skaflestad 6dd043446e Communicate Dynamic Transmissibility Multiplier to Output Layer
This commit captures the rock compaction transmissibility multiplier
in the 'PerfData' during the non-lienear iterations and communicates
the converged value back to the output layer through the new data
member to the data::Connection structure,

    double data::Connection::compact_mult
2024-01-25 09:35:08 +01:00
Bård Skaflestad 8a8af09e7a Defer More Static D-Factor Calculation to Connection Class
In particular, we don't need the porosity value anymore now that the
"getDFactor()" function takes only the component density of gas at
surface conditions, the current dynamic gas viscosity at reservoir
conditions and a Connection object.

While here, split a few long lines and make more objects 'const' for
better maintainability.
2024-01-24 18:03:09 +01:00
Bård Skaflestad 0c359983b7 Merge pull request #5118 from aritorto/rvActnum
Unnecessary vector removed
2024-01-24 13:48:56 +01:00
Bård Skaflestad bd74dfc033 Merge pull request #5119 from atgeirr/update-messages-trueimpesanalytic
Add cpr_trueimpesanalytic option for LinearSolver parameter.
2024-01-24 13:48:12 +01:00
Bård Skaflestad 9b57cbce96 Merge pull request #5117 from bska/use-declared-maxreg
Support at Least NTFIP Distinict Regions for Inter-Region Flow
2024-01-24 10:44:13 +01:00
Bård Skaflestad eb9ead5577 Support at Least NTFIP Distinict Regions for Inter-Region Flow
This commit ensures that we have backing support for region IDs up
to and including NTFIP (TABDIMS(5), REGDIMS(1)).  The existing setup
would fail (segmentation violation) in the case of a summary vector
of the form

    ROFT
      36 31 /
    /

when the maximum FIPNUM value was 30.  We nevertheless support
maximum FIPNUM values exceeding NTFIP.

We add a new optional parameter to the EclInterRegionFlowMap
constructor.  The parameter allows client code to specifiy a
"minimum maximum" region ID that all ranks must support.  This value
will be enforced during parallel aggregation.
2024-01-24 09:54:44 +01:00
Bård Skaflestad 24ebb77257 Merge pull request #5116 from atgeirr/parallel-well-domain-output
Parallel well domain and error logging for NLDD
2024-01-23 15:41:11 +01:00
Bård Skaflestad 42476bedb2 Merge pull request #5115 from akva2/move_mpi_serializer
changed: move ebos/eclmpiserializer.hh to opm/simulators/utils/MPISerializer.hpp
2024-01-23 12:53:21 +01:00
Bård Skaflestad ff8372bc40 Merge pull request #5106 from atgeirr/initialize-communication-object-earlier
Initialize the communication object in initialize().
2024-01-17 13:36:36 +01:00
Bård Skaflestad 63208c38f6 Merge pull request #5054 from akva2/rstconv
added: hook up RPTRST CONV output to restart file if requested
2024-01-16 13:35:29 +01:00
Bård Skaflestad 44bb4172fa Merge pull request #4989 from bska/chase-opm-connection-ctor-api
Chase Constructor API Change for Opm::Connection Class
2024-01-15 14:47:21 +01:00
Bård Skaflestad ceffbd2fc5 Chase Constructor API Change for Opm::Connection Class 2024-01-15 11:05:02 +01:00
Bård Skaflestad 534465d212 Merge pull request #5104 from atgeirr/nldd-improved-reporting
Nldd improved reporting
2024-01-15 11:00:58 +01:00
Bård Skaflestad 38f39e2ac6 Merge pull request #5081 from totto82/fix_gaswater_rockcomp
Use gas pressure for gas-water cases in rockcomp
2024-01-11 11:08:06 +01:00
Bård Skaflestad 24b43d3166 Merge pull request #5053 from akva2/add_rstconv_class
added: class for calculating RPTRST CONV
2024-01-10 13:27:20 +01:00
Bård Skaflestad 3c1481df04 Merge pull request #5098 from blattms/regtest-multflt
Add MULTREGT regression test.
2024-01-09 11:34:24 +01:00
Bård Skaflestad 44b568eab8 Merge pull request #5090 from bska/report-all-wells
Output Well Flow Sheets for All Wells
2024-01-09 08:33:12 +01:00
Bård Skaflestad 60c7c79f58 Output Well Flow Sheets for All Wells
There is no need to restrict PRT file flow reports to those wells
which are active on the current rank since the SummaryState object
holds information for all wells active at the current report step.
2024-01-08 08:58:51 +01:00
Bård Skaflestad b58b0f8879 Merge pull request #5091 from locture/master
Bugfix for a corner case in MPI
2024-01-08 08:50:49 +01:00
Bård Skaflestad 5e9bdfd342 Merge pull request #5085 from blattms/mark-skip-endskip-supported
Mark keywords SKIP, SKIP100, SKIP300, and ENDSKIP as supported.
2024-01-04 11:42:07 +01:00
Bård Skaflestad 2ab40522ea Merge pull request #5068 from tskille/rptsol
PRT file updates
2024-01-04 00:22:41 +01:00
Bård Skaflestad 98421e31e7 Merge pull request #5043 from totto82/fixParallelOutput
Only output interior cells
2023-12-21 09:41:18 +01:00
Bård Skaflestad 52655b6d31 Merge pull request #5080 from akva2/geomech_janitor
remove unused variables
2023-12-20 11:25:42 +01:00
Bård Skaflestad b30bfb5b1b Merge pull request #5073 from atgeirr/fix-output-dir
Avoid modifying outputDir, leave empty if defaulted.
2023-12-19 16:50:27 +01:00
Bård Skaflestad 8837528c9e Merge pull request #5075 from steink/fix_saturation_pressure_issue
Avoid use of problematic 'saturationPressure'-function
2023-12-19 12:05:04 +01:00
Bård Skaflestad fc73a51310 Merge pull request #4873 from vkip/wsegvalv_uda_item4
Allow UDA for WSEGVALV item 4
2023-12-13 21:19:27 +01:00
Bård Skaflestad b42b920b7e Merge pull request #5031 from blattms/print-parallel-info-to-prt
Also print information about parallel run to PRT file.
2023-12-13 18:16:50 +01:00
Bård Skaflestad a88214460c Merge pull request #5059 from akva2/janitoring
GroupEconomicLimitsChecker: cleanup includes
2023-12-12 16:45:39 +01:00
Bård Skaflestad 5c9e86666c Publish Short Region Set Names Only
That way, in-place quantities will go through the short-to-canonical
name translation in FieldProps regardless of their origin--e.g.,
RPTSOL/RPTSCHED or explicit SUMMARY section vectors.
2023-12-11 17:01:40 +01:00
Bård Skaflestad 922cd86d59 Merge pull request #5056 from akva2/janitoring
GasLiftXXX: clean up includes
2023-12-11 16:57:21 +01:00
Bård Skaflestad 88c223bf7c Merge pull request #5049 from bska/removed-dashed-line-in-report
Remove Dashed Lines Between Records in PRT File Reports
2023-12-11 11:03:50 +01:00
Bård Skaflestad a83f38a582 Merge pull request #5048 from bska/log-destination-file
Report Destination File for Unhandled Report Keywords
2023-12-11 11:03:17 +01:00
Bård Skaflestad c03f794f9c Remove Dashed Lines Between Records in PRT File Reports
This commit splits the production, injection, and cumulative
*Report_() functions into three logically distinct parts, one for
outputting the report header (begin*Report_()), one for outputting a
single report record (output*ReportRecord_()), and one for ending
the report (end*Report_()).  This simplifies the logic of the
*Record_() member functions since they no longer need to infer the
context which is already available in the caller and can perform a
more narrow task than before.

With this separation we're also able to remove the dashed lines
which would previously separate each report record, thereby creating
PRT file report sheets which have a more expected layout.

Moreover, as an aid to future maintenance, we also factor out common
code for the well and group cases in each *Record_() function.

Finally, fix a unit conversion problem in the report values for
cumulative gas quantities.  The sheet header states that we should
be outputting values in 'MM' prefixed units, but we were only
scaling the gas values by a factor of 1000 instead of 1000*1000.  In
other words, the injection and production gas values in the
cumulative sheet were off by a factor of 1000.
2023-12-11 10:01:22 +01:00
Bård Skaflestad b1cba34eba Report Destination File for Unhandled Report Keywords
That way, the user gets a little more information and will be in a
better position to assess whether or not the missing support is a
real problem.
2023-12-08 22:09:15 +01:00
Bård Skaflestad f9a5b1ecdb Merge pull request #5051 from akva2/celldata_adjust
adjust to data::CellData changes
2023-12-08 21:36:50 +01:00
Bård Skaflestad bbe64400cc Merge pull request #5052 from akva2/janitoring
Some janitoring
2023-12-08 21:20:16 +01:00
Bård Skaflestad 0a9d50693e Merge pull request #5045 from bska/prune-prtfile-blank-table-lines
Remove Spurious Blank Lines in PRT File Reports
2023-12-08 11:33:42 +01:00
Bård Skaflestad d79bd2848f Prune ForceDisable Parameters From *Log Functions
They aren't really needed in the current sources.  We can readd
them, or something similar, if the need to turn off these reports
from a command line parameter arises.

Suggested by: [at]akva2.
2023-12-08 10:37:20 +01:00
Bård Skaflestad ec549df37b Remove Spurious Blank Lines in PRT File Reports
The StreamLog::addMessageUnconditionally() member function will end
each message with a newline (std::endl) so we should not add such
newlines ourselves.  The extra newline characters produce spurious
blank lines in the report sheets, e.g., for the "PRODUCTION REPORT".

This commit removes the last newline character from each report
request, thus deferring that responsibility to OpmLog::note()
instead.  Doing so, however, means we have take a little more care
with the first line of each report lest we create report sheets
which are smushed together.
2023-12-08 10:22:43 +01:00
Bård Skaflestad 6b18cbafc6 Pull Substep Checking out of *Log() Functions
This commit removes the 'substep' parameter from the output module's
outputProdLog(), outputInjLog(), and outputCumLog() member
functions.  This parameter was only used in the same way in internal
conditions in each member function and we can enforce that check on
the outside without losing expressivity.
2023-12-08 10:22:43 +01:00
Bård Skaflestad 91fdded473 Merge pull request #4986 from steink/improved_local_thp_solve
Implicit IPR for stability/operablity checks and solution of thp-wells
2023-12-08 09:59:07 +01:00
Bård Skaflestad d2ee47de7f Merge pull request #5041 from steink/prevent_nans_for_valve_models
Guard against nans from certain expressions in the valve models
2023-12-06 19:42:32 +01:00
Bård Skaflestad 338c210985 Merge pull request #5034 from akva2/fix_fip_no_summary_kw
fixed: grab list of FIP regions from FieldPropsManager
2023-12-04 17:46:00 +01:00
Bård Skaflestad 7c41fea5c2 Merge pull request #5035 from akva2/janitoring
Janitoring: fix dead stores
2023-12-04 13:11:31 +01:00
Bård Skaflestad bf1484995a Merge pull request #5033 from vkip/udq_wconprod_alq
Allow using UDQ for WCONPROD item 12 (ALQ)
2023-12-04 13:10:49 +01:00
Bård Skaflestad b7ad5a9d29 Merge pull request #5032 from vkip/catch_welltesting
Catch exceptions from well testing
2023-12-01 10:33:01 +01:00
Bård Skaflestad 5fe1eafb34 Merge pull request #5026 from totto82/fix_gpmaint2
Bugfix sign of gpmaint prod
2023-11-28 11:16:03 +01:00
Bård Skaflestad a6d583b9d0 Merge pull request #5024 from blattms/not-warn-loadStep-OutputDir
Do not warn about OutputDir when combined with LoadStep.
2023-11-24 19:03:52 +01:00
Bård Skaflestad 6b78dd4ad4 Merge pull request #5021 from atgeirr/nldd-refinements
Nldd refinements
2023-11-24 16:40:39 +01:00
Bård Skaflestad cd94ac3a7c Merge pull request #5023 from totto82/wpimult
Adapt wdfac to wpimult
2023-11-23 16:28:32 +01:00
Bård Skaflestad 7343aca2be Merge pull request #5018 from blattms/parallel-well-fixes
[fix] Do parallel sums with int instead of bool.
2023-11-23 16:24:36 +01:00
Bård Skaflestad 4aa1cac099 Merge pull request #5015 from GitPaean/no_explicit_updating
not updating connection pressure for StandardWell early in computeWellRatesWithBhpIterations.
2023-11-23 16:20:18 +01:00
Bård Skaflestad 8f6b2b99e7 Merge pull request #5014 from bska/fix_shut_in_for_non_operable_wells
Fix shut-in logic for wells with shut-instructions (revised)
2023-11-22 19:41:56 +01:00
Bård Skaflestad 6f64388f1e Reduce Timestep for Certain Sensitive Tests
This increases the cost of those tests, but in return we get
improved determinism and stability of the tests.
2023-11-22 16:53:48 +01:00
Bård Skaflestad 82a83d04e2 Merge pull request #5017 from akva2/missing_include
add missing include
2023-11-22 15:26:14 +01:00
Bård Skaflestad 8dca5a931e Merge pull request #5005 from totto82/fixWDFACCOR
dont scale d factor from wdfaccor with connection factor
2023-11-22 14:55:51 +01:00
Bård Skaflestad 3a01da0a12 Merge pull request #5010 from totto82/cgfrf
Add output of connection dissolved gas and vaporized oil
2023-11-22 12:54:33 +01:00
Bård Skaflestad 925d5685a1 Merge pull request #5016 from akva2/fix_gen_headers_superbuild_ninja
fixed: also add dependency with ninja generator
2023-11-22 12:51:05 +01:00
Bård Skaflestad 518df3fa7e Merge pull request #5007 from akva2/fix_loghelper_test_logger
fixed: we need to initialize logger before parsing
2023-11-20 16:30:58 +01:00
Bård Skaflestad ea3b22480a Enable Loading Parallel NLDD Partition From File
This commit adds support for loading a three-column NLDD
partitioning scheme of the form

    MPI_Rank  Cartesian_Index  NLDD_Domain_ID

from a text file.  In an MPI run it is assumed that the first column
holds integers in the range 0..MPI_Size()-1, and typically that each
such integer is listed at least once.  In a sequential run, the MPI
rank column is ignored.

With this scheme we can load the same partition files that we write,
for increased repeatability and determinism, and we can also
experiment with externally generated NLDD partitions.
2023-11-17 17:39:17 +01:00
Bård Skaflestad 68fe118781 Make Compress/Count Partition Vector Helper Generally Available
This function pair is useful also when loading a partition from
file to ensure that there are no gaps in block numbering.
2023-11-17 09:17:46 +01:00
Bård Skaflestad c0c96123bc Add Support for Writing NLDD-Like Partitions in Parallel
This commit adds a new (hidden) debugging option,

    DebugEmitCellPartition (--debug-emit-cell-partition)

which, when set, will cause each rank to write a three-column text
file of the form

    MPI_Rank  Cartesian_Index  NLDD_Domain_ID

into the directory

    partition/CaseName

of the run's output directory.  That file will be named according to
the process' MPI rank, so the first column will be the same as the
file name.

The option is primarily intended for debugging the NLDD partitioning
scheme, so is mostly reserved for runs with low MPI sizes (e.g.,
less than 20).

While here, also make the MPIPartitionFromFile helper class aware of
this format so that we can use concatenated output files as an input
to the MPI partitioning algorithm for repeatability.
2023-11-17 09:17:46 +01:00
Bård Skaflestad c559de51cf Merge pull request #4996 from totto82/fixWDFAC
Fix wdfac and d factor in comdat
2023-11-17 09:09:22 +01:00