Commit Graph

4296 Commits

Author SHA1 Message Date
Tor Harald Sandve
4dd0798e5b add gas + water + energy to flow 2023-03-31 08:47:19 +02:00
Håkon Hægland
c2916bc7d9 Fix bug when recalculating gaslift gradient
Fixes a bug in recalculateGradientAndUpdateData_() if gaslift stage2.
Also adds some more debugging output.
2023-03-30 17:44:21 +02:00
Kai Bao
7c06ec38a3 stricter tolerance for wells with zero rate target
for StandardWell only at this moment.
2023-03-30 15:49:27 +02:00
Bård Skaflestad
e9b372ff1c
Merge pull request #4563 from GitPaean/treating_zero_injection_rate_well_as_stoppped
for the wells under zero rate target control, the THP output will be zero
2023-03-30 13:03:36 +02:00
Bård Skaflestad
5a3deaf57b
Merge pull request #4571 from totto82/fixgl
Increase alq to its minimum value while checking that is does not violate its rate limits
2023-03-30 10:31:51 +02:00
Tor Harald Sandve
77ed90ceb8 Increase alq to its minimum value while checking that is does not violate its rate limits 2023-03-30 08:59:59 +02:00
Kai Bao
9304542dbe combining wellIsStopped and wellUnderZeroRateTaget
for better readability.
2023-03-29 14:40:50 +02:00
Kai Bao
b6eecf5c55 not updating the THP for zero rate controlled wells 2023-03-29 13:48:34 +02:00
Kai Bao
f4e0a996b9 wells under zero injection target are also treated as stopped well
when formulating the well control equations
2023-03-29 13:48:34 +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
Bård Skaflestad
dcdb9413b4
Merge pull request #4565 from hnil/reduced_linearsolver_option
Reduced linearsolver option
2023-03-29 10:44:56 +02:00
Bård Skaflestad
a2fd7d0ae3
Merge pull request #4567 from akva2/janitoring
FlexibleSolver: use std::make_shared
2023-03-29 10:43:52 +02:00
Bård Skaflestad
9524348401
Merge pull request #4549 from totto82/resv_undersat
fix RESV for undersaturated wells
2023-03-29 10:35:33 +02:00
Arne Morten Kvarving
5f6339f6fd FlexibleSolver: use std::make_shared 2023-03-29 09:50:09 +02:00
hnil
2e4d5ee57b - Remove wrong output if already converged 2023-03-29 09:47:02 +02:00
hnil
445e4f10fe fixed spelling 2023-03-29 08:55:31 +02:00
Tor Harald Sandve
57c1e52019 fix error message for rs/rsw =1 2023-03-29 08:47:28 +02:00
hnil
6b4082a1fe better messages 2023-03-28 13:54:09 +02:00
Tor Harald Sandve
a73f4078ef add missing include 2023-03-28 12:45:39 +02:00
hnil
992edc1fec - added a reduced tolerance for linear for the nonlinear solver to accept the result 2023-03-28 11:43:00 +02:00
hnil
f0b5e6a670 - changed pointer to refernace for IQ for possibility of using rvalues 2023-03-28 09:37:00 +02:00
Tor Harald Sandve
a2ae7d5bed Fix resv for groups 2023-03-27 16:03:40 +02:00
Tor Harald Sandve
42527ac829 fix RESV for undersaturated wells 2023-03-27 16:03:40 +02:00
Kai Bao
7931e6e00a removing unused function solveEqAndUpdateWellState
from MultisegmentWell and WellInterface .
2023-03-27 13:26:00 +02:00
Kai Bao
2c5a4398c9 make sure zero production rates are obtained for the following wells
1. stopped production wells
2. production wells under zero rate control

