Commit Graph

196 Commits

Author SHA1 Message Date
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
Lisa Julia Nebel
e4080a3fe4 Add 'prepareResultOutputDirectory' function in Opm namespace that removes possible old simulation output files from the specified output directory.
This function is called during 'setupLogging' before the actual logging starts.
2024-02-08 16:08:50 +01:00
Arne Morten Kvarving
b09c70213b FlowMainEbos: rename to FlowMain 2024-02-06 10:42:23 +01:00
Arne Morten Kvarving
de9c3ddfda added: test for outputdir 2023-12-19 15:21:58 +01:00
Arne Morten Kvarving
c95cd5b147 added: bool param to flag that Main.hpp should not initialize/finalize MPI
needed for tests
2023-12-19 15:12:44 +01:00
Atgeirr Flø Rasmussen
093b346426 Avoid modifying outputDir, leave empty if defaulted.
Handle this case for Damaris, which needs to be told the output dir
before this is available from the IOConfig.
2023-12-19 15:12:44 +01:00
Atgeirr Flø Rasmussen
1dbd971710
Merge pull request #4889 from jcbowden/damariswriter-for-sim-fields-v5
Geometric mesh data added for Damaris in-situ visualisation
2023-12-15 10:18:00 +01:00
Josh Bowden
54d6db6f35 Update 1 for code after code review of PR 4889 2023-12-13 18:13:55 +01:00
Markus Blatt
4f619f8f38 Also print information about parallel run to PRT file.
Up to now this information is only output to standard out.
To help with debugging and replicating (e.g. in case of crashes)
without saved standard putput, we now also print the imformation about
MPI processes and OMP threads to the PRT file.
2023-12-13 16:42:02 +01:00
josh bowden
8898db41d7 Reorganised headers, removing redundant ones;
Tidy up of whitespace.
2023-09-25 22:16:43 +02:00
josh bowden
c7c4bffa7c Refactored the Damaris command line functionality so that commandline arguments are accessed where they are needed in the DamarisKeywords() method 2023-09-24 22:23:31 +02:00
josh bowden
bb38c57b1b Update for support of Damaris mesh based in situ processing
Moved damaris command line parameter accessors to Main.cpp and fixed support for both Python and Paraview Python scripts, as they both cannot be present in the same simulation (seems to be an initialization conflict or double initialization)
2023-09-23 22:24:11 +02:00
josh bowden
8095eb0c48 Geometric mesh data added for in-situ visualisation
added access to DUNE mesh geometry and passing through data to Damaris;
Updated command line so users can specifiy Python or Paraview script names and other paramaters that control Damaris
- Simulation name
- Number of dedicated cores or dedicated nodes
- Shared memory region size
- switch to turn off HDF5 output.
- Damaris logging level
2023-09-22 23:23:29 +02:00
Josh Bowden
6e4f3bd37e added changes as discussed in PR 4827 2023-09-01 18:28:03 +02:00
Josh Bowden
84d3530fd9 fix for deadlock at end of simulation when run with Damaris and test for whether Damaris can be run as Damaris requires at least 2 MPI ranks (one for simulation and the other as to run Damaris i/o) 2023-08-31 15:51:34 +02:00
Arne Morten Kvarving
adfe80cba0 avoid dead stores 2023-06-27 13:40:54 +02:00
Markus Blatt
2906d7157d Allow oversubscribing OpenMP threads.
There is a strange interaction when using MPI and OpenMP on some
hardware/MPI implementations. I a serial run omp_get_num_procs() would
return the number of processors but when started under mpirun it would
always return 1.

