Commit Graph
100 Commits
Author SHA1 Message Date
Markus Blatt c6bb607cdc Merge pull request #5029 from aritorto/cartCoord
CartesianCoordinateLevel added for ALUGrid
2023-11-28 17:18:12 +01:00
Markus Blatt 31ab752ae6 [fix] Parallel try-catch also added for updateWellControls for groups.
Not sure whether this is needed, but better safe than sorry.
2023-11-25 21:04:13 +01:00
Markus Blatt 50c25ead52 [bugfix] Expect singular matrices and terminate updateWellControls.
We are experiencing singular matrices when solving mulisegment wells
sometimes. In that case (here during
BlackoilModelEbos::assembleReservoir <-
BlackoilModelEbos::initialLinerization <-
BlackoilModelEbos:::nonlinearIterationNewton ) an exception is thrown
when updating the controls of a well.

The problem here is that this exception only happens on one
process. That one goes to the catch block in
NonLinearSolverEbos::step, marks the nonlinear solve as failed and
cuts the time step. The others move to the collective communication
below. Somehow and somewhen all end up in a non-matching collective
communication with different data types and we get an MPI Error that
the message was truncated.

Now all processes will throw, terminate the nonlinear solver and cut
the timestep as it should be.
2023-11-25 19:32:11 +01:00
Markus Blatt fa10546c0a Do not warn about OutputDir when combined with LoadStep.
Both can safely be used together.
2023-11-24 13:28:20 +01:00
Markus Blatt 24408862ff Merge pull request #5008 from aritorto/compressedLevelZero
compressedLevelZero used to read relative permeability
2023-11-24 13:21:23 +01:00
Markus Blatt 6a866ac8d2 [fix] Do parallel sums with int instead of bool.
Using bool here is at least frowned upon. To be honest, I have no idea
what happens underneath here if we pass a bool. In contrast to other
pod types we do not associate it with a builtin type of MPI (not even
sure what to use). Hence we probably create a custom type for sending
and receiving. That should work. But I have no idea what will be used
for summation.