We guarantee the objective through enforce zero values for the WQTotal
primary variable during the initialization and update process during the
Newton solution.
2023-03-27 13:24:08 +02:00
Tong Dong Qiu
0bf91691fe Only do CPU decomposition if needed, when using GPU 2023-03-27 11:43:26 +02:00
hnil
2769cc5c3d minimal change to not called cachedIntensive 2023-03-24 20:01:47 +01:00
hnil
aa40d2f0f3 -- prepared for possibliy of not using cached intentensive quantities 2023-03-24 19:57:31 +01:00
Kai Bao
c8d914caad using double for regularization_factor_wells_ 2023-03-23 16:47:03 +01:00
Bård Skaflestad
0ebcef62e2
Merge pull request #4542 from hnil/optimize_processdata
Optimisation of data processing for actionX and output
2023-03-22 23:13:43 +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
Bård Skaflestad
0a9d2a7099
Merge pull request #4543 from hnil/more-timings
added more timing macros
2023-03-22 10:51:28 +01:00
hnil
122a478341 added more timing macros 2023-03-21 22:44:14 +01:00
Atgeirr Flø Rasmussen
e25657943e
Merge pull request #4534 from akva2/disable_hdf5_compression_old_versions
changed: disable HDF5 compression with hdf5 <= 1.8
2023-03-21 09:49:19 +01:00
steink
c997b438dd assembleWellEq 2023-03-20 13:15:59 +01:00
Bård Skaflestad
8dfac0d8e6
Merge pull request #4524 from goncalvesmachadoc/temp
allow for TEMP
2023-03-16 16:37:09 +01:00
Arne Morten Kvarving
52008d5231 changed: disable HDF5 compression with hdf5 <= 1.8
seems to be broken (in particular 1.8.12 on rh7)
2023-03-16 08:54:39 +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
goncalvesmachadoc
3eb684ae7d allow for TEMP 2023-03-13 14:18:48 +01:00
David Landa Marban
a19e70c59a fix to broken built with clang 2023-03-10 22:39:39 +01:00
Bård Skaflestad
1ac190e4a0
Merge pull request #4518 from atgeirr/fix-zero-rate-control-eq
Treat rate control with zero target same as stopped well.
2023-03-10 16:12:08 +01:00
Bård Skaflestad
f25d204281 Tag Unused Parameter as Maybe_Unused
Noted by [at]akva2
2023-03-10 11:36:11 +01:00
Bård Skaflestad
7abfdc52e0 Refactor Construction of Analytic Aquifer Objects
In particular, split the 'static' aquifer object initialisation
of member function 'init()' into a new helper function

  initializeStaticAquifers()

This is in preparation of adding a similar function to handle
dynamic aquifer object initialisation from a restart file.  To that
end, also add a new member function

  createDynamicAquifers(episode_index)

containing the current implementation of beginEpisode().  Creating
the dynamic objects from a restart file then amounts to calling this
function with a different 'episode_index'.  As another aid to
maintainability, add a new templated member function

  createAnalyticAquiferPointer()

which forms 'unique_ptr<AquiferInterface>' objects for every known
type of analytic aquifer.  This, in turn, requires reordering the
parameters of the AquiferConstantFlux constructor to match those of
the existing Fetkovich and Carter-Tracy types.

Finally, split the calculation of the constant flux aquifer's total
flux rate out to a new helper function

  AquiferConstantFlux::totalFluxRate()