With this we now allow users to use any amount of threads.
2023-06-14 12:03:56 +02:00
Tor Harald Sandve
7cf3f69cf9 Add gaswater solvent
Fix some places that assumed 3p + solvent
2023-05-26 16:24:38 +02:00
Tor Harald Sandve
1592ef8bd2 solvent + foam simulator 2023-05-24 16:03:09 +02:00
Tor Harald Sandve
ee39117771 Add energy + precsalt simulator 2023-05-12 10:49:17 +02:00
Bård Skaflestad
bf0b7ed948
Merge pull request #4592 from totto82/fix_vapwat_gw
pick correct version of flow for gas-water-vapwat case
2023-05-03 11:14:22 +02:00
Atgeirr Flø Rasmussen
9ca6034388 Remove EclStrictParsing, replace with ParsingStrictness.
The new parameter takes the "high", "normal" (default), or "low" string.
Also implemented behaviour.
2023-04-25 12:03:13 +02:00
Tor Harald Sandve
2a20ad8283 pick currect version of flow for gas-water-vapwat case 2023-04-17 15:25:59 +02:00
Tor Harald Sandve
4dd0798e5b add gas + water + energy to flow 2023-03-31 08:47:19 +02:00
Arne Morten Kvarving
c92195c96a changed: pass the version info as parameters in Banners.cpp/Main.cpp
we want to avoid these symbols in the library
2023-03-01 09:11:18 +01:00
Arne Morten Kvarving
e5dc2996e2 changed: move banner printing to separate compile unit 2023-02-01 22:54:55 +01:00
Arne Morten Kvarving
385f526d77 fixed: regression from 82d2146c90
missing PRT header
2023-01-31 15:18:25 +01:00
Arne Morten Kvarving
715e0e1c82 fix Damaris setup in Main 2023-01-18 15:37:41 +01:00
Arne Morten Kvarving
e89a68b2ff Main.hpp: forward WellTestState 2023-01-18 14:01:43 +01:00
Arne Morten Kvarving
2b756a8202 Main: forward Action::State 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
7991af9c66 Main.hpp: forward UDQState 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
4aab577275 Main: move code for setting up Damaris to compile unit 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
560b0e5cbb Main: move code for setting up Vanguard to compile unit 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
c901570c9b Main.hpp: remove unnecessary Python.hpp include 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
82d2146c90 Main: move code for reading deck to compile unit 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
1729c1a414 Main: move some code to separate compile unit 2023-01-18 12:26:10 +01:00
Arne Morten Kvarving
fef009f792 Main: remove unused method and associated filesystem include 2023-01-18 12:22:50 +01:00
Arne Morten Kvarving
ffcfc5e2ea Main.hpp: remove unnecessary ErrorGuard.hpp include 2023-01-17 13:30:39 +01:00
Arne Morten Kvarving
240c039f53 readDeck: make the ErrorGuard an internal detail 2023-01-17 13:30:39 +01:00
Arne Morten Kvarving
8179935217 Main.hpp: remove unnecessary ParseContext.hpp include 2023-01-17 09:36:35 +01:00
Arne Morten Kvarving
56df430bd6 readDeck: make the ParseContext an internal detail 2023-01-17 09:36:31 +01:00
Bård Skaflestad
6eb97c0165
Merge pull request #4388 from akva2/parser_hpp_cleanup
Main.hpp: remove unneccesary Parser.hpp include
2023-01-17 09:20:07 +01:00
Arne Morten Kvarving
978d130f30 Main.hpp: remove unneccesary Parser.hpp include 2023-01-17 07:56:37 +01:00
Arne Morten Kvarving
d6b7e1c253 Main.hpp: remove unnecessary ArrayDimChecker.hpp include 2023-01-17 07:36:02 +01:00
Arne Morten Kvarving
60b23e8bb1 move ParseContext configuration to readDeck
this way we do not need to include InputErrorAction in Main.hpp
2023-01-16 22:17:39 +01:00
Arne Morten Kvarving
fd94ca7031 add missing InputErrorAction.hpp includes 2023-01-16 22:17:39 +01:00
Arne Morten Kvarving
3a01e89585 adjust to InputErrorAction change to enum class 2023-01-16 22:17:39 +01:00
Arne Morten Kvarving
12a72b4d6e add missing include 2023-01-09 12:49:29 +01:00
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
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
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
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
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
Atgeirr Flø Rasmussen
f1762a1abd Make the TPFA linearizer default for 3 phase blackoil. 2022-09-30 09:21:34 +02:00
Arne Morten Kvarving
a4d254b749 changed: introduce EclGenericVanguard::setParams
this is used transferring ownership of setup structures to the
simulator. drop all the flowEbosXXX set deck methods and use the
generic vanguard. also means various structs that were only passed
in the blackoil simulator are now passed in all simulators.
2022-06-24 15:06:13 +02:00
Arne Morten Kvarving
00c374be5c changed: remove support for internal summaryconfig handling in simulators 2022-06-24 15:06:13 +02:00
Arne Morten Kvarving
4510f40b6d changed: remove support for internal schedule handling in simulators 2022-06-24 15:06:13 +02:00
Arne Morten Kvarving
1a35c5ac47 changed: remove support for internal eclstate handling in simulators 2022-06-24 15:06:13 +02:00
Arne Morten Kvarving
371c8058bc changed: remove support for internal deck handling in simulators 2022-06-24 15:06:13 +02:00
Paul Egberts
a255613452
Merge branch 'master' into vapoilwat 2022-05-11 11:55:54 +02:00
Markus Blatt
c66fb8a93d Added support for water-only and water-only + thermal to flow.
Also run the onephase tests with flow now.
2022-04-26 17:07:09 +02:00
Paul Egberts
c2fa5fc5a8 adding three-phase simulator including water evaporation and saltpreciopitation 2022-04-11 21:56:44 +02:00
Tor Harald Sandve
0c9bb3990e
Merge pull request #3830 from plgbrts/vapwat
Adding explicit input specification of water-gas ratio (RVW) and RVW output plus simulator gas-water system with salt precipitation and water evaporation for
2022-04-07 09:03:26 +02:00
Bård Skaflestad
dfdfbbd7d7 Don't Process Corner-Point Data If No Valid Cell Geometry
If no cell has a valid corner-point geometry, typically caused by
using GDFILE to read non-finite data such as all ZCORN = -1.0E+20,
then we must not attempt to generate a grid structure.  If we do, we
will typically just fail somewhere deep down in the corner-point
processing code and generate a diagnostic message that's hard to
decipher.