BTW: I am debugging a case that previously crashed and now suddenly
works and this seems to be the only relevant change I made in the
meantime.
2023-11-22 16:50:57 +01:00
Markus Blatt de50fe5702 Fixed typo: control model -> control mode. 2023-11-20 08:29:24 +01:00
Markus Blatt ae97b00d53 Merge pull request #4987 from blattms/update-man-page
Update manpage for release
2023-11-14 10:01:30 +01:00
Markus Blatt a70df8cf0a Merge pull request #4995 from aritorto/removeSmallNonCart
Lgrs neighbors considered in removeSmallNonCart
2023-11-14 10:00:34 +01:00
Markus Blatt f3b9a146a9 Merge pull request #4994 from aritorto/connectOnce
Check connect only once, with elemIdx instead of cart
2023-11-14 09:59:33 +01:00
Markus Blatt f1d75297d3 Merge pull request #4990 from akva2/janitoring
Avoid some dead stores
2023-11-12 21:49:00 +01:00
Markus Blatt e39a60d676 Merge pull request #4983 from aritorto/eclTransLookUp
Lookup NTG on Leaf Grid View
2023-11-12 09:59:46 +01:00
Markus Blatt 386d3723ab Update manpage for release 2023-11-09 15:34:20 +01:00
Markus Blatt 0cc839314e log problem if asked to continue with nonconverged nonlinear solver.
The user has explicitly asked for this behavior using
--solver-continue-on-convergence-failure=true in this rare case.
2023-11-08 17:16:21 +01:00
Markus Blatt 5531c63df6 Merge pull request #4977 from atgeirr/use-problem-not-error
Add and use OPM_DEFLOG_PROBLEM macro.
2023-11-08 16:40:23 +01:00
Markus Blatt 11ac7375a9 Merge pull request #4971 from totto82/compdat_d
Remove warning for unsupported D factor in COMPDAT
2023-11-06 10:06:09 +01:00
Markus Blatt 4a61d5cf71 Merge pull request #4951 from aritorto/hideFieldPropLookUp
Assign Field Property to all leaf grid view elements
2023-11-02 12:24:27 +01:00
Markus Blatt 70fcb864a0 Merge pull request #4942 from aritorto/updateLookUpData
Update LookUpData
2023-10-25 11:00:52 +02:00
Markus Blatt c01cc5b58c Merge pull request #4939 from aritorto/removeCartToGlobal
cartToGlobal removed
2023-10-24 07:40:49 +02:00
Markus Blatt 965e6f4b63 Merge pull request #4933 from aritorto/lookupElemIndices
LookUp origin cell indices in eclgenericproblem
2023-10-19 15:38:34 +02:00
Markus Blatt e9bb5d0539 Merge pull request #4582 from Tongdongq/rocsparse-separate-wells
RocsparseSolver separate wells
2023-10-13 15:33:03 +02:00
Markus Blatt 74c1ec3de3 Merge pull request #4925 from blattms/bump-version
Bump version to 2024.04
2023-10-13 09:20:35 +02:00
Markus Blatt 50815209a0 Fixed spelling: achive -> achieved 2023-10-12 22:01:12 +02:00
Markus Blatt 6b951df148 Bump version to 2024.04 2023-10-11 21:27:29 +02:00
Markus Blatt 62dd660b2d Merge pull request #4916 from daavid00/fixVtkOnReportStep
Fix to write vtks on report steps
2023-10-11 11:59:18 +02:00
Markus Blatt 9f79c7d4eb Merge pull request #4921 from bska/dont-apply-multiplier-twice
Don't Apply Regional Multipliers Twice to EDITNNC Connections
2023-10-10 16:35:20 +02:00
Markus Blatt 3f436501d2 Merge pull request #4883 from jychang48/jychang48-edits
Removed OpenCL dependencies for rocsparse backend & error exception handling
2023-10-06 20:50:22 +02:00
Markus Blatt 3c7a4635ea Merge pull request #4402 from bska/follow-udq-context-api-change
Chase API Change for UDQ Evaluation
2023-10-06 15:35:29 +02:00
Markus Blatt f2d3d2d144 Merge pull request #4903 from blattms/fix-debian-bookworm-rocblas
[cmake] Always demand rocblas to be there when activating rocsparse
2023-10-06 11:41:58 +02:00
Markus Blatt 8b8164308a Merge pull request #4909 from blattms/fix-parallel-stop-network-update-at-max
[bugfix] Fix stopping network update in parallel at max steps.
2023-10-04 14:12:54 +02:00
Markus Blatt 6a705b9b8e Fixed spelling. 2023-10-04 13:24:01 +02:00
Markus Blatt 9279ce19e8 [bugfix] Fixes stopping network update in parallel at max steps.
We did only break in the loop for rank 0 and not the other ones. Hence
all other processes kept iterating beyond the maximum number of
allowed iterations. This lead to hard to find crashes because of
non-matching MPI communication.
2023-10-04 12:56:44 +02:00
Markus Blatt 3c45522bab Merge pull request #4901 from hnil/fix_nonpinch_z
No connection without pinch and layers inbetween.
2023-10-04 12:26:24 +02:00
Markus Blatt fa04666b8a Merge pull request #4888 from blattms/fix-compute-temperature-for-distwells
Fixes computation of temperature for distributed wells.
2023-10-02 17:22:09 +02:00
Markus Blatt 5a2a97d21c [cmake] Always demand rocblas to be there when activating rocsparse
This was somehow only done for hip version >=5.3, but Debian bookworm
is missing rocblas and using hipcc 2.3.0 and therefore compilation failed there.
2023-10-02 17:14:43 +02:00
Markus Blatt 9dac9de6a1 Merge pull request #4900 from hnil/fix_nnz_thermal
fixed error using NNC with thermal
2023-10-02 11:08:24 +02:00
Markus Blatt c657cfecc8 Merge pull request #4868 from bska/support-truncated-region-names
Match Region Sets by Unique Prefix
2023-09-28 21:04:06 +02:00
Markus Blatt 326d63cb8e Merge pull request #4898 from aritorto/centroidRankZero
Supporting centroids lookup for rank 0 and LGRs
2023-09-28 17:49:07 +02:00
Markus Blatt 2f0e167d2c Merge pull request #4894 from akva2/janitoring
fixed: quell unused variable warning without OpenCL
2023-09-26 14:25:46 +02:00
Markus Blatt 2721b9fa2d Fixes computation of temperature for distributed wells.
Previously, we did a global summation of the size of the
well_perf_data vector to determine the number of perforations
of a well. In the case of distributed wells this will try to access
more perforations than stored for the well in well_perf_data and hence
might use data from cells that actually are not perforated by this
cell. Note that for well not distributed the code worked as the
summation has no effect.