2023-03-09 18:04:55 +01:00
Atgeirr Flø Rasmussen
2964bd409e Use diagonal matrix block pointers for well source terms. 2023-03-08 16:41:36 +01:00
hnil
e705dc41c2 modification to to well assembly form well side to avoid asking for wells on all cells 2023-03-08 16:41:36 +01:00
Arne Morten Kvarving
3967eb001b RateConverter: prefer using 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
173e3900d4 RateConverter: move inferDissolvedVaporisedRatio to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
8c233ffba2 RateConverter: move calcReservoirVoidageRates to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
ae9ed506e8 RateConverter: move calcCoeff to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
11602bbdda RateConverter: move calcInjCoeff to compile unit 2023-03-08 15:40:18 +01:00
Arne Morten Kvarving
7672e14890 RateConvert: introduce compile unit
move global rate reductions into it
2023-03-08 15:40:15 +01:00
Atgeirr Flø Rasmussen
60cdbb8cfd Treat rate control with zero target same as stopped well. 2023-03-08 15:32:55 +01:00
Arne Morten Kvarving
917af4e28e RateConverter: coalesce global reductions 2023-03-08 12:55:04 +01:00
Atgeirr Flø Rasmussen
fc06fc77c3
Merge pull request #4500 from GitPaean/unifying_interface_assemble_noiteration
make sure computeWellRatesWithBhpIterations honor bhp limit (can change) for StandardWell
2023-03-07 21:02:44 +01:00
Arne Morten Kvarving
7a90bd48b8 GasLiftSingleWell: avoid unused variable warning with NDEBUG 2023-03-07 11:22:01 +01:00
Arne Morten Kvarving
aeee2ad9d3 RateConverter: throw an exception, not a bare string 2023-03-06 13:08:33 +01:00
Atgeirr Flø Rasmussen
fb076a7acc
Merge pull request #4508 from akva2/simulatorreport_avoid_nan
SimulatorReport: protect against division by zero
2023-03-03 11:55:42 +01:00
Arne Morten Kvarving
0cb69ffaa8 SimulatorReport: protect against division by zero 2023-03-03 10:39:57 +01:00
Atgeirr Flø Rasmussen
c9ba0afea3 Silence warnings: struct/class, missing override. 2023-03-03 10:12:46 +01:00
Kai Bao
2152ac6465 make sure computeWellRatesWithBhpIterations honor bhp limit
for StandardWell
2023-03-02 23:53:56 +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
c4e025190e AdaptiveTimeSteppingEbos: put consistentlyFailingWells in detail namespace
no reason for this to be a template
2023-03-02 12:37:13 +01:00
Arne Morten Kvarving
b232613623 AdaptiveTimeSteppingEbos: put logTimer in detail namespace 2023-03-02 12:37:13 +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
aaaf00f2fd adjust to timing macro header split 2023-03-01 13:18:16 +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
Atgeirr Flø Rasmussen
7acc6feb18 Make names more consistent. 2023-02-28 13:58:02 +01:00
Arne Morten Kvarving
5f08897247 fixed: add missing HAVE_MPI ifs 2023-02-28 09:49:01 +01:00
Atgeirr Flø Rasmussen
e9d1bbc355
Merge pull request #4481 from akva2/hdf5_enable_compression
HDF5File: enable gzip compression
2023-02-28 08:13:51 +01:00
Atgeirr Flø Rasmussen
8efb30d2bb
Merge pull request #4482 from totto82/addGasWaterEnergy
Add gaswater energy simulator
2023-02-28 08:01:06 +01:00
Atgeirr Flø Rasmussen
3e62a6817f
Merge pull request #4483 from GitPaean/wrong_direction_flow_not_converged
not considering wells with wrong flow direction as converged
2023-02-28 07:55:07 +01:00
Arne Morten Kvarving
5fd5753ed7 fixed: mixed-up input and output paths for restart serialization 2023-02-27 12:17:00 +01:00
Kai Bao
460aa5027b not considering wells with wrong flow direction as converged
under THP constraint, well can get converged with wrong flow direction
(e.g. a producer is injecting), becasue we cut off the wrong flow
direction as zero rate in the VFP evaluation
2023-02-24 14:30:45 +01:00
Arne Morten Kvarving
8b673c09cc HDF5File: enable gzip compression 2023-02-24 11:56:17 +01:00
Atgeirr Flø Rasmussen
1b92971e8b
Merge pull request #4478 from akva2/serialization_output_dir
fixed: output OPMRST file to output dir
2023-02-23 11:18:21 +01:00
Tor Harald Sandve
5028e0fbf1 Add gaswater energy simulator 2023-02-23 09:25:50 +01:00
Bård Skaflestad
4e8381b6f9
Merge pull request #4370 from totto82/computeCVIR
compute CVIR and CVPR
2023-02-22 17:38:33 +01:00
Bård Skaflestad
d364b7b80c
Merge pull request #4479 from akva2/serialization_missing_perfdata
RestartSerialization: add missing PerfData
2023-02-22 15:53:42 +01:00
Arne Morten Kvarving
da4784b314 AquiferConstantFlux: add restart serialization support 2023-02-22 14:41:07 +01:00
Arne Morten Kvarving
9418110d3e AquiferConstantFlux: mark method override 2023-02-22 14:41:07 +01:00
Arne Morten Kvarving
6073af784d AquiferConstantFlux: add missing includes 2023-02-22 14:41:07 +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
bdd75a3a59 SingleWellState: serialize PerfData 2023-02-22 13:59:59 +01:00
Arne Morten Kvarving
8d339c464c PerfData: add serialization support 2023-02-22 13:59:59 +01:00
Tor Harald Sandve
054d832bff compute CVIR and CVPR 2023-02-22 08:54:47 +01:00
Kai Bao
7a67b16c3e addressing review comments for PR OPM/opm-simulators#4429 2023-02-21 15:27:05 +01:00
Kai Bao
73dc31a7a5 updating AquiferConstantFlux with AQUFLUX
not recreating new instances to avoid unnecessary cost from constructor.
2023-02-21 13:20:36 +01:00
Kai Bao
71119b6e42 WIP in making AQUFLUX running in parallel. 2023-02-21 13:20:36 +01:00
Kai Bao
7bd1cd9aa1 following the AQUFLUX design change from opm-common 2023-02-21 13:20:36 +01:00
Kai Bao
9a0ea0cb97 WIP in adding summary output for AQUFLUX aquifers
FAQR and FAQT are not working properly yet.
2023-02-21 13:20:36 +01:00
Kai Bao
248f6b73d9 WIP of supporting AQUFLUX from simulator side 2023-02-21 13:20:36 +01:00
Bård Skaflestad
37959ee26a
Merge pull request #4468 from vkip/fix_connpress_report
Fixing MSW connection pressure output
2023-02-17 17:44:39 +01:00
Vegard Kippe
f527267593 Fixing MSW connection pressure output 2023-02-17 12:17:41 +01:00
Bård Skaflestad
981299c2e0
Merge pull request #4461 from totto82/injalq
Fix default alq injector
2023-02-17 11:58:03 +01:00
Bård Skaflestad
1369889074 Fix Sequential Build
Include <cassert> for 'assert' macro.
2023-02-16 16:36:53 +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
Arne Morten Kvarving
a21d59977d SimulatorReport: add serialization support 2023-02-16 11:56:40 +01:00
Arne Morten Kvarving
f0ca3120ff SimulatorReportSingle: add serialization support 2023-02-16 11:56:40 +01:00
Arne Morten Kvarving
28e7da5468 BlackoilWellModelGeneric: add serialization support 2023-02-16 11:19:06 +01:00
Arne Morten Kvarving
90fbdcee0a WGState: add serialization support 2023-02-16 10:48:34 +01:00
Arne Morten Kvarving
d9c801033a cosmetics 2023-02-16 09:52:36 +01:00
Arne Morten Kvarving
b7a531b93a WellState: add serialization support 2023-02-16 09:43:39 +01:00
Arne Morten Kvarving
6d93b2d12f ALQState: add serialization support 2023-02-16 08:35:34 +01:00
Arne Morten Kvarving
b87bf2b3ae GroupState: add serialization support 2023-02-15 22:57:44 +01:00
Arne Morten Kvarving
1a5ae624b1 GroupState: add gpmaint_state to comparison operator 2023-02-15 22:51:19 +01:00
Arne Morten Kvarving
7f36bac579 WellContainer: add serialization support 2023-02-15 21:55:19 +01:00
Atgeirr Flø Rasmussen
e1942d145f
Merge pull request #4437 from akva2/singlewellstate_serialize
SingleWellState: add serialization support
2023-02-15 15:29:08 +01:00
hnil
79d7698dd8 added timeblocks in linear solver 2023-02-15 15:07:58 +01:00
Bård Skaflestad
3be62f4bb6
Merge pull request #4460 from totto82/fixVREP
FIX VREF for groups with both gas and water injectors
2023-02-15 14:34:52 +01:00
Arne Morten Kvarving
60a5273d0e SingleWellState: add serialization of dynamic state 2023-02-15 13:56:25 +01:00
Tor Harald Sandve
be2b021167 Fix default alq injector 2023-02-15 13:42:50 +01:00
Tor Harald Sandve
5356dbbaa8 FIX VREF for groups with both gas and water injectors 2023-02-15 13:35:12 +01:00
Arne Morten Kvarving
482c32b117 SegmentState: add serialization support 2023-02-15 12:59:18 +01:00
hnil
fd98d8ea27 added timing blocks to most important parts 2023-02-15 09:41:37 +01:00
Arne Morten Kvarving
0a1df9d6f7
Merge pull request #4426 from akva2/blackoilaquifermodel_serialize
BlackoilAquiferModel: add serialization of dynamic state
2023-02-14 19:00:42 +01:00
Arne Morten Kvarving
d5f22dbc99 BlackoilAquiferModel: add serialization of dynamic state 2023-02-14 17:51:25 +01:00
Bård Skaflestad
273477ef2c
Merge pull request #4458 from atgeirr/fix-warnings
Fix a few warnings in recently added code.
2023-02-14 16:43:22 +01:00
Arne Morten Kvarving
a66fd75715 AquiferNumerical: add serialization of dynamic state 2023-02-14 16:15:25 +01:00
Arne Morten Kvarving
03f6309ff7 AquiferFetkovich: add serialization of dynamic state 2023-02-14 16:15:25 +01:00
Arne Morten Kvarving
51e5e61c39 AquiferCarterTracy: add serialization of dynamic state 2023-02-14 16:15:25 +01:00
Arne Morten Kvarving
6dc63b2da8 AquiferAnalytical: add serialization of dynamic state 2023-02-14 16:15: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
Atgeirr Flø Rasmussen
358d9997ee Fix a few warnings in recently added code. 2023-02-14 15:46:08 +01:00
Arne Morten Kvarving
a90189c78d HDF5File: add recursive group creation in write 2023-02-14 13:15:43 +01:00
Arne Morten Kvarving
e5c2fcfaf2 added: HDF5File::list
lists a given HDF5 group
2023-02-14 13:15:43 +01:00
Arne Morten Kvarving
13a54bbdbb AdaptiveTimeSteppingEbos: add serialization support 2023-02-13 22:03:58 +01:00
Arne Morten Kvarving
5f6bc76512 PIDAndIterationCountTimeStepControl: add serialization support 2023-02-13 22:03:19 +01:00
Arne Morten Kvarving
1827de96a2 PIDTimeStepControl: add serialization support 2023-02-13 22:03:19 +01:00
Arne Morten Kvarving
87bc1d8c10 HardcodedTimeStepControl: add serialization support 2023-02-13 22:03:19 +01:00
Arne Morten Kvarving
bd538cf61d SimpleIterationCountTimeStepControl: add serialization support 2023-02-13 22:03:19 +01:00
Bård Skaflestad
e89b28c9a2
Merge pull request #4419 from akva2/eclgenericvanguard_setup_params
changed: introduce EclGenericVanguard::SetupParams
2023-02-13 21:12:01 +01:00
Bård Skaflestad
2c702aee78
Merge pull request #4416 from akva2/simulatortimer_serialize
SimulatorTimer: add serialization support
2023-02-13 21:08:31 +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
f2a14b2d07 SimulatorTimer: add serialization support 2023-02-13 18:01:16 +01:00
Arne Morten Kvarving
4786deeffc SimulatorTimer: include boost header instead of forwarding
drop the pointer usage which was used to enable forwarding
2023-02-13 17:59:35 +01:00