With this commit we instead output a diagnostic message of the form

    Failed to create valid EclipseState object.
    Exception caught: No active cell in input grid has valid/finite cell geometry
    Please check geometry keywords, especially if grid is imported through GDFILE

This may not be a lot better than the original diagnostic

    Processing grid
    flow: ${ROOT}/opm-grid/opm/grid/cpgpreprocess/preprocess.c:768: is_lefthanded: Assertion `! searching' failed.
    Aborted (core dumped)

but does at least suggest that the grid data may be faulty.
2022-03-25 14:35:55 +01: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
Markus Blatt
710d648eda Prevent multiple *.?.dbg/prt files in production crashed parallel runs.
There was a fallout when skipping concating these files to the
default ones (PR #1708). We should also have deactivated creating
these files at all. As a result these files appeared in all parallel
runs that were aborted.

This change now prevents creating and logging to these files in
parallel in a default
run (--enable-parallel-logging-fallout-warning=false).

Developers can still activate logging and concating to see whether
everything is only logged on the io process by passing
--enable-parallel-logging-fallout-warning=true.

Closes 3725
2022-01-27 17:21:29 +01:00
Tor Harald Sandve
bf77bbbc10
Merge pull request #3759 from plgbrts/saltp
Enable salt precipitation/dissolution
2022-01-18 12:02:32 +01:00
Arne Morten Kvarving
a82ad816c7 add fallback return (control reaches end of non-void function) 2022-01-17 13:59:47 +01:00
Paul Egberts
98c8e691c3 Allow for brine and precipitation/dissolution of salt 2022-01-14 11:46:40 +01:00
Bård Skaflestad
3317f10c4a
Merge pull request #3729 from goncalvesmachadoc/gaswater_brine
allow for gas-water + brine
2022-01-12 12:31:34 +01:00
goncalvesmachadoc
300f536a19 add exit_failure for water+brine case 2022-01-11 14:23:37 +01:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00
Atgeirr Flø Rasmussen
eec32ec581 Replace DEMONSTRATE_RUN_WITH_NONWORLD_COMM macro with runtime bool.
This allows for testing the simulator with the artifically split communicator,
in order to verify that there is no inappropriate usage of the world communicator.
2021-12-10 17:42:44 +01:00
goncalvesmachadoc
7f320102c3 allow for gas-water + brine 2021-12-08 14:35:22 +01:00
Tor Harald Sandve
4f75d1ab8d Add gasoil + energy simulator
Useful when combining CO2STORE + THERMAL

This PR also fixes an issue with missing phases in computation of output temperature
2021-12-07 09:18:38 +01:00
Arne Morten Kvarving
dc136746df cosmetics: do not indent for namespace
also avoid an unnecessary close/open for namespace Opm
2021-11-10 14:24:51 +01:00
Arne Morten Kvarving
7f7fbab2f4 remove FLOW_BLACKOIL_ONLY hack from Main.hpp
now that the python simulator uses runStatic, the
runDynamic template is never instanced, and thus there
are no linker issues.
2021-11-10 10:07:11 +01:00
Arne Morten Kvarving
06bd25575f use std::filesystem directly 2021-11-01 12:31:58 +01:00
Bård Skaflestad
f212c946c7 Separate MICP Case Out to Helper Function
In keeping with the other simulation cases.
2021-10-29 16:15:44 +02:00
Arne Morten Kvarving
a056aa858a changed: special case no input deck given handling
we do not want to invoke MPI_Abort in this case
2021-10-29 12:16:01 +02:00
Tor Harald Sandve
70c9d2e237
Merge pull request #3590 from daavid00/micp-2021-10
micp
2021-10-14 22:28:28 +02:00
daavid00
48b175904a first version of micp implementation in flow 2021-10-14 17:44:57 +02:00
Joakim Hove
4b85fc74ae
Merge pull request #3594 from joakim-hove/wtest-rst
load WellTestState from restart file
2021-10-13 11:27:41 +02:00
Arne Morten Kvarving
8eb63409cb fixed: double call to MPI_Finalize
I missed this one when moving the MPI handling into RAII style
2021-10-13 09:35:16 +02:00
Joakim Hove
2c68f12769 Load WellTestState from restart file 2021-10-13 08:46:48 +02:00
Joakim Hove
5db60aba5e Set external Action::State object in the vanguard 2021-10-12 10:41:29 +02:00
Bård Skaflestad
61ac76fe90 Make ARGV[ARGC] Into a Nullpointer
This is strictly speaking required by POSIX.
2021-10-09 00:17:32 +02:00
Bård Skaflestad
ad74de2e1a Use Algorithm to Locate '--version' Option 2021-10-09 00:17:32 +02:00
Bård Skaflestad
fca167acfd Split Individual Cases Out to Helper Functions
This commit moves the bodies of the various 'dynamicDispatch_<>()'
cases out to separate helper functions.  Not only does this reduce
the number of nested conditionals, it also helps reasoning about
each case in isolation and aids future maintenance.
2021-10-09 00:17:32 +02:00
Bård Skaflestad
3455dbdac9 Main.hpp: Adjust Whitespace
In preparation of refactoring 'dispatchDynamic_<>()'
2021-10-09 00:17:32 +02:00
Elyes Ahmed
65f0e4e7f0 Replacing calling Communication with a header 2021-10-05 13:07:52 +02:00
Elyes Ahmed
f53c597f90 Replacing use of MPI_COMM_WORLD with a variable communicator. 2021-10-05 13:07:52 +02:00
Håkon Hægland
4c5245196b Changed calling convention for shared pointers.
Expect non-reference type shared pointers arguments instead of references
to shared pointer. This will make it clear to the caller that the called
function is making a copy of the pointer for its own use and not trying
to modify the original pointer of the caller.
2021-09-22 23:49:13 +02:00