Commit Graph

189 Commits

Author SHA1 Message Date
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
Arne Morten Kvarving
db85303a3e added: write out RPTSOL configured FIPs to PRT file on simulation start
add a method in EclWriter to enable this.
this is called the first time a call is made to WriteOutput,
as that happens after initial conditions have been applied which
is required to get the proper output.

this also fixes a long-standing issue where the initial FIP state was
taken after the first time step.
2023-11-16 08:28:57 +01:00
Arne Morten Kvarving
1e41df3bca added: pass reportStep to FIP output functions
use this to decide whether or not to use the RPTSOL configuration
(reportStep == 0) or to read flags from RPTSCHED (reportStep > 0)
2023-11-16 08:12:55 +01:00
josh bowden
1e2d9360d7 Move Damaris functionality to it's own class.
Step one for moving Damaris calls out of EclWriter class and into its own DamarisWriter class;
EclProblem now calls both writeOutput methods and passes in the data::Solution object;

Add fix for first writeOutput() call not having PRESSURE data available;

data::Solution is now passed by rvalue ref into eclWriter::writeOutput();

guard added to prevent inclusion of damariswriter.hh
2023-09-19 21:20:08 +02:00
hnil
6ac3fe3794 added output writing for geomechanical module 2023-08-17 11:44:47 +02:00
Arne Morten Kvarving
dc1d71da54 eclwriter.hh: cleanup headers 2023-08-02 12:35:39 +02:00
Bård Skaflestad
7f89276fe8 Hook New WBPn Calculation Up to Well Model
This commit activates the support for calculating WBPn summary
result values per well in parallel.  To affect the calculation we
add two new data members in BlackoilWellModelGeneric:

  - conn_idx_map_:
    Maps well's connection index (0..getConnections().size() - 1) to
    connections on current rank.  Its local() connections are
    negative 1 (-1) if the connection is not on current rank, and a
    non-negative value otherwise.  The global() function maps well
    connections on current rank to global connection ID for each
    well.  Effectively the reverse of local().  Finally, the open()
    function maps well connections on current rank to open/flowing
    connections on current rank.  Negative 1 if connection is not
    flowing.

  - wbpCalculationService:
    Parallel collection of WBPn calculation objects that knows how
    to exchange source and result information between all ranks in a
    communicator.  Also handles distributed wells.

We furthermore need a way to compute connection-level fluid mixture
density values.  For the standard well class we add a way to access
the StandardWellConnection's 'perf_densities_' values.  However,
since these are defined for open/flowing connections only, this
means we're not able to fully meet the requirements of the

  WELL/ALL

WPAVE depth correction procedure for standard wells.  The
multi-segmented well type, on the other hand, uses the fluid mixture
density in the associated well segment and is therefore well defined
for ALL connections.  OPEN well connections are supported for both
well types.
2023-07-10 13:42:46 +02:00
Bård Skaflestad
9d75915e4b Prepare for Revised Implementation of WBPn
This initial commit changes the API of the CollectDataToIORank
class' handling of WBPn values from collecting a set cell pressures
into communicating pre-computed WBPn values through the new
WellBlockAveragePressures container class.  This is in preparation
of moving the WBPn calculation to the simulator side for greater
parallelism.  For now we do not compute any of the actual WBPn
values.  That will be the subject of follow-up commits.

