Commit Graph

15223 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
3832b02367 Adjust default behaviours for CPR variants.
- Remove two unused parameters. CprEllSolvetype is never used, and CprEllMaxIter
   is not used correctly as is (if used, it should change the maximum iterations of
   the coarse solver, not the repeats of the preconditioner) and is better left for
   JSON file customization.
 - Make the default AMG setup for "cpr" (including "cpr_trueimpes" and "cpr_quasiimpes")
   match the setup for "cprw". In particular, beta = 0.0 (not 1e-4) and
   prolongationdamping = 1.0 (not 1.6).
 - Just as we override the default maximum number of linear iterations for cpr and cprw
   (unless the user actually specified on the command line) to 20 instead of 100, we
   change the default reduction to be 0.005 instead of 0.01.
2022-12-21 13:23:13 +01:00
Bård Skaflestad
c50cdc2454
Merge pull request #4331 from akva2/msw_avoid_mutable
MultisegmentWell: avoid mutable primary variables
2022-12-19 12:34:13 +01:00
Bård Skaflestad
c42e0051e3
Merge pull request #4329 from blattms/treat-connection-not-attached-to-segments-correctly
[bugfix,mswells] Throw for connections not attached to segments correctly.
2022-12-16 17:12:27 +01:00
Markus Blatt
8cde90fbd0 [bugfix,mswell] Throw for connections not attached to segments.
If there are connections of a multisegment well that are not
connected to any segment, we throw with a meaningful error message
instead of a silent segmentation fault. In that case an invalid segment index
of zero would be returned. The corresponding storage index returned by
segmentToNumberIndex ould become -1. This previously lead to segmentation
faults when using it to index a container.
2022-12-16 16:12:47 +01:00
Arne Morten Kvarving
f4c2aa3a35 MultisegmentWell: primary variables no longer needs to be marked mutable 2022-12-16 15:07:46 +01:00
Arne Morten Kvarving
f782673b2d MultisegmentWell: make updatePrimaryVariables non-const
this will obviously update state
2022-12-16 15:07:35 +01:00
Arne Morten Kvarving
ef992080cf MultisegmentWell: make updatePrimaryVariablesNewton non-const
this will obviously update state
2022-12-16 15:07:12 +01:00
Arne Morten Kvarving
ac91db281a MultisegmentWell: make processFractions non-const
this updates state
2022-12-16 15:06:36 +01:00
Arne Morten Kvarving
6b61af21b3 MultisegmentWell: make initPrimaryVariablesEvaluation non-const
this will obviously update state
2022-12-16 15:06:03 +01:00
Arne Morten Kvarving
10a671e88c MultisegmentWell: make updateWellState non-const
this will obviously update state
2022-12-16 15:05:06 +01:00
Bård Skaflestad
4827de23ce
Merge pull request #4322 from bska/conditional-infostep-output
Don't Output INFOSTEP File by Default
2022-12-15 17:46:03 +01:00
Bård Skaflestad
63654a73fc Don't Output INFOSTEP File by Default
This commit introduces a new helper class,

    ConvergenceOutputConfiguration

which parses comma separated option strings into a runtime
configuration object for whether to output additional convergence
information and, if so, what information to output.

Supported option string values are

  * "none"       -- Dont want any additional convergence output.

  * "steps"      -- Want additional convergence output pertaining to the
                    converged solution at the end of each timestep.

  * "iterations" -- Want additional convergence output pertaining to each
                    non-linar ieration in each timestep.

Option value "none" overrides all other options.  In other words, if the
user requests "none", then there will be no additional convergence
output, even if there are other options in the option string.

We add a new option, ExtraConvergenceOutput (command line option
--extra-convergence-output), which takes a string argument expected
to be a comma separated combination of these options.  The default
value is "none".  Finally, make the INFOSTEP file output conditional
on the user supplying "steps" as an argument to the new option.
2022-12-15 13:02:09 +01:00
Bård Skaflestad
81650a620d
Merge pull request #4320 from blattms/honor-multz--with-pinch
Honor MULTZ- when determining TRANSZ over pinched cells (pinch all)
2022-12-14 15:04:22 +01:00
Markus Blatt
f6ae49fec4 Honor MULTZ- when determining TRANSZ over pinched cells (pinch all).
Previously, a barrier between cells in Z-direction was only honored if
it was done using MULTZ. We disregarded MULTZ- completely when
calculating the TRANZ over pinched cells.

