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
Markus Blatt
790fa8044e
Merge pull request #3755 from blattms/fix-opencl-apply-stdwells-rebased
...
Fix opencl apply stdwells rebased (replaces #3746 )
2022-01-11 19:18:03 +01:00
goncalvesmachadoc
300f536a19
add exit_failure for water+brine case
2022-01-11 14:23:37 +01:00
Bård Skaflestad
abf92eed52
Accumulate Dissolved Gas and Vaporized Oil Flow Rates Across Ranks
...
This is needed to get consistent estimates for the summary vectors
* {F,G,W}OP{R,T}{F,S} -- Free/Vaporized Oil Production
* {F,G,W}GP{R,T}{F,S} -- Free/Dissolved Gas Production
in the case of distributed wells.
Thanks to [at]blattms for the suggested fix.
2022-01-10 14:14:39 +01:00
Kai Bao
2b9b6e5155
addressing reviewing comments for PR#3760
2022-01-10 11:33:11 +01:00
Kai Bao
dec3100247
fixing a bug in funcion bisectBracket
2022-01-09 00:21:31 +01:00
Kai Bao
3b7e62979c
refactoring to shorten the function computeBhpAtThpLimitProd
...
better readibility hopefully.
2022-01-07 15:49:48 +01:00
Kai Bao
5824acbf92
making bruteforce bracket as a function
...
for better readbility.
2022-01-07 15:13:33 +01:00
Kai Bao
3273f310e3
prototyping the brute force for bracketing bhp
...
to fix the situation the existing approach fails.
2022-01-07 14:32:16 +01:00
Tor Harald Sandve
3e4e62bc4f
Merge pull request #3751 from hakonhagland/glift_swg_fx3
...
Refactor some methods in `GasLiftSingleWellGeneric.cpp` (part 2)
2022-01-03 14:14:15 +01:00
Joakim Hove
6b92443cb4
Downstream filesystem reorganisation in opm-common
2022-01-02 14:33:34 +01:00
Tong Dong Qiu
f48fe632cb
Added comment to apply_stdwell kernels
2021-12-22 16:22:55 +01:00
Tong Dong Qiu
3decb73561
Fix stdwell_apply opencl kernel
2021-12-22 16:16:04 +01:00
Jose Eduardo Bueno
c7ac97e215
[OpenCL] Moves all OpenCL kernels to *.cl files.
...
Kernel files are located in opm/simulators/linalg/bda/opencl/kernels.
CMake will combine them for usage in
${PROJECT_BINARY_DIR}/clSources.cpp that becomes part of the library.
2021-12-22 12:43:18 +01:00
Håkon Hægland
4bdf7c1b58
Refactor methods getXyzRateWithLimit_()
...
Refactors getOilRateWithLimit_(), getGasRateWithLimit_(), and
getWaterRateWithLimit_() in GasLiftSingleWellGeneric.cpp. The
common part of the methods is split out into a new method called
getRateWithLimit_(). The purpose of the refactorization is to reduce
reptetive code and make the code easier to maintain.
2021-12-22 10:45:31 +01:00
Håkon Hægland
f28b906782
Made some methods in GasLiftGroupInfo const
...
This is in agreement with C++ Core Guidelines. A member function should
be marked const unless it changes the object’s observable state. This
gives a more precise statement of design intent, better readability, more
errors caught by the compiler, and sometimes more optimization opportunities.
2021-12-21 23:24:58 +01:00
Håkon Hægland
11ad879472
Make parameters to getLiquidRateWithGroupLimit_() const
...
To improve readability, we make the parameters of
getLiquidRateWithGroupLimit_() const as discussed in
https://github.com/OPM/opm-simulators/pull/3748
2021-12-20 23:19:40 +01:00
Håkon Hægland
837f33e679
Refactor some methods in GasLiftSingleWellGeneric.
...
Refactor getOilRateWithGroupLimit_(), getGasRateWithGroupLimit_(),
getWaterRateWithGroupLimit_(), and getLiquidRateWithGroupLimit_() into
a single generic method called getRateWithGroupLimit_().
2021-12-20 23:08:31 +01:00
Bård Skaflestad
f77d82a0e9
Merge pull request #3744 from OPMUSER/Validate-ROCKCOMP
...
Validate ROCKCOMP Update
2021-12-20 13:51:07 +01:00
Markus Blatt
0485c65d16
Merge pull request #3740 from atgeirr/make-split-comm-test-runtime-optional
...
Replace DEMONSTRATE_RUN_WITH_NONWORLD_COMM macro with runtime bool.
2021-12-20 12:46:49 +01:00
OPMUSER
d6f7cb59a7
Validate ROCKCOMP Upadate
2021-12-20 18:06:17 +08:00
Håkon Hægland
e388827d81
Fixup in GasLiftSingleWellGeneric
...
Consider all groups when reducing oil rate to group limits.
The current code just checks the first group limit in the set.
But there might be groups later in the set with more restrictive
limits, causing the oil rate to be reduced more than the first
limit.
2021-12-15 19:15:35 +01:00
OPMUSER
34652f2d5d
Remove NEXTSTEP from Unsupported List
2021-12-14 11:31:38 +08:00
Atgeirr Flø Rasmussen
e22d1177fd
Merge pull request #3738 from OPMUSER/WILL_STOP
...
Update PartiallySupportedFlowKeywords.cpp All STOP Version
2021-12-13 09:23:44 +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
Tor Harald Sandve
51d9b7ee11
Merge pull request #3719 from totto82/noIterPot
...
Do not iterate when computing well potentials for standard wells
2021-12-10 16:20:10 +01:00
OPMUSER
0ee2ed0311
Update PartiallySupportedFlowKeywords.cpp
2021-12-10 20:17:12 +08:00
OPMUSER
f7327c06f7
Update PartiallySupportedFlowKeywords.cpp
2021-12-10 19:56:54 +08:00
Tor Harald Sandve
1baee5ec9b
Merge pull request #3715 from goncalvesmachadoc/vapwat
...
update parameters BlackoilFluidSystem
2021-12-09 15:37:49 +01:00
Tor Harald Sandve
b87e5e0a9f
Merge pull request #3735 from hakonhagland/glift_refact
...
Small clean up in GasLiftSingleWellGeneric.cpp
2021-12-09 15:24:49 +01:00
Håkon Hægland
738b5c5f18
Small clean up in GasLiftSingleWellGeneric.cpp
...
As discussed in PR #3728 , it is better to move the two methods
reduceALQtoGroupTarget() and checkGroupTargetsViolated() from
OptimizeState to the parent class, then we do not have to abuse
OptimizeState in maybeAdjustALQbeforeOptimizeLoop_() just to call
reduceALQtoGroupTarget().
Also fixes a typo (as discussed in PR #3729 ) in reduceALQtoGrouptTarget()
where the water rate is updated with the gas flow rate instead of the
water flow rate. Should be like this:
water_rate = -potentials[this->parent.water_pos_];
instead of
water_rate = -potentials[this->parent.gas_pos_];
2021-12-09 11:58:43 +01:00
Arne Morten Kvarving
2d0d48d8c9
fix build with dune 2.6
2021-12-09 09:02:13 +01:00
Tor Harald Sandve
bd9e13d4bd
Merge pull request #3728 from totto82/fixGasliftGroupWell
...
Fix when both well and group control restrict gaslift
2021-12-09 08:12:31 +01:00
Atgeirr Flø Rasmussen
e2cdab208b
Merge pull request #3730 from atgeirr/fix-efficiency-alq-network
...
Account for efficiency when adding lift gas to network flows.
2021-12-09 07:49:16 +01:00
Markus Blatt
ac41c318da
Fixes compilation of opencl CPR without MPI
2021-12-08 20:24:14 +01:00
Markus Blatt
a61f69bb79
Merge pull request #3672 from Tongdongq/add-cpr-opencl
...
Add CPR preconditioner to openclSolver
2021-12-08 19:44:59 +01:00
goncalvesmachadoc
b15b893b3a
add Index Traits
2021-12-08 16:52:23 +01:00
Atgeirr Flø Rasmussen
819d88a1a7
Account for efficiency when adding lift gas to network flows.
2021-12-08 15:54:12 +01:00
goncalvesmachadoc
7f320102c3
allow for gas-water + brine
2021-12-08 14:35:22 +01:00
Tor Harald Sandve
66425eb7c2
WIP fix when both well and group control restrict gasslift
2021-12-08 09:36:26 +00:00
Atgeirr Flø Rasmussen
69b81c4fbf
Merge pull request #3724 from totto82/CO2STORETHERMAL
...
Add gasoil + thermal simulator
2021-12-08 08:33:46 +01:00
Tor Harald Sandve
31954a487b
Merge pull request #3720 from totto82/operSolvEcon
...
Only check operable wells for wecon
2021-12-07 12:44:24 +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
Kai Bao
148fb4a282
Merge pull request #3712 from totto82/fixAssertInStw
...
Fix assert in relaxation factor in std well
2021-12-06 11:09:08 +01:00
Tor Harald Sandve
e230174de6
Fix assert in relaxation factor in std well
...
If original sum ~ 1 and relaxed_update ~ 0 the factor could -> inf
and trigger the assert.
The 1 + epsilon factor will make sure this does not happen
2021-12-03 14:00:40 +00:00
Tor Harald Sandve
4d19ba7409
Only check operable wells for wecon
2021-12-03 11:37:51 +00:00
Tor Harald Sandve
fac3ca3507
do not iterate when computing well potentials
2021-12-02 13:48:22 +00:00
Tong Dong Qiu
374f8276dc
Move opencl variables to Preconditioner
2021-12-01 14:15:59 +01:00
Tong Dong Qiu
94ea2dcd30
Change C to C++
...
Also bugfix wrong size when COPY_ROW_BY_ROW is active
2021-12-01 14:15:16 +01:00
Tong Dong Qiu
e0a4d271ea
Formatting changes
2021-12-01 11:47:45 +01:00
Tong Dong Qiu
0881089406
Add Preconditioner, superclass of BILU0 and CPR
2021-12-01 11:47:45 +01:00
Tong Dong Qiu
50d0486b28
Allow a variable number of pre/post smooth steps during AMG
2021-12-01 11:47:44 +01:00
Tong Dong Qiu
a911d5d2be
Add test for solve_transposed_3x3()
2021-12-01 11:47:44 +01:00
Tong Dong Qiu
56fb3948e5
Fill restriction matrix faster
2021-12-01 11:47:44 +01:00
Tong Dong Qiu
411d3c6a8d
Replace spmv-prolongation by specialized kernel
2021-12-01 11:47:44 +01:00
Tong Dong Qiu
eaded9dcf7
Add prolongate_vector() kernel
2021-12-01 11:47:44 +01:00
Tong Dong Qiu
9d611f04ee
Add timers to opencl CPR preconditioner
2021-12-01 11:47:44 +01:00
Tong Dong Qiu
f2225503c4
Combine BILU0 and CPR preconditioner
2021-12-01 11:47:44 +01:00
Tong Dong Qiu
11d54f31f5
Reuse umfpack object
2021-12-01 11:47:29 +01:00
Tong Dong Qiu
b9a12b64d9
Rename copy sparsity pattern function
2021-12-01 11:43:40 +01:00
Tong Dong Qiu
d7204c5be7
Create separate functions
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
13646337f3
Reduce get_absmax() code
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
5e85c23478
Renamed move_to_coarse/fine() in CPR
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
19a0454b6f
Update comments
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
ca44351c72
Add error checks for OpenclMatrix
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
de8073e689
Reuse Matrix constructor
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
a71a5cd8fe
Moved OpenclMatrix to new file
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
a8b1d7c9dc
Change header include guard name
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
1306a65104
Remove unnecessary intermediate variables
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
5385bd275e
Rename get_opencl_kernel functions
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
adb4649277
Changed block_size template to parameter for block functions
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
288e548b89
Changed block_size template to variable for OpenclMatrix
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
9acffab47e
Changed block_size template to variable for BlockedMatrix
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
a6b6a62b27
Changes needed for FPGA
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
606143ef57
Add timer for cpr_apply
2021-12-01 11:43:39 +01:00
Tong Dong Qiu
6465cf9cbb
Add CPR preconditioner for openclSolver and
...
change raw pointers to vector for Matrix
2021-12-01 11:43:30 +01:00
Tor Harald Sandve
2c17b1942c
Move getPerfCellPressure to wellInterface
...
The cell pressure is independent of well model and belongs to the interface
This should move the MSW model one step closer to supporting GasWater cases
2021-11-30 10:48:02 +00:00
goncalvesmachadoc
90380c35ad
update parameters BlackoilFluidSystem
...
fix
update parameters BlackoilFluidSystem
2021-11-29 16:38:43 +01:00
Joakim Hove
3d02e29da1
Merge pull request #3713 from totto82/fixWTEST
...
Fix in WTEST
2021-11-26 13:18:01 +01:00
Tor Harald Sandve
c4b0a0d9e2
Fix in WTEST
...
If a well is shut due to physical or economical reason the wellstate status is shut
so we can not check the wellstate we instead check the well from the schedule to
make sure we don't test wells that are shut by the user.
2021-11-26 10:17:45 +00:00
Tor Harald Sandve
6277d12d16
fix return type for phaseIdx and compIdx
2021-11-25 14:56:27 +00:00
Tor Harald Sandve
2352d94c0e
fix co2store + aqunum
2021-11-24 11:13:50 +00:00
Bård Skaflestad
842766d6d6
Merge pull request #3705 from totto82/fixSignPot
...
guard against negative and trivial potentials
2021-11-23 20:12:53 +01:00
Tor Harald Sandve
50ab26c330
cleanup
2021-11-23 14:01:07 +00:00
Markus Blatt
6d8223f233
Merge pull request #3602 from blattms/parallel-tracers
...
[feature] Adds support for computing tracers in parallel runs.
2021-11-23 12:39:48 +01:00
Tor Harald Sandve
43fd50e355
only mark negative potentials as not operable
2021-11-22 11:27:45 +00:00
Tor Harald Sandve
b5cdb1048a
Mark wells with negative and trivial potentials as not operable
...
The simulator will try to compute potentials at every iterations to
try to reopen the well.
2021-11-22 08:44:17 +00:00
Markus Blatt
50867bf23c
Guard include of WellContributions.cpp
2021-11-17 19:23:46 +01:00
Markus Blatt
d2caf41037
Fix incomplete type ‘Opm::WellContributions’ compiler error (g++-8)
...
Fixes
```
In file included from opm-simulators/opm/simulators/flow/BlackoilModelEbos.hpp:53,
from opm-simulators/opm/simulators/flow/SimulatorFullyImplicitBlackoilEbos.hpp:26,
from opm-simulators/flow/flow_ebos_gaswater.cpp:28:
opm-simulators/opm/simulators/linalg/ISTLSolverEbos.hpp: In member function ‘bool Opm::ISTLSolverEbos<TypeTag>::solve(Opm::ISTLSolverEbos<TypeTag>::Vector&)’:
opm-simulators/opm/simulators/linalg/ISTLSolverEbos.hpp:265:56: error: incomplete type ‘Opm::WellContributions’ used in nested name specifier
auto wellContribs = WellContributions::create(accelerator_mode, useWellConn_);
^~~~~~
```
2021-11-17 17:30:01 +01:00
Markus Blatt
9a80d806c0
Setup parallel solvers for tracers.
2021-11-17 16:02:16 +01:00
Bård Skaflestad
d163bebcdc
Merge pull request #3699 from blattms/man-page-spelling
...
Adds manpage and fixes several spelling issue found by lintian
2021-11-17 09:59:50 +01:00
Kai Bao
c2e18fd077
Merge pull request #3573 from totto82/crossFlowEcon
...
remove assert and handle opposite rates in wecon related fractions.
2021-11-15 15:31:05 +01:00
Joakim Hove
4d1fb8c797
Merge pull request #3700 from blattms/gcc-11
...
Include limits header where needed for g++-11
2021-11-15 13:13:07 +01:00
Markus Blatt
b0792db164
Include limits header where needed for g++-11
...
Without this compilation fails on Debian unstable.
2021-11-15 12:11:25 +01:00
Markus Blatt
a2246d331b
Spelling fixes
...
Gbp-Pq: Name 0005-Spelling-fixes.patch
2021-11-15 12:06:05 +01:00
Markus Blatt
afc5ed751f
Merge pull request #3691 from akva2/bda_wellcontrib_refactor
...
Refactor BDA well contributions
2021-11-15 10:26:44 +01:00
Markus Blatt
ec56782288
Merge pull request #3690 from akva2/wellcontrib_cleanups
...
Some simple cleanup in BDA WellContributions
2021-11-15 10:18:12 +01:00
Tor Harald Sandve
ae5a1df29c
Merge pull request #3638 from blattms/exclude-pv-aquifer-cnv
...
Exclude pv of numerical aquifer cells in ratio of cells violating CNV
2021-11-12 13:27:58 +01:00
Arne Morten Kvarving
e25caba8ed
changed: refactor BDA well contributions
...
split in API specific classes for Cuda/OpenCL
this to
1) it's cleaner
2) it avoids pulling in openCL code in cuda classes which leads
to clashes between nvidia headers and opencl.hpp
there is still too much API specific things in interface between the
bda components to work through a virtual interface so we still have to cast
to the relevant implementation in various places.
2021-11-11 14:49:33 +01:00
Arne Morten Kvarving
352d31a1e9
BdaBridge: avoid FPGA include in header
...
already includ in the cpp file where it is required.
2021-11-11 13:39:46 +01:00