Commit Graph

1231 Commits

Author SHA1 Message Date
Bård Skaflestad
e6dff88eb7 Temporarily Limit Block-Jacobi Partitioner to OpenCL Only
The block-Jacobi partitioner (commit e360c00b7) uses grid interfaces
that are only available in CpGrid and this blocks introducing other
grid managers such as ALUGrid.  Since the partitioner was only added
for OpenCL, guard special purposes accesses with HAVE_OPENCL.

This is a temporary measure and we will venture to restore the
partitioner later, although possibly restricted to CpGrid only.
2022-06-08 16:14:39 +02:00
Bård Skaflestad
7537d7ab95 Split Grid Distribution Out to Helper Functions
Mostly to reduce the number of nested scopes in doLoadBalance_() and
to make the data flow a little easier to track for human readers.
While here, also use down-casts to pointer instead of references.
Doing so replaces try/catch blocks with simpler if/else blocks.

Reimplement face transmissibility calculation/extraction loop in
terms of helper functions elements() and intersections().
2022-06-08 16:14:39 +02:00
Bård Skaflestad
4e5745bf4a Make cellPartition() Return Reference To Const
We don't need to copy this array on every call.
2022-06-08 16:11:54 +02:00
Atgeirr Flø Rasmussen
1aed863956 Re-add grid view argument to doLoadBalance_(). 2022-06-08 15:33:32 +02:00
Bård Skaflestad
af94be5023 Use Consistent Grid Views for Transmissibility Calculation
There was an implied assumption that the "gridv" parameter would
coincide with "grid_->leafGridView()".  Make this assumption
explicit.
2022-06-01 14:34:28 +02:00
Kai Bao
26a9582ece
Merge pull request #3911 from GitPaean/fixing_numerical_aquifer_equil
Fixing equilibration when having numerical aquifers.
2022-05-26 22:09:32 +02:00
Bård Skaflestad
be4221ea92
Merge pull request #3869 from plgbrts/vapoilwat
adding three-phase simulator including water evaporation and salt precipitation
2022-05-25 15:33:53 +02:00
Bård Skaflestad
9f22e125f9 Extract Block-Level Component-in-Place Summary Values
This commit calculates the various BxIP* summary output values such
as BOIP (block-level oil-in-place) and BGIPL (block-level
gas-in-place in liquid phase).  While here, also extract the
block-level dissolved gas-oil-ratio (BRS) and vaporised
oil-gas-ratio (BRV).
2022-05-20 23:13:27 +02:00
Markus Blatt
02aaec82f7
Merge pull request #3815 from Tongdongq/subdomain-matrix-for-opencl
Subdomain matrix for opencl ILU preconditioner
2022-05-20 16:05:14 +02:00
Paul Egberts
a255613452
Merge branch 'master' into vapoilwat 2022-05-11 11:55:54 +02:00
Kai Bao
78bd95c593 also update cellZSpan_ and cellZMinMax
when updating cell center depth due to numerical aquifer cells.
2022-05-05 15:01:09 +02:00
Bård Skaflestad
26c7055b9e
Merge pull request #3905 from goncalvesmachadoc/addBXPV
add Block Pore Volumes
2022-04-29 23:18:02 +02:00
goncalvesmachadoc
8920f339cc addBXPVs 2022-04-29 20:26:59 +02:00
Tor Harald Sandve
967c538da8 output pcow, pcog 2022-04-29 15:35:16 +02:00
Tong Dong Qiu
bae2358090 Fix if clauses 2022-04-21 17:19:01 +02:00
Tong Dong Qiu
61f693dbaf reenable normal opencl
Rebased
2022-04-21 17:18:54 +02:00
Tong Dong Qiu
e360c00b73 add block-jacobi partitioner option. Add block-jacobi matrix for use in OpenCL preconditioner
Rebased
2022-04-21 17:18:32 +02:00
Tor Harald Sandve
9d18f164db fix saturated density in DRSDTCON 2022-04-21 08:35:07 +02:00
Tor Harald Sandve
af95a3f22b fix density in initialization for case without DISGAS 2022-04-12 11:31:17 +02:00
Paul Egberts
ab3be6dce4 adjustments to account for vaporized water 2022-04-08 22:36:39 +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
6dcde2c5f7 Retrieve Block Level Solvent Saturation When Requested
This commit adds support for the block level solvent saturation
summary output keyword "BNSAT".
2022-04-05 15:45:00 +02:00
Paul Egberts
c316865681 fix initialization for the single phase cases 2022-03-14 15:10:03 +01:00
Tor Harald Sandve
82099705ac fix initialization EQUIL + water and gas 2022-03-11 12:38:38 +01:00
Paul Egberts
d89672e4a3 some clean up 2022-03-06 20:51:57 +01:00
Bård Skaflestad
f6e8a9bfac Report Unique IJK Tuples for Failed Bubble/Dew Point Calculations
This commit switches the debug file's records of "failed" bubble and
dew point pressure calculations from a non-unique list of linearised
Cartesian indices to a unique list of (1-based) (I,J,K) tuples.
This format is hopefully easier to read for humans.

