Commit Graph

435 Commits

Author SHA1 Message Date
Tor Harald Sandve
5854b8a7a1 Support gas dissolution in water (Rsw)
- adapt to interface change in waterPvt()
- add gas + water + disgasw simulator

Note
- MSW is not supported
- EQUIL initialization is not supported
2022-12-21 13:13:52 +01:00
Bård Skaflestad
8dcb37570b Rename Convergence Output Option
This commit renames the previously introduced command line option
ExtraConvergenceOutput (--extra-convergence-output) into the more
descriptive

    OutputExtraConvergenceInfo (--output-extra-convergence-info)

Suggested by: [at]OPMUSER
2022-12-20 12:32:14 +01:00
Bård Skaflestad
858ca8fa49 Output Non-Linear Convergence to Separate File if Requested
This commit enables outputting non-linear convergence metrics, i.e.,
the MB and CNV values, per phase, for each non-linear iteration in
each timestep.  If the user passes the option value "iterations" to
the --extra-convergence-output command line option, this commit will
create a new output file, CASE.INFOITER, that holds

    * report step
    * time step within that report step
    * elapsed time
    * MB and CNV values per phase
    * well convergence status

for each non-linear iteration.

We use an asynchronous file writing procedure and confer ownership
of the report step's unprocessed convergence reports to this
procedure just before the end of

    SimulatorFullyImplicitBlackoilEbos::runStep()