This commit changes this to only query peforations on the
local process. This should be enough to fix this problem.

In addition it removes the computation of connpos which is never used.
2023-09-22 18:56:27 +02:00
Markus Blatt f6d0a3961c Merge pull request #4822 from bska/multregt-item-5
Apply Regional Multipliers to Initial Transmissibilities
2023-09-15 12:22:32 +02:00
Markus Blatt b209f6af77 Merge pull request #4778 from aritorto/cellCentroid
Refactor element centroids lookup
2023-09-15 10:02:15 +02:00
Markus Blatt 81c9594f5d Include name of missing OPM restart file in error.
Otherwise it is hard to tell for the (newbie?) user what went wrong.
2023-09-14 16:10:42 +02:00
Markus Blatt eafed43dad Merge pull request #4757 from aritorto/lookupdata-generalgrid
Refactor lookup of cartesian index and element data
2023-08-23 22:04:25 +02:00
Markus Blatt cc359a25cc Merge pull request #4802 from bska/remove-unused-return
Remove Unused Return Value
2023-08-17 14:33:06 +02:00
Markus Blatt b4e7a4fc85 Merge pull request #4770 from akva2/eclproblem_cleanup_timestepping
EclProblem: cleanup time stepping related members
2023-08-17 11:19:55 +02:00
Markus Blatt 7419a6ff65 Merge pull request #4801 from bska/skip-needless-work
Inspect Array Element to Decide When to Apply TRAN? Keyword
2023-08-17 11:09:50 +02:00
Markus Blatt b666494025 Merge pull request #4800 from akva2/janitoring
SimulatorFullyImplicitBlackoilEbos: remove unused member
2023-08-16 12:38:39 +02:00
Markus Blatt e20bb85aa7 Merge pull request #4777 from akva2/blackoilmodelebos_leftover
remove accidentially left-over member
2023-08-07 08:58:17 +02:00
Markus Blatt 81c6eac6a7 Merge pull request #4766 from akva2/eclsolution_containers
Add containers for polymer and MICP solution components
2023-08-02 09:33:54 +02:00
Markus Blatt 2429a8ad1b Merge pull request #4756 from blattms/rename-time-step-breakdown
Rename LinearTimeSteppingBreakdown to TimeSteppingBreakdown.
2023-07-26 09:49:28 +02:00
Markus Blatt f20716eaf3 Rename LinearTimeSteppingBreakdown to TimeSteppingBreakdown. 2023-07-25 15:10:07 +02:00
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 313e9540c5 Added missing include of cstdint needed by GCC-13 2023-07-24 10:59:19 +02:00
Markus Blatt 941e4230c1 Merge pull request #4750 from blattms/prevent-mpi-abort
Do a graceful exit instead of MPI_Abort for expected exceptions.
2023-07-20 18:52:47 +02:00
Markus Blatt 118dfdf041 Move MPI process check to *-cpp file. 2023-07-19 14:05:19 +02:00
Markus Blatt 859e00254e [bugfix] Make sure MPI_FInalize is called before the return in main.
A correct MPI program should do that.