Now we also take into account MULTZ-.
2022-12-14 15:00:41 +01:00
Bård Skaflestad
44aaaf319e
Merge pull request #4321 from akva2/use_common_exceptions
use exception classes from opm-common
2022-12-14 09:48:12 +01:00
Markus Blatt
aa9fd77860
Merge pull request #4324 from akva2/liveoilpvt_encapsulate
add missing include after upstream header removal
2022-12-13 18:22:43 +01:00
Arne Morten Kvarving
ee8b4cac02 add missing include after upstream header removal 2022-12-13 15:38:10 +01:00
Atgeirr Flø Rasmussen
69b2df4e88
Merge pull request #4319 from atgeirr/silence-struct-class-warnings
Silence warnings due to forward declaring structs as classes.
2022-12-13 12:57:30 +01:00
Arne Morten Kvarving
f17a90170d use exception classes from opm-common 2022-12-13 12:56:13 +01:00
Atgeirr Flø Rasmussen
6531fbc146 Silence warnings due to forward declaring structs as classes. 2022-12-13 11:57:33 +01:00
Bård Skaflestad
bb649097b9
Merge pull request #4317 from akva2/adjust_enums
Adjust to upstream enum entry changes
2022-12-12 23:57:09 +01:00
Arne Morten Kvarving
dc7cddab64 adjust to upstream GasPvtApproach enum changes 2022-12-12 19:17:51 +01:00
Arne Morten Kvarving
9a9dfd2e1d adjust to upstream OilPvtApproach enum changes 2022-12-12 19:09:37 +01:00
Arne Morten Kvarving
e390ce5149 adjust to upstream WaterPvtApproach enum changes 2022-12-12 19:00:19 +01:00
Bård Skaflestad
1de821ca62
Merge pull request #4314 from akva2/epsscalingpoints_encapsulate
add missing include
2022-12-12 09:43:36 +01:00
Arne Morten Kvarving
e4233daf72 add missing include
after upstream header removals
2022-12-10 01:58:32 +01:00
Bård Skaflestad
ba54effb6a
Merge pull request #4313 from akva2/epsgridprops_encapsulate
RelpermDiagnostics: add more forwards
2022-12-09 23:11:35 +01:00
Arne Morten Kvarving
134cb205e2 RelpermDiagnostics: add more forwards
adjust to upstream header-in-header removals
2022-12-09 22:17:09 +01:00
Bård Skaflestad
4e3eea0447
Merge pull request #4312 from bska/capture-convergence-history
Capture Timestep's Non-Linear Convergence History
2022-12-09 16:36:30 +01:00
Bård Skaflestad
3c63a7aa6d Capture Timestep's Non-Linear Convergence History
This enables outputting a formatted record of the limiting MB and
CNV quantities as time and non-linear iterations progress.  This, in
turn, is intended for diagnostic and analysis purposes and will not
be output unless specifically requested.

In particular, add a new type,

    ConvergenceReport::ReservoirConvergenceMetric

which captures the convergence metric type (MB or CNV) along with
the associate phase and numerical value of the convergence metric.
We add a vector of these convergence metric objects as a new data
member of the ConvergenceReport.

Finally, foreshadowing the intended use case, also store the report
time in the ConvergenceReport object.
2022-12-09 16:22:36 +01:00
Bård Skaflestad
8997437ede
Merge pull request #4305 from bska/activate-welpi-regression-tests
Enable Regression Testing of WELPI and CPI/CTFAC
2022-12-09 16:19:48 +01:00
Bård Skaflestad
364b87afc9 Enable Regression Testing of WELPI and CPI/CTFAC
Forgotten at the time we developed the WELPI support.
2022-12-09 13:09:02 +01:00
Bård Skaflestad
f42beb24f4
Merge pull request #4303 from akva2/remove_material
adjust jenkins script and buildsystem
2022-12-09 12:48:35 +01:00
Bård Skaflestad
de84ea65a7
Merge pull request #4251 from GitPaean/fixing_singluar_frictional_pressure_drop
rewrting frictionPressureLoss fucntion for better jacobian matrix
2022-12-09 11:04:33 +01:00
Bård Skaflestad
1221936791
Merge pull request #4311 from bska/publish-component-names
Capture Component Names in Independent Datastructure
2022-12-09 10:13:42 +01:00
Bård Skaflestad
149ae34dd2 Capture Component Names in Independent Datastructure
This is in preparation of enabling separate convergence output
for diagnostic purposes.
2022-12-09 09:41:22 +01:00
Markus Blatt
b4acdedefd
Merge pull request #4310 from totto82/groupinfo_stage2
BUGFIX we now use group_info in stage 2 and need to make sure its communicated
2022-12-08 09:01:01 +01:00
Tor Harald Sandve
60d0116080 we now use group_info in stage 2 and need to make sure its communicated 2022-12-07 15:43:25 +01:00
Atgeirr Flø Rasmussen
e6a8686c77
Merge pull request #4309 from atgeirr/write-global-cell-index-to-damaris
Write global cell index to damaris
2022-12-07 15:38:40 +01:00
Atgeirr Flø Rasmussen
130f552dac Must set location for every variable. 2022-12-07 13:37:38 +01:00
Atgeirr Flø Rasmussen
18f6f5e4e3 Push index map to Damaris for output ordering. 2022-12-07 13:05:44 +01:00
Kai Bao
1f077c35d2 rewrting frictionPressureLoss fucntion for better jacobian matrix
it removes some singularity warning from UMFPack.
2022-12-07 11:43:12 +01:00
Bård Skaflestad
58cf299171
Merge pull request #4306 from akva2/msw_assemble
add: MultisegmentWellAssemble
2022-12-05 15:45:23 +01:00
Arne Morten Kvarving
b102103e26 changed: make MultisegmentWellEquations data members private
use a friend declaration for MultisegmentWellEquationAccess to
give the assembler access to the matrices/vectors.
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
2d154b50bb added: MultisegmentWellEquations::residual()
this returns a const reference to the residual vector.
use this in MultisegmentWellEval
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
4545761374 added: MultisegmentWellEquationAccess
this is a proxy class for accessing the equation system
in MultisegmentWellAssemble.
use the new class for vector/matrix access in MultisegmentWellAssemble.
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
6011a42246 added: MultisegmentWellAssemble::assemblePerforationEq
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
b1d1e47e28 added: MultisegmentWellAssemble::assembleInflowTerm
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
d5bbccde65 added: MultisegmentWellAssemble::assembleOutflowTerm
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
517dd49771 added: MultisegmentWellAssemble::assembleAccumulationTerm
extracted from MultisegmentWell::assembleWellEqWithoutIteration
2022-12-05 11:07:09 +01:00