Markus Blatt
943d84c836
Don't write out of bounds (fixes fallout from PR #4750 )
...
While we never use the data receive, we should still not write beyond
arrays as this may create problems.
2023-07-24 16:04:15 +02:00
Markus Blatt
118dfdf041
Move MPI process check to *-cpp file.
2023-07-19 14:05:19 +02:00
Markus Blatt
7551229e77
Do a graceful exit instead of MPI_Abort for expected exceptions.
...
Instead of unconditionally issuing MPI_Abort if we encounter a fatal
exception, we try to test whether all processes have experienced this
exception and if this is the case just terminate nomally with a exit
code that signals an error. We still use MPI_Abort if not all
processes get an exception as this is the only way to make sure that
the program aborts.
This approach also works around issues in some MPI implementations
that might not correctly return the error.
Multiple messages like this are gone now:
```
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
[smaug.dr-blatt.de:129359] 1 more process has sent help message help-mpi-api.txt / mpi-abort
[smaug.dr-blatt.de:129359] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
```
Bu we still see something like this:
```
--------------------------------------------------------------------------
Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
Process name: [[35057,1],0]
Exit code: 1
--------------------------------------------------------------------------
```
2023-07-19 13:44:12 +02:00
Markus Blatt
fc9b1cccce
Improve error message when time step is cut too often/much.
...
Changes
```
Program threw an exception: [/home/mblatt/src/dune/opm/opm-simulators/opm/simulators/timestepping/AdaptiveTimeSteppingEbos.hpp:586] Solver failed to converge after cutting timestep 11 times.
```
to
```
Simulation aborted: Solver failed to converge after cutting timestep 11 times.
```
Which seems more user friendly.
2023-07-12 16:18:29 +02:00
Arne Morten Kvarving
8e7de83218
BlackoilModelEbos: put Nldd solver in separate class
2023-07-05 13:40:13 +02:00
Arne Morten Kvarving
241c1d3279
BlackoilModelEbos: use value in localAccumulatedReports
...
cheap to copy and aids refactoring
2023-07-05 10:26:14 +02:00
Arne Morten Kvarving
184c6128cd
BlackoilModelEbos: add acccessor for component names
2023-07-05 10:26:14 +02:00
Arne Morten Kvarving
0c8446eed3
BlackoilModelEbos: add acccessor for model parameters
2023-07-05 10:26:14 +02:00
Arne Morten Kvarving
6f726049ce
BlackoilModelEbos: add accessor to linear solve setup time
...
to allow for external usage
2023-07-05 09:38:08 +02:00
Arne Morten Kvarving
cee8dc4c6e
BlackoilModelEbos: make getMaxCoeff public
...
to make it possible to call externally
2023-07-05 09:38:08 +02:00
Arne Morten Kvarving
8fc2b83948
BlackoilModelEbos: make initialLinearization public
...
to make it possible to call externally
2023-07-05 09:38:08 +02:00
Arne Morten Kvarving
4d35ec26de
isNumericalAquiferCell: put in separate struct for easier reuse
2023-07-04 14:56:10 +02:00
Arne Morten Kvarving
c6cd74270b
BlackoilModelEbos: enumerate solver approach for NLDD
...
adds command line validation and allows us to remove an assert on
user provided data
2023-07-03 15:51:07 +02:00
Arne Morten Kvarving
8eb5e173c3
BlackoilModelEbos: put Gauss-Seidel NLDD solve in separate method
...
increases readability of nonlinearIterationNldd
2023-07-03 14:53:12 +02:00
Arne Morten Kvarving
faa4bb25d7
BlackoilModelEbos: put jacobi NLDD solve in separate method
...
increases readability of nonlinearIterationNldd
2023-07-03 14:53:12 +02:00
Arne Morten Kvarving
cf6697b630
BlackoilModelEbos: make domain ordering measure configurable
2023-07-03 12:24:41 +02:00
Arne Morten Kvarving
e17b696a7e
BlackoilModelEbos: put selection of domain order in separate method
...
to increase readability of nonlinearIterationNldd code
2023-07-03 12:24:41 +02:00
Arne Morten Kvarving
c7f9d2d357
put initial linearization in separate method
...
to share code between newton and nldd
2023-07-03 10:51:10 +02:00
Arne Morten Kvarving
3656196684
put calculation of max coefficient in separate method
...
to reduce code duplication
2023-07-03 10:51:10 +02:00
Bård Skaflestad
8c6a92356f
Merge pull request #4621 from vkip/use_mb_from_tuning
...
Use mass balance limit (XXXMBE) from TUNING with --enable-tuning=true
2023-06-30 13:04:49 +02:00
Arne Morten Kvarving
64ce4a206e
Merge pull request #4729 from akva2/partitioncells_reorg
...
PartitionCells: move all related code to compile unit
2023-06-30 13:02:20 +02:00
Arne Morten Kvarving
b95b342517
partitionCells: drop indent for namespace
2023-06-30 12:14:47 +02:00
Arne Morten Kvarving
e8f04eec68
changed: move all partitionCells code to partitionCells.cpp
2023-06-30 12:14:11 +02:00
Arne Morten Kvarving
35bb329022
put BlackoilModelEbos::ComponentName in separate header
...
more tidy and potentially easier to reuse
2023-06-30 11:18:27 +02:00
Arne Morten Kvarving
4201d94241
BlackoilModelEbos: remove unused includes
2023-06-30 09:53:59 +02:00
Arne Morten Kvarving
034f20c37e
BlackoilModelEbos: include tuple
2023-06-30 09:53:50 +02:00
Arne Morten Kvarving
e008c76a80
BlackoilModelEbos: output error message using OpmLog
2023-06-30 08:57:14 +02:00
Arne Morten Kvarving
e88c44eaaf
BlackoilModelEbos: remove unused member function
2023-06-30 08:57:14 +02:00
Arne Morten Kvarving
0a670f3694
BlackoilModelEbos: use constexpr where appropriate
2023-06-30 08:57:14 +02:00
Arne Morten Kvarving
5874377937
BlackoilModelEbos: prefer using
2023-06-30 08:57:14 +02:00
Arne Morten Kvarving
b29f24c9be
BlackoilModelEbos: use Parallel::Communication type alias
2023-06-30 08:57:14 +02:00
Vegard Kippe
a80f44a3be
Updating variable name in SimulatorFullyImplicitBlackoilEbos.hpp and adding tests
2023-06-29 15:20:38 +02:00
Vegard Kippe
65f73f5462
Chaning to new TUNING semantics (opm-common pr3522)
2023-06-29 15:13:10 +02:00
Vegard Kippe
029e3c8616
Removing some whitespace
2023-06-29 15:13:10 +02:00
Vegard Kippe
462ec3153d
Use mass balance limit from TUNING
2023-06-29 15:12:51 +02:00
Bård Skaflestad
9de535098f
Merge pull request #3764 from atgeirr/aspin
...
Add nonlinear solver based on domain decomposition method
2023-06-28 15:49:56 +02:00
Arne Morten Kvarving
adfe80cba0
avoid dead stores
2023-06-27 13:40:54 +02:00
Atgeirr Flø Rasmussen
98b7f4d986
Fix header order and remove dead code.
2023-06-26 17:37:13 +02:00
Atgeirr Flø Rasmussen
424ee2174d
Make sure micp and energy fixes are not discarded.
...
Also do not change getting intensive quantities in convergence
checks.
2023-06-26 11:18:57 +02:00
Atgeirr Flø Rasmussen
15c1e38533
Silence unused variable/parameter warnings.
2023-06-23 16:24:18 +02:00
Atgeirr Flø Rasmussen
cbfe25d0f0
Add NLDD nonlinear solver option.
2023-06-23 16:24:18 +02:00
Vegard Kippe
d6d4b94b25
Parameterized iteration limits in network solver
2023-06-16 12:15:06 +02:00
Atgeirr Flø Rasmussen
81bda54c67
Merge pull request #4709 from blattms/omp-allow-oversubscribe
...
OpenMP: allow oversubscribing to prevent only 1 thread on some hardware
2023-06-14 13:58:12 +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
Markus Blatt
ae1f319c10
[bugfix] Honor command line --threads-per-process
...
While we reported that we used the number of threads that were passed
on the command line, we never really used it for OpenMP but always
sticked to two unless environment variable OMP_NUM_THREADS was set.
Note that because the ThreadManager in opm-models would always use the
command line option and hence the linearizer would use that number of
threads.
Please note that the only use of OpenMP in opm-common (volume
calculation in EclipseGrid) is not effected by this as it happens
before we set the number of OpenMP threads.
2023-06-14 12:02:25 +02:00
Atgeirr Flø Rasmussen
7f3635145b
Make solver object a member of SimulatorFullyImplicitBlackoilEbos.
2023-06-14 10:01:53 +02:00
Atgeirr Flø Rasmussen
712a7c8131
Add utilities that will be needed for NLDD solvers.
...
Includes:
- SubDomain struct,
- simple partitioning utilities for testing,
- some matrix and vector manipulation functions,
- tests for the above.
2023-06-09 10:08:29 +02:00
Kjetil Olsen Lye
c478e46c8d
Setting CUDA device for MPI runs.
2023-05-31 21:47:46 +02:00
Bård Skaflestad
3549d85d83
Merge pull request #4568 from totto82/2psolvent
...
Add gaswater solvent
2023-05-30 11:36:16 +02:00
Kai Bao
23c0126095
Merge pull request #4640 from steink/ms_pressure_eq_derivatives
...
Update of multisegment well pressure equations - testing
2023-05-26 22:57:23 +02:00
Bård Skaflestad
3c643dba13
Don't Provide Deck Accessors in FlowMainEbos
...
Following commits f4f8c033d
and c7016854d
(PR #4286 ), the "vanguard"
no longer maintains an internal Deck data member. Don't pretend
that it does by providing member functions to access that data
member. If someone tries to actually call these member functions
then they will get an unfriendly diagnostic message and a build
failure.
2023-05-26 17:12:30 +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
Stein Krogstad
3beef758e4
Merge branch 'OPM:master' into ms_pressure_eq_derivatives
2023-05-24 13:35:11 +02:00
Stein Krogstad
5c0b76f337
Revert to original segment density computations
...
(keep average version as option)
2023-05-23 12:44:06 +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
Bård Skaflestad
4dba837b39
Merge pull request #4606 from akva2/opmrst_more_checks
...
Serialized restart: Add some more checks
2023-04-27 13:32:19 +02:00
Arne Morten Kvarving
c61639251f
added: check command line parameters when doing a .OPMRST restart
...
compare command line used to create .OPMRST differ
to current run and warn if they differ. safety net to avoid
misunderstandings
2023-04-27 12:32:00 +02:00
Arne Morten Kvarving
1003bf7735
added: explicitly check that number of processes matches .OPMRST file
...
while the grid hash check would pick this up as well, it's better
to emit an explicit error message
2023-04-25 15:07:58 +02:00
Arne Morten Kvarving
163ea6f0b0
fixed: missed a .SAVE -> .OPMRST
2023-04-25 15:07:31 +02:00
Atgeirr Flø Rasmussen
ca62d96714
Add helpful message about termination due to unsupported keywords.
2023-04-25 13:02:45 +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
Atgeirr Flø Rasmussen
04d2b8f39d
Make KeywordValidation::validateDeck() more flexible.
...
Adding a bool argument 'treat_critical_as_noncritical' to possibly
reduce terminating errors to warnings.
2023-04-25 10:44:59 +02:00
Atgeirr Flø Rasmussen
77d151e0b5
Refactor get_error_report() for more flexibility.
2023-04-25 10:33:20 +02:00
Tor Harald Sandve
2a20ad8283
pick currect version of flow for gas-water-vapwat case
2023-04-17 15:25:59 +02:00
Arne Morten Kvarving
f2983ac6af
minimum dune version required is now 2.7
2023-04-12 09:41:23 +02:00
Tor Harald Sandve
4dd0798e5b
add gas + water + energy to flow
2023-03-31 08:47:19 +02:00
Kai Bao
c8d914caad
using double for regularization_factor_wells_
2023-03-23 16:47:03 +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
Atgeirr Flø Rasmussen
c9ba0afea3
Silence warnings: struct/class, missing override.
2023-03-03 10:12:46 +01:00
Bård Skaflestad
dcf2a1304b
Merge pull request #4499 from akva2/adaptivetimesteppingebos_more_compile_unit
...
AdaptiveTimeSteppingEbos: move more code to compile unit
2023-03-02 13:38:07 +01:00
Arne Morten Kvarving
ebd53ee72d
move StepReport into ConvergenceReport.hpp
...
there is no reason for this to be typetag dependent
2023-03-02 12:37:13 +01:00
Bård Skaflestad
00da723b59
Merge pull request #4497 from akva2/nonlinearsolverebos_compile_unit
...
NonlinearsolverEbos: add compile unit
2023-03-01 16:14:22 +01:00
Arne Morten Kvarving
cbaaca4f14
NonlinearSolverEbos: put stabilizeNonlinearUpdate in compile unit
2023-03-01 10:48:17 +01:00
Arne Morten Kvarving
4aeb980f4f
changed: make NonlinearSolverEbos::RelaxType a namespace scoped enum class
...
name it NonlinearRelaxType
2023-03-01 10:46:51 +01:00
Arne Morten Kvarving
64c4694bab
NonlinearSolverEbos: put detectOscillations in compile unit
2023-03-01 10:46:51 +01: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
Bård Skaflestad
6636b2f331
Merge pull request #4494 from akva2/flowmainebos_compile_unit
...
FlowMainEbos: add a compile unit
2023-02-28 20:13:30 +01:00
Arne Morten Kvarving
b238bba53b
FlowMainEbos: move ExtraConvergenceOutput code to compile unit
2023-02-28 16:02:08 +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
143139c6ee
FlowMainEbos: move parallel file merge code to separate compile unit
...
avoid some headers in simulator objects
2023-02-28 14:05:51 +01:00
Arne Morten Kvarving
fe011bbd41
FlowMainEbos: prefer std::make_unique
2023-02-28 13:58:52 +01:00
Arne Morten Kvarving
5fd5753ed7
fixed: mixed-up input and output paths for restart serialization
2023-02-27 12:17:00 +01:00
Arne Morten Kvarving
070f3677f7
fixed: output OPMRST file to output dir
...
will look in both output dir and input file dir on load
2023-02-22 14:26:23 +01:00
Arne Morten Kvarving
c50fcc5818
added: store a hash of the grid cell mapping on each process
...
this is a simple sanity check to make sure the restarted run
has the same grid partitioning as the original run.
2023-02-16 14:49:38 +01:00
Arne Morten Kvarving
8c3400f562
added: parallel support to HDF5File / HDF5Serializer
2023-02-16 14:49:38 +01:00
Arne Morten Kvarving
a60b7e50ca
added: ability to specify .OPMRST file to be used
...
useful, in particular for testing.
2023-02-16 13:56:29 +01:00
Arne Morten Kvarving
72133deadc
added: support for loading serialized state from .OPMRST file
2023-02-16 13:48:36 +01:00
Arne Morten Kvarving
ed170026c1
added: support for saving serialized state to OPMRST file
...
uses a HDF5 container
2023-02-16 13:46:36 +01:00
Arne Morten Kvarving
524c1320bb
add serialization support to SimulatorFullyImplicitBlackoilEbos
...
this is the top of the hierarchy so a test would basically
be a full restart test
2023-02-16 12:38:02 +01:00
hnil
fd98d8ea27
added timing blocks to most important parts
2023-02-15 09:41:37 +01:00
Arne Morten Kvarving
c33240f5c1
changed: introduce EclGenericVanguard::SimulationModelParams
...
this is a struct that holds the information transferred
from the simulator prior to vanguard instantation.
this way we can avoid the static members for state,
which causes issues for serialization (in particular, it makes
it impossible to compare two instances like we do in tests).
2023-02-13 18:52:38 +01:00
Arne Morten Kvarving
05f92a1133
EclGenericVanguard: rename setParams to defineSimulationModel
...
setParams is a rather generic method name, be more specific
2023-02-13 17:49:59 +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