As MPI_Finalize is part of the destructor of MainObject we need to
make sure that it's destructor is called before the return statement.
We do that manually  by resetting the unique_ptr that we now use to
store the MainObject,
2023-07-19 13:44:12 +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 5b41c3eca8 Merge pull request #4747 from bska/extract-well-group-initialization
Extract Well and Group Initialization
2023-07-13 10:17:01 +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
Markus Blatt ff6a54ce7c Improve error message for input grid without any active cells.
We now give a different (more explanatory) error if the input grid has
no active cells at all. Often this points to a user error and having a
more precise error message might help here.
2023-06-30 17:32:58 +02:00
Markus Blatt 8c428caa80 Merge pull request #4726 from blattms/increase-supported-equil-regions
Increase supported equil regions from 255 to 65525
2023-06-29 10:13:21 +02:00
Markus Blatt 6496e871ed Improved messages about equilibration regions. 2023-06-29 09:08:18 +02:00
Markus Blatt c2d1236cff Added warning about memory/performance for large number of equil regions. 2023-06-28 15:52:34 +02:00
Markus Blatt a6809c84f3 Store equil region idx as unsigned short (allows 65535 regions). 2023-06-28 15:52:34 +02:00
Markus Blatt 78b629767f [refactor] Use limits and OPM_THROW when checking max equil regions.
that will ease changing the limits and the error will appear in all logs.
2023-06-28 15:52:34 +02:00
Markus Blatt a1936e1996 Added more supported PINCH test cases to regression testing.
Namely T2A_NOPINCH, and T2A_GAP supported with #665
2023-06-27 15:56: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
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
Markus Blatt 290e7146ad Added working PINCH test cases as regressions.
This hopefully will prevent breaking things when further work for
PINCH is done.

The following tests are still known to fail with current master:
T2A_NOPINCH T2A_GAP T2A_NOGAP T4A1_NOGAP T4A1_GAP
2023-05-31 12:23:00 +02:00
Markus Blatt 851e4b5731 Merge pull request #4665 from akva2/avoid_unused_ndebug
avoid unused variable warning with NDEBUG
2023-05-24 15:35:10 +02:00
Markus Blatt 73d79b4010 Merge pull request #4603 from blattms/mark-nogap-as-supported
Mark PINCH option 2 NOGAP as fully supported.
2023-05-17 08:20:11 +02:00
Markus Blatt 5a2b25ec31 Merge pull request #4609 from akva2/fix_wtest_for_newly_created_well
WellGroupHelpers: make sure we have a GuideRate value or potential for well
2023-04-27 09:17:14 +02:00
Markus Blatt 2189706822 Merge pull request #4608 from atgeirr/allow-FIELD-parent
Minor adjustment avoids exception when used with FIELD group.
2023-04-26 14:14:24 +02:00
Markus Blatt 3d144ce4d7 Mark PINCH option 2 NOGAP as fully supported.
All the test cases that were provided to me are actually already
supported by current master.
2023-04-24 12:47:13 +02:00
Markus Blatt 4bf2dd7269 Merge pull request #4586 from bska/refactor-aquct-co2store-impl
Split CO2 Store Handling Out to Helper Functions
2023-04-20 13:19:26 +02:00
Markus Blatt 20e2058333 Merge pull request #4578 from blattms/support-editnncr
Support EDITNNCR keyword
2023-04-19 11:34:04 +02:00
Markus Blatt 1ef30ec85e Mark keyword EDITNNCR as supported 2023-04-12 14:24:47 +02:00
Markus Blatt 20af10e2c6 Apply EDITNNCR information to tranmissibilities. 2023-04-12 14:24:47 +02:00
Markus Blatt c693f0f50c Refactor applyEditNncToGridTrans for better reuse with EDINNCR. 2023-04-12 14:24:47 +02:00
Markus Blatt 8142788b58 Merge pull request #4406 from Tongdongq/rocsparse
Add rocsparseSolver
2023-04-12 12:07:58 +02:00
Markus Blatt f9d2dccb02 Merge pull request #4564 from hnil/flexiblegmres
- added flexiblegmres
2023-04-03 13:14:42 +02:00
Markus Blatt 734eb76910 Merge pull request #4573 from hakonhagland/glift_grad
Fix bug when recalculating gaslift gradient
2023-04-03 11:20:15 +02:00
Markus Blatt ad160d3799 Merge pull request #4569 from hnil/correct_spelling
-- corrected spelling
2023-03-29 14:00:26 +02:00
Markus Blatt b4b8e7aff1 Merge pull request #4558 from Tongdongq/move-cpu-decomposition
Only do CPU decomposition if needed, when using GPU
2023-03-29 12:54:38 +02:00
Markus Blatt 3b164b041f Merge pull request #4530 from bska/output-code-tidying
Adjust Whitespace in Output Module
2023-03-16 17:10:32 +01:00
Markus Blatt 5c1d964478 Merge pull request #4512 from akva2/rateconverter_compile_unit
RateConverter: introduce a compile unit
2023-03-15 20:54:26 +01:00
Markus Blatt 9cabbede2c [cleanup] Fix that phaseUsage might be used uninitialzed in test.
We need to make sure that all pods are initialzed when using
the default constructor. Fixes
```
RateConverter.hpp:83:50: warning: ‘phaseUsage’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   83 |                 , attr_      (rmap_, Attributes())
      |                                                  ^
```
2023-03-10 14:06:46 +01:00
Markus Blatt af9e446454 Merge pull request #4517 from akva2/fix_parallel_hdf5
fixed: wrong order of OpmInit and use of the USE_MPI option
2023-03-08 17:39:13 +01:00
Markus Blatt bf23b0a4e4 Merge pull request #4473 from blattms/fix-parallel-with-serial-hdf5
[fix] For parallel build with serial hdf5 issue warning and skip hdf5.
2023-02-23 10:09:30 +01:00
Markus Blatt 970e448590 [fix] For parallel build with serial hdf5 issue warning and skip hdf5.
We rely on parallel hdf5 for a parallel build of OPM flow. Otherwise
compilation will fail. Hence if this is a parallel build but only a
serial hdf5 library is found, we now issue an informative warning and
deactivate hdf5/parallel restart.

