Commit Graph
16913 Commits
Author SHA1 Message Date
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 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
Arne Morten Kvarving 7841f6abcb remove dead store 2023-12-08 18:42:41 +01:00
Arne Morten Kvarving 3534c6d1fa mark overriden virtual method as such 2023-12-08 18:42:21 +01:00
Arne Morten Kvarving 269d1877f7 SerializableSim: add virtual dtor 2023-12-08 18:42:07 +01:00
Arne Morten Kvarving 7328b91958 adjust to data::CellData changes 2023-12-08 18:41:35 +01:00
Markus Blatt 3b60e1ef89 Merge pull request #5047 from totto82/applyMultBC
Apply MULT[XYZ] to boundary trans
2023-12-08 14:51:12 +01:00
Atgeirr Flø Rasmussen a52877081e Merge pull request #5046 from blattms/comm-exception-wetgaspvt-sat-pressure
[fix,MPI] Handle exception during assembleWellEqWithoutIteration correctly
2023-12-08 13:02:42 +01:00
Tor Harald Sandve d687ad8803 Apply MULT[XYZ] to boundary trans 2023-12-08 12:51:20 +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
Stein Krogstad 051f4d4eab Remove early-return functionality due to unintended consequences 2023-12-08 00:36:39 +01:00
Markus Blatt 50e1d09a8c Add semicolon to help with indentation. 2023-12-07 16:41:16 +01:00
Markus Blatt 260dac77a5 [MPI] Handle exception during assembleWellEqWithoutIteration correctly
For this particular model WetGasPVT::saturationPressure did throw
because convergence in the newton solver is not reached in 20
iterations. Unfortunately, the exception was only seen on one MPI rank
and the others continued.

With this commit we communicate the problem and throw on all MPI
processes. Time step will be cut as a result.
2023-12-07 15:41:35 +01:00
Stein Krogstad 7c91c015cf updates according to Atgeirrs comments 2023-12-07 13:09:00 +01:00
Stein Krogstad 1fd1c5afc6 Updates according to Atgeirr's comments 2023-12-07 13:09:00 +01:00
Stein Krogstad 00bd006eb4 Fix bugs 2023-12-07 13:09:00 +01:00
Stein Krogstad 94cde80235 always set wells operable to avoid skipping linear solve/updating 2023-12-07 13:09:00 +01:00
Stein Krogstad 2121373e4f clean-up 2023-12-07 13:09:00 +01:00
Stein Krogstad 5083052a3f clean-up, fixing and add debug info 2023-12-07 13:09:00 +01:00
Stein Krogstad 743c7bd120 add argument to get proper conv for well-copies 2023-12-07 13:09:00 +01:00
Stein Krogstad 9a5aef6e5e move function for proper access to well_state 2023-12-07 13:09:00 +01:00
Stein Krogstad 88ede7b7fc revert to original 2023-12-07 13:09:00 +01:00
Stein Krogstad ee16e90ba2 fix well-convergence for well-copies 2023-12-07 13:09:00 +01:00
Stein Krogstad 73ec44d9c4 include use-implicit-ipr as paramaeter 2023-12-07 13:09:00 +01:00
Stein Krogstad 03366b92eb include thp-solve for potentials 2023-12-07 13:09:00 +01:00
Stein Krogstad 44e17fa615 cleanup thp-solve 2023-12-07 13:09:00 +01:00
Stein Krogstad 3e6732a67b rename to implicit_ipr 2023-12-07 13:09:00 +01:00
Stein Krogstad 746e05db5d Include implicit ipr for ms-wells 2023-12-07 13:09:00 +01:00
Stein Krogstad b287981e5e testing 2023-12-07 13:09:00 +01:00
Stein Krogstad 7aa50f149f updates 2023-12-07 13:09:00 +01:00
Stein Krogstad 2470b20d13 final revert 2023-12-07 13:09:00 +01:00
Stein Krogstad 94c0b49cf7 revert changes 2023-12-07 13:09:00 +01:00
Atgeirr Flø Rasmussen 446670943a Merge pull request #5042 from akva2/serializer_throw_early_no_hdf5
changed: throw early in simulator serializer
2023-12-07 10:42:01 +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
Stein Krogstad 4355a94511 make reference to parameter 2023-12-06 14:45:18 +01:00
Arne Morten Kvarving 4eeefabedd changed: throw early in simulator serializer
if HDF5 input/output is requested but no support is available
we throw early instead of just logging an error when save/load
is to be performed
2023-12-06 10:03:29 +01:00
Markus Blatt faad3a6ee5 Merge pull request #4811 from akva2/simulator_serializer_class
Move simulator serialization to separate class
2023-12-06 10:02:26 +01:00
Markus Blatt abd387abba Merge pull request #5036 from blattms/comm-sigular-mat-exception
Communicate exceptions during WellModel::updateAndCommunicate
2023-12-06 09:54:00 +01:00
Stein Krogstad a483839caa return zero for powers with negative base 2023-12-05 21:28:54 +01:00
Arne Morten Kvarving f46b6c5a01 changed: move simulator serialization to separate class
more separation of concerns
2023-12-05 11:20:22 +01:00
Arne Morten Kvarving eb599af058 add missing header 2023-12-05 11:00:56 +01:00
Markus Blatt 3a9c586d19 Make sure that problems with singular matrices are logged.
Previously, if the problem occured on an MPI process with rank other
than zero the the logging would not seen (at least in the output
files). Now together with the previous commit the problem should be
logged together with the well name and calling method.
2023-12-04 23:15:08 +01:00
Markus Blatt 779dd74923 Communicate exceptions during WellModel::updateAndCommunicate
For multi segment well the underlying call to
MultisegmentWell::updateWellStateWithTarget (at least if
updateWellStateWithTHPTargetProd is called for a producer under thp
control) might throw as there might be a singular matrix during the
solve needed in MultisegmentWell::iterateWellEqWithControl.

Previously, if that happened then the MPI process where it happened would
stop the nonlinear iteration as failed and try with a chopped time
step. The others might go one with the current time step and we would
see MPI errors about truncated messages.

Now we communicate any exception happening during this part of
WellModel::updateAndCommunicate and all processes will stop the
nonlinear iteration as failed and chop the time step.
2023-12-04 22:26:55 +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
Arne Morten Kvarving d120fe1ebc fixed: grab list of FIP regions from FieldPropsManager
not from SummaryConfig. the latter only holds regions with
summary keywords
2023-12-04 13:24:32 +01:00