At that point, the convergence reports are about to go out of scope.
The asynchronous protocol uses a dedicated queue of output requests,
class ConvergenceReportQueue, into which the producer-i.e., member
function runStep()-inserts new convergence reports and from which
the output thread, ConvergenceOutputThread::writeASynchronous(),
retrieves those requests before writing the file data.
2022-12-20 10:14:13 +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
Arne Morten Kvarving
f17a90170d use exception classes from opm-common 2022-12-13 12:56:13 +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
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
Tor Harald Sandve
bdb82c2f3d Rename PrimaryVarsMeaning{Water/Gas/Pressure/Brine} to {Water/Gas/Pressure/Brine}Meaning 2022-11-25 13:03:26 +01:00
Tor Harald Sandve
22d27bdf5f Adapt to change of enum to enum class for primary variable meaning 2022-11-25 10:53:48 +01:00
Tor Harald Sandve
a190668800 adapt to rename of waterSaturationIdx -> waterSwitchIdx 2022-11-25 10:53:48 +01:00
Tor Harald Sandve
0c6d29a352 adapt to primary variable refactoring 2022-11-25 10:53:48 +01:00
Arne Morten Kvarving
c7016854d9 changed: make the deck an implementation detail in Opm::readDeck 2022-11-24 13:00:38 +01:00
Arne Morten Kvarving
f4f8c033d8 EclGenericVanguard: remove deck member 2022-11-24 12:10:52 +01:00
Atgeirr Flø Rasmussen
2192b3a86c Unhide NewtonMaxIterations. 2022-10-31 17:13:09 +01:00
Markus Blatt
2fdc9e6cc6 Remove references of flow i usage string of Newton method properties.
This makes them constent to NewtonMaxIterations
2022-10-28 16:41:54 +02:00
Markus Blatt
2c8a63fc3d Use consistent NewtonMaxIteration usage string.
Needed to prevent an exception. Apparently both the value and usage
sting must match each time we register a parameter no matter
whether the template parameters differs or not.
2022-10-28 16:41:54 +02:00
OPMUSER
bbd9d8bf58 Rename option FlowNewtonMaxIterations to NewtonMaxIterations.
Now it is consistent with other options (e.g. NewtonMinIterations
2022-10-28 16:41:54 +02:00
Arne Morten Kvarving
96ec2b0e96 comment out unused private variable (causes a warning) 2022-10-26 10:59:43 +02:00
Tor Harald Sandve
d25dc4e795 check controls in getWellConvergence 2022-10-18 10:55:17 +02:00
Atgeirr Flø Rasmussen
a2c5ec1127
Merge pull request #4037 from totto82/scaleEnergy
scale energy residual to have the same relative order as the mass balance residuals
2022-10-17 23:33:28 +02:00
Atgeirr Flø Rasmussen
c6b3e4c462 Hide all vtk parameters. 2022-10-14 10:46:45 +02:00
Arne Morten Kvarving
72dfc63167 BlackoilModelEbos: use elements range generator 2022-10-13 23:01:37 +02:00
Arne Morten Kvarving
ecc36f6ce8 fix cmake handling
- use imported target for linking
- use separate damaris cmake script
- handle HAVE_DAMARIS config variable in the usual way

fixing issues when user does not provide an outputDir via a command_line

avoid adding damaris's command lines when we dont have damaris
2022-10-13 12:23:06 +02:00
Elyes Ahmed
0a7f7e94b7 fixing unused variable err 2022-10-13 12:23:06 +02:00
Atgeirr Flø Rasmussen
c1b3c5e973 Rename option to EnableDamarisOutputCollective. 2022-10-13 12:23:06 +02:00
Atgeirr Flø Rasmussen
926c213628 Make ensureOutputDirExists() callable outside readDeck.cpp, and use it.
This is necessary because when using Damaris we must have the output dir ready
when we initialize Damaris. In the existing code, this was ensured only
from the setupLogging() call.
2022-10-13 12:23:06 +02:00
Atgeirr Flø Rasmussen
fae71df32d Fix initialization and stopping Damaris.
With this, flow no longer hangs on exit.
2022-10-13 12:23:06 +02:00
Joshua Bowden
fa7af3540c Changes needed to add Damaris functionality. The current state is that we output the pressure field and we use both HDF5 and parallel HDF5.
Damaris initialization is added after InitMpi but before starting the simulation. Damaris will invoke a separate core for writing in
parallel and leave the rest of cores for the simulator. The main changes are in main where start_damaris and then in eclwriterm where
we use damaris to output the PRESSURE. To test Damaris one can use --enable-damaris-output=true and to use parallel HDF5 one can use
--enable-async-damaris-output=true (false is the default choice)
2022-10-13 12:23:06 +02:00
Markus Blatt
fcc3690832 Added missing include of config.h in cpp files. 2022-10-12 15:28:38 +02:00
Atgeirr Flø Rasmussen
a7a5a7a98d Make the Python interface use the TpfaLinearizer. 2022-10-04 11:44:35 +02:00
Atgeirr Flø Rasmussen
d7ba860bf1 Rename so that flow_blackoil_tpfa becomes flow_blackoil. 2022-10-03 14:14:15 +02:00
Atgeirr Flø Rasmussen
dacb77425a
Merge pull request #4017 from atgeirr/make-fast-assembly-default
Make the TPFA linearizer default for 1/2/3 phase blackoil.
2022-10-03 12:01:22 +02:00
Atgeirr Flø Rasmussen
f6033702c9 Ensure DIFFUSE is supported.
This is only instantiated for two-phase gas/oil and for 3-phase blackoil.
Runtime safeguards have been added to avoid the mistake of running with
a simulator combination that silently ignores DIFFUSE.
2022-09-30 15:28:58 +02:00
OPMUSER
7ab39dd5da Update NonlinearSolverEbos.hpp
This is one of several PRs that will rename some command line parameters for greater consistency, as agreed with Atgeirr in #4096

Here we rename FlowNewtonMinIterations to NewtonMinIterations
2022-09-30 19:52:18 +08:00
Atgeirr Flø Rasmussen
f1762a1abd Make the TPFA linearizer default for 3 phase blackoil. 2022-09-30 09:21:34 +02:00
Kai Bao
087eb56a64 changing max_strict_iter_ to min_strict_cnv_iter_
to make the naming reflect the actual usage more clearly.
2022-09-07 14:28:41 +02:00
Bård Skaflestad
d5401eeb43
Merge pull request #4044 from atgeirr/fix-restart-initialization
Ensure intensive quantities are calculated at start of simulation.
2022-09-01 17:10:32 +02:00
Atgeirr Flø Rasmussen
92538b0612 Ensure intensive quantities are calculated at start of simulation.
Moving it ensures it is also done for restart simulation runs. Without
this, the well model will actually initialize the IQs, but only for
owned cells, not overlap/ghost cells, which caused parallel failure.
2022-09-01 14:00:42 +02:00
Tor Harald Sandve
3e27c23222 scale energy residual to have the same relative order as the mass balance residuals 2022-08-29 15:05:01 +02:00
Arne Morten Kvarving
3b0b5b4708 changed: remove unneeded includes for ParameterGroup 2022-08-26 09:21:46 +02:00
Arne Morten Kvarving
371b2592f5 changed: put ParallelIstlInformation in separate compile unit 2022-08-18 09:15:28 +02:00
Atgeirr Flø Rasmussen
cabe64cc58 Further reduction of modifications. 2022-08-09 11:11:36 +02:00
Atgeirr Flø Rasmussen
5fba14373b Modification to reduce PR to minimal changes. 2022-08-09 11:11:36 +02:00
Atgeirr Flø Rasmussen
66a1c46413 Remove unused code branch. 2022-08-09 11:09:48 +02:00
hnil
8f5e0940fe restructuring to be able to call without local indices 2022-08-09 11:09:48 +02:00
hnil
d53b6ad9fa added spesialisation for using simple property updating 2022-08-09 11:09:48 +02:00
hnil
95308d7d02 ensure intensive quantities is updated 2022-08-09 11:09:48 +02:00
Elyes Ahmed
5c2b60bcd0 rebasing 2022-07-28 20:40:34 +02:00
Arne Morten Kvarving
eeeeb283c5 remove unnecessary includes 2022-07-26 19:03:39 +02:00
Tor Harald Sandve
cf1abb086f remove msw(ms) from regulariztion parameter 2022-06-29 15:39:51 +02:00