Closes OPM/opm-common#3405
2023-02-22 10:43:25 +01:00
Markus Blatt 7449a32d2d Merge pull request #4427 from atgeirr/do-not-recreate-matrix-ilu0
Avoid copying the matrix in the ILU preconditioner.
2023-02-14 16:11:14 +01:00
Markus Blatt 8b7c87ba52 Merge pull request #4434 from akva2/parwelmorepriv
ParallelWellinfo: make some more templates private
2023-02-09 16:51:32 +01:00
Markus Blatt d2f55c59fc Merge pull request #4359 from totto82/fixGPMAINT2
Fix GPMAINT for groups without control
2023-01-23 14:12:00 +01:00
Markus Blatt 0d2a6d27ee Merge pull request #4404 from OPMUSER/CPR
Remove CPR from UnsupportedFlowKeywords.cpp
2023-01-20 09:00:42 +01:00
Markus Blatt b961c93b15 Make sure the regression tests still use cpr_trueimpes. 2023-01-19 15:54:46 +01:00
Markus Blatt a69c8436ad Use cprw as default CPR variant if CPR is requested. 2023-01-19 15:54:33 +01:00
Markus Blatt a1642d8c52 Merge pull request #4401 from akva2/pavgcalculatorcollection_hpp_include
eclgenericwriter.cc: add missing PAvgCalculatorCollection.hpp include
2023-01-19 14:05:37 +01:00
Markus Blatt b67388e6f0 Use cpr if requested in RUNSPEC section of data file.
Can be overwritten using command line parameter `--linear-solver=...`.
2023-01-18 22:02:35 +01:00
Markus Blatt 212de0735c Merge pull request #4394 from akva2/well_enums
Clean up Well.hpp includes
2023-01-18 14:13:35 +01:00