While here, also split a number of very long lines for readability.
2023-06-09 13:25:43 +02:00
Arne Morten Kvarving
5f28175603 fix whitespace at eol
and some brace placements
2023-03-24 14:56:23 +01:00
hnil
bacb4e04d6 fixed for review 2023-03-23 21:26:06 +01:00
hnil
9450fc0596 -- removed element context from the update fib loop
-- separated out put in different functions
2023-03-23 13:44:46 +01:00
hnil
dedda84a2b fixed review comments 2023-03-22 19:17:22 +01:00
hnil
e1c4a73c43 -- removed double evaluation of processLocalData
-- separated fluid in place work from other cell based data
-- added some timing macros for better preformance overview
2023-03-22 11:55:37 +01:00
Arne Morten Kvarving
153c4f486a fixed: output of thresholdpressure to restart file in parallel 2023-03-02 13:08:37 +01:00
Atgeirr Flø Rasmussen
b5678bf5cb
Merge pull request #4495 from atgeirr/add_timing_block
Add timing block
2023-02-28 15:00:17 +01:00
Arne Morten Kvarving
a237b2222f fixed: serialize the initial fip values 2023-02-27 13:57:05 +01:00
hnil
2037e862b4 More timings 2023-02-15 11:05:45 +01:00
David Landa Marban
5600d7d9e5 FLOWS and FLORES support 2023-02-02 11:19:49 +01:00
Arne Morten Kvarving
da73c6da71 add missing RestartValue.hpp include 2023-01-16 13:51:20 +01:00
Atgeirr Flø Rasmussen
18f6f5e4e3 Push index map to Damaris for output ordering. 2022-12-07 13:05:44 +01:00
Atgeirr Flø Rasmussen
69f2ede363
Merge pull request #4165 from atgeirr/avoid-useless-call
Do not call assignToSolution() and throw away the result.
2022-10-14 10:31:26 +02:00
Arne Morten Kvarving
da2c68ee08 eclwriter: use elements range generator 2022-10-13 23:00:57 +02:00
Atgeirr Flø Rasmussen
de12a990aa Do not call assignToSolution() and throw away the result. 2022-10-13 21:42:53 +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
Atgeirr Flø Rasmussen
b7bc8437e7 Minor fixes and formatting issues addressed. 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
2c86a61b70 Remove extra whitespace. 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
Elyes Ahmed
5c2b60bcd0 rebasing 2022-07-28 20:40:34 +02:00
Arne Morten Kvarving
c793aff5d1 changed: rename externalSetupTime
external is (or will be) implied
2022-06-24 15:06:13 +02:00
Paul Egberts
797fdc278b water-gas ratio input and output plus simulator for salt precipitation and water evaporation 2022-03-01 20:52:43 +01:00
Bård Skaflestad
eb55456565 Don't Capture Local Flux Data Unless Needed
This is a potentially expensive operation and so we should not run
it unless such values are actually needed for output purposes (e.g.,
inter-region flow summary vectors).
2022-02-25 11:31:57 +01:00
Bård Skaflestad
840a29f8ef Communicate Inter-Region Flows to I/O Rank
This commit ensures that compute inter-region flow rates on all
ranks and collect those on the I/O rank using CollectDataToIORank.

We add a trivial EclInterRegFlowMap data member to the communication
object.  This data member only knows the pertinent FIP region array
names, but uses existing read/write support to collect contributions
from all ranks into this "global" object.  We then pass this global
object on to the summary evaluation routine.
2022-02-18 14:53:43 +01:00
Bård Skaflestad
ecec83349b Capture Bulk Connection Fluxes to Accumlate Inter-Region Flows
This commit adds a new grid traversal that computes fluxes-presently
surface level component fluxes-for all bulk connections on the
current MPI rank.  We aggregate those fluxes, if applicable, into a
container for inter-region flows, but this support could be extended
to capturing the full 3D vector flow rates for restart output if
needed.
2022-02-18 10:29:56 +01:00
Tor Harald Sandve
ad799b3e80 Add more performance summary output
This commit ads: NEWTON, MLINEARS, MSUMLINS, MSUMNEWT, NLINEARS, NLINSMIN, NLINSMAX
2022-02-03 15:03:37 +01:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00
Bård Skaflestad
89dbf807b2
Merge pull request #2584 from goncalvesmachadoc/fixReport
fixReportPRT
2021-12-01 21:39:31 +01:00
goncalvesmachadoc
8b001e2e75 moveLogCall&ProtectField 2021-12-01 16:13:53 +01:00
Joakim Hove
e9c45f4ca8 Load tracer solution from restart file 2021-11-30 11:23:36 +01:00
Elyes Ahmed
f53c597f90 Replacing use of MPI_COMM_WORLD with a variable communicator. 2021-10-05 13:07:52 +02:00
Joakim Hove
dcd5fc76a0 Add WellTestState argument when calling IO routines 2021-10-04 21:30:27 +02:00
Joakim Hove
ac3748229a Collect WellTestState on IORank 2021-10-02 20:28:44 +02:00
Markus Blatt
3cda8a2fdb Added missing parallel try-catch clause for updatePrimaryIntensities.
As Problem::updatePrimaryIntensities might throw we need to do this
to prevent dealocks in parallel run in case problem occurs.
2021-09-24 09:25:44 +02:00
Cintia Goncalves Machado
21e3e4dc81 use Saturation to compute vol 2021-08-25 18:24:05 +02:00
Torbjørn Skille
4e9a19cf7c Extra command line argument write-lodsmry for creating LODSMRY file
- default is false
 - file LODSRMY optimized for fast loading of selected vectors
2021-08-12 20:16:07 +02:00
Arne Morten Kvarving
059140f2ee split out typetag independent code from BlackoilWellModel 2021-06-07 12:04:06 +02:00
Bård Skaflestad
d974f6bd03
Merge pull request #3333 from totto82/fixTEMPrestart
Pass the temperature to the restart machinary if enableTemperature is true
2021-06-02 13:09:41 +02:00
Tor Harald Sandve
3422e18583 Optional passing of the temperature vector to the restart machinary
If enableTemperature and --enable-opm-restart-file=true the temperature is passed to or read from the restart file
2021-06-02 11:53:57 +02:00
Arne Morten Kvarving
c2211b532f eclwriter: fix regression in parallel
order of constructing and obtaining global transmissibilities
was off. replace constructor argument with a setter so it can be
set at the appropriate time.
2021-06-01 09:08:38 +02:00