Thanks to [at]blattms for suggesting the gatherv() helper function
which greatly simplifies the communication pattern.

Example from selected time steps in a real field case with Cartesian
dimensions 137-by-236-by-58:

  - Original
  Finding the dew point pressure failed for 2 cells [1467066, 1467066]
  Finding the dew point pressure failed for 8 cells [1467063, 1467063, 1467066, 1467066, 1467066, 1467066, 1467066, 1467066]

  - This commit
  Finding the dew point pressure failed for 1 cell [(71,89,46)]
  Finding the dew point pressure failed for 2 cells [(68,89,46), (71,89,46)]
2022-03-02 22:49:28 +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
Bård Skaflestad
6ac998e4e4 Support Calculating Phase Pressures for Water/Gas at Block Level
This commit adds support for calculating/extracting the block-level
phase pressures for water (BWPR) and gas (BGPR) for summary output
purposes.
2022-02-28 23:42:48 +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
5f6750bb34
Merge pull request #3820 from goncalvesmachadoc/btemp
add BTCNFHEA
2022-02-22 00:49:27 +01:00
goncalvesmachadoc
ac51cecfd4 block press and temp when no oil is present 2022-02-21 18:12:30 +01:00
goncalvesmachadoc
a191722a25 add BTCNFHEA 2022-02-21 17:36:31 +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
Bård Skaflestad
1e121799c8 Add Multi-Array Aware Accumulator for Inter-Region Flow Rates
This commit introduces a new helper class

    Opm::EclInterRegFlowMapSingleFIP

that wraps a vector of

    Opm::EclInterRegFlowMapSingleFIP

along with the associate array names (e.g., "FIPNUM" and any
additional "FIP*" arrays).  We implement the same operations as the
*SingleFIP type and simply loop over the internal accumulators to
affect the operations.

Add unit tests to exercise the new class, including simulating
multiple MPI ranks that are communicated to a single I/O rank for
summary output purposes.
2022-02-18 10:29:56 +01:00
Bård Skaflestad
27564f0610 Add MPI-Aware Accumulator for Inter-Region Flow Rates
This commit introduces a new helper class

    Opm::EclInterRegFlowMapSingleFIP

that wraps an object of type

    Opm::data::InterRegFlowMap

along with the MPI rank's notion of a FIP region array definition
(e.g., the local FIPNUM array).  The new single-FIP flow map is
responsible for accumulating local contributions to the inter-region
flows defined by that FIP array.  In the case of connections between
MPI ranks, the rank that owns the lowest region ID accumulates the
associate flow rates.

Add unit tests to exercise the new class, including simulating
multiple MPI ranks that are communicated to a single I/O rank for
summary output purposes.
2022-02-18 10:29:56 +01:00
Markus Blatt
a520733d5b
Merge pull request #3774 from plgbrts/expli-salt
allow for explicit initialization of SALT and SALTP
2022-02-11 14:35:57 +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
95cd9eaa24 Pass ActionState to Schedule::runPyAction() 2022-01-27 22:46:36 +01:00
Paul Egberts
461694677a Improved error message 2022-01-24 10:40:19 +01:00
Joakim Hove
fa0b3ef919 Run PYACTION with Schedule::runPyAction() and call simulatorUpdate 2022-01-24 08:27:20 +01:00
Joakim Hove
c1eeb3f18c Extract functionality to update state after ACTIONX in separate func 2022-01-20 09:05:33 +01:00
Joakim Hove
1642f34f04 Pass matching wells to Schedule::applyAction() 2022-01-20 08:22:59 +01:00
Joakim Hove
8308152e88 Remove unused argument to Schedule::applyAction() 2022-01-20 08:13:12 +01:00
Paul Egberts
ba165838cd added enable conditions 2022-01-19 16:44:42 +01:00
Paul Egberts
590920db6b allow for explicit initialization of SALT (salt concentration) and SALTP (precipitated salt) 2022-01-18 11:12:43 +01:00
Paul Egberts
8044beb25d corrected TypeTag 2022-01-14 11:46:40 +01:00
Paul Egberts
0824ee0694 Initialization of solid salt saturation 2022-01-14 11:46:39 +01:00
Paul Egberts
dfe298a424 Allowing for non-eclipse output SALTP and PERMFACT 2022-01-14 11:46:39 +01:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00