Markus Blatt
89ec35e0d2
Make BlackoilWellModel::hasTHPConstraints() work correctly in parallel.
...
Previously, this method did not take parallelism into account but just
checked the local wells for the constraints. Depending on the load balancing
of the wells this sometimes led to different return values of the function on different
processors. As the output is used to limit the time step size, different processors
were sometimes using different time steps in their local computations. This screwed
up convergence checks int the nonlinear operator such that only some processor thought
convergence was already achieved while others wanted to do more iterations.
With this commit the method now returns whether there is any well on any processor
with the constraint being true.
2019-01-14 22:14:01 +01:00
Bård Skaflestad
767df6c6fe
Deferred Logger: Support Older MPI Implementations
...
The MPI_Pack() function does not support pointers-to-const until
MPI-3.
2019-01-14 18:10:53 +01:00
Atgeirr Flø Rasmussen
8927df3095
Merge pull request #1705 from fgfuchs/feature_gatherdeferredlogger
...
gather deferredLogger implemented
2019-01-14 14:56:45 +01:00
Markus Blatt
4b6144bb65
Only warn and show parallel logging fallout on demand.
...
This commit adds an option that allows to enable detecting parallel
logging fallout (option --enable-logging-fallout-warning). It is now
false by default (previous behavior was as if the option was true).
If option is true a warning will be printed for any process with nonzero
rank that does try to log to *.PRT or *.DBG and the logged output will be appended
to these files at the end.
2019-01-14 13:06:21 +01:00
Markus Blatt
52270e7ac7
Use uppercase basename for *DBG and *PRT files for any extension.
...
Previously runs of flow started with 'flow base.' Would result in base..DBG
files; note the double dot and the case sensitivity. Now the file will be
BASE.DBG in this case. Note that any extension will be stipped (not only
.DATA as before).
2019-01-14 13:03:03 +01:00
Franz G. Fuchs
70425a681f
style changes
2019-01-14 09:22:17 +01:00
Franz G. Fuchs
f61e55995a
query mpi pack size
2019-01-11 21:23:09 +01:00
Franz G. Fuchs
828c3c7949
fix for variable number of messages
2019-01-11 19:05:11 +01:00
Joakim Hove
848072f658
Merge pull request #1362 from GitPaean/fixing_history_mode
...
Fixing history mode
2019-01-11 18:05:01 +01:00
Franz G. Fuchs
37d691e678
bugfixes
2019-01-11 15:47:22 +01:00
Franz G. Fuchs
5d902c8bd4
removed commented out line
2019-01-11 13:56:58 +01:00
Franz G. Fuchs
831a374d02
gather deferredLogger implemented
2019-01-11 13:53:18 +01:00
Tor Harald Sandve
2d2d0c4433
Adapt to linear solver api from ewoms
2019-01-10 15:50:09 +01:00
Atgeirr Flø Rasmussen
578923f93a
Merge pull request #1685 from GitPaean/sliencing_extra_
...
removing some white spaces.
2019-01-10 14:52:41 +01:00
Atgeirr Flø Rasmussen
601cce155c
Merge pull request #1693 from GitPaean/ignoring_well_no_perf
...
not adding wells without perforations to WellsManager
2019-01-10 14:47:20 +01:00
Kai Bao
affb767017
Merge pull request #1642 from WesselDeZeeuw/AquiferFetkovich
...
Aquifer fetkovich
2019-01-10 13:06:08 +01:00
Atgeirr Flø Rasmussen
9c799b9c97
Merge pull request #1698 from fgfuchs/new-feature-deferredlogger
...
New feature deferredlogger
2019-01-09 07:27:49 +01:00
Kai Bao
a9f40df678
not adding wells without perforations to WellsManager
2019-01-08 14:08:14 +01:00
Andreas Lauser
69e21eec0b
Merge pull request #1684 from andlaus/fix_tabulation_api
...
use the common API opm-material for functions
2019-01-08 13:34:58 +01:00
Franz G. Fuchs
040d576839
Use angle brackets for includes
...
verify that the tagged messages are forwarded correctly
2019-01-08 13:26:19 +01:00
Franz G. Fuchs
5b2a38fee5
doxygen comment
2019-01-08 11:41:19 +01:00
Franz G. Fuchs
c815c56287
new feature: DeferredLogger class
2019-01-08 11:28:18 +01:00
Kai Bao
47b933a58e
removing DynamicListEconLimited
...
it is not used anymore. A lot of related implementation has been moved
to WellTestState.
Its existence makes some logic rather confusing and some new development
not easy.
2019-01-08 11:28:11 +01:00
Kai Bao
60e5a95972
only using Wells for determination of the RESV well
...
One of them is redundant, we do not need both of them.
2019-01-07 12:14:33 +01:00
Joakim Hove
8a9df385af
Add ErrorGuard when parsing
2019-01-07 10:44:33 +01:00
Kai Bao
98450b5aa8
fixing the way in handling the RESV rates for WCONHIST
2019-01-04 15:10:18 +01:00
WesselDeZeeuw
1b5e65eedd
fixing grid_index for AquiferFetkovich
2019-01-03 15:56:55 +01:00
Zeeuw
73445a3055
solves merging conflicts
2019-01-03 13:18:01 +01:00
WesselZ
d6f1f1bd3d
Implementation of Fetkovich Aquifers. Makes changes to the files for BlackOilAquiferModel(_impl) and AquiferFetkovich file.
2019-01-03 13:04:10 +01:00
Kai Bao
bfc915849a
BHP limit is taken care of from parser side
...
WellsManager does not need to provide default bhp limit anymore.
2019-01-03 09:48:02 +01:00
Kai Bao
ecdb299671
handling the RESV well distr calculation correctly
...
more work has been done in the parser side, and the simulator side is
also updated accoridingly.
2019-01-03 09:48:02 +01:00
Kai Bao
9a6f390f38
Merge pull request #1691 from atgeirr/fix-missing-grat
...
Fix missing GRAT in switch.
2019-01-02 21:22:41 +01:00
Atgeirr Flø Rasmussen
9ba0184da4
Merge pull request #1676 from GitPaean/fixing_grid_indices
...
fixing grid_index for AquiferCarterTracy
2019-01-02 15:32:28 +01:00
Atgeirr Flø Rasmussen
10c77257ad
Fix missing GRAT in switch.
2019-01-02 15:29:22 +01:00
Kai Bao
b3f29de675
using compressed cell index for cellToConnectionIdx_ in AquiferCarterTracy
2019-01-02 14:59:12 +01:00
Kai Bao
dcf036e757
removing some white spaces.
2019-01-02 13:39:00 +01:00
Andreas Lauser
868f447f20
use the common API opm-material for functions
...
the way to get the result of an evaluation is by return value, i.e.,
z = fn.eval(x, y);
not by passing a separate argument to the eval() function like
fn.eval(x, y, z);
the `XYTabulated2DFunction` used the latter approach causing an API
inconsistency with all other tabulation classes in
opm-material. OPM/opm-material#319 fixes that but requires this mop-up
as a consequence.
2018-12-20 10:46:22 +01:00
Atgeirr Flø Rasmussen
483d6c50e1
Merge pull request #1681 from atgeirr/fix-shutting-new-well
...
Avoid opening well that was shut on same time step.
2018-12-17 11:47:31 +01:00
Atgeirr Flø Rasmussen
a48fbac322
Merge pull request #1680 from GitPaean/flow_polymw_remake
...
adding the simulator for flow injectivity study
2018-12-17 10:26:41 +01:00
Kai Bao
3a55e4aac2
fixing grid_index for AquiferCarterTracy
...
adding the mapping from cartisian indices to the actual grid indices.
2018-12-14 15:36:49 +01:00
Kai Bao
0c42a179d5
makig StandardWellV can handle producer
...
now StandardWellV should be able to be used as the general Standard
Well.
2018-12-14 10:24:08 +01:00
Atgeirr Flø Rasmussen
b1c16e536b
Avoid opening well that was shut on same time step.
2018-12-14 10:04:59 +01:00
Kai Bao
76edcc0d91
addressing the second part of comments form PR#1680
2018-12-13 21:31:36 +01:00
Kai Bao
c4254240e2
addressing the first part of comments form PR#1680
...
there should be no functional change.
2018-12-13 13:29:59 +01:00
Kai Bao
5535406b67
cleaning StandardWell and StandardWellV
...
to make them more comparable, so that we can do refactoring easier
later.
2018-12-12 15:58:15 +01:00
Kai Bao
525caad508
finishing the function addWellContributions for StandardWellV
2018-12-11 21:40:47 +01:00
Kai Bao
612ac74b89
finish the injecivity functionality
...
the result looks okay
2018-12-11 21:40:47 +01:00
Kai Bao
391d31e1d6
adding the polymer molecular related to the well model
2018-12-11 21:40:47 +01:00
Kai Bao
7923628f83
adding the few injectivity related functions to StandardWellV
2018-12-11 21:40:47 +01:00
Kai Bao
a08216efd5
creating StandardWellV as the new well model
...
to employ dynamic-size Evalution, vectors and matrices.
2018-12-11 21:40:47 +01:00
Kai Bao
b079c0a1e5
adding flow_injecitivity executable target
2018-12-11 21:40:47 +01:00
Kai Bao
e1ede3c9d5
adding polymer molecular weight to BlackoilPhases and phaseUsageFromDeck
2018-12-11 21:31:47 +01:00
Kai Bao
93fb5a2c52
add a few fields related to injectivity to WellStateFullyImplicitBlackoil
...
to account for the water throughput, skin pressure and water velocity
for each perforation.
2018-12-11 21:31:47 +01:00
Atgeirr Flø Rasmussen
56cc37f255
Move throw-if-nan to after storing convergence report.
2018-12-11 13:10:22 +01:00
Tor Harald Sandve
3d866812a6
Merge pull request #1671 from atgeirr/fix-infinite-loop
...
Fix potential infinite loop
2018-12-07 12:41:37 +01:00
Atgeirr Flø Rasmussen
69cd2f9b84
Merge pull request #1668 from totto82/remove_logging
...
Remove repetitive logging info
2018-12-07 10:53:31 +01:00
Atgeirr Flø Rasmussen
cb06770b54
Merge pull request #1638 from trinemykk/addtracer
...
add method for getting the surfacevolume well connection rate
2018-12-07 10:38:21 +01:00
Atgeirr Flø Rasmussen
cf687c19fb
Merge pull request #1571 from kel85uk/fix_#14_aquifer_making_connections
...
Fixes for carter tracy aquifer model
2018-12-07 09:56:36 +01:00
Tor Harald Sandve
77869606f3
Remove repetitive logging info
2018-12-07 09:28:27 +01:00
Atgeirr Flø Rasmussen
23edd39c63
Revise logic of shutting wells vs. chopping step.
...
An infinite loop was possible if no wells were actually shut,
yet the step was restarted with no chopping.
2018-12-03 13:25:19 +01:00
Atgeirr Flø Rasmussen
6b896d178e
Add bool return value to forceShutWellByNameIfPredictionMode().
...
Returns true if the well requested was actually shut.
2018-12-03 13:24:34 +01:00
kel85uk
4ccbfefe0b
Factor out face area calculation to a separate function.
2018-11-29 09:43:55 +01:00
kel85uk
875fec79fc
Makes the necessary interface changes to check for nullptr instead of values for the influx_coeff and aquifer initial pressure.
2018-11-29 07:56:53 +01:00
Kai Bao
575907941d
removing some repeated code in phaseUsageFromDeck
2018-11-27 14:55:26 +01:00
Arne Morten Kvarving
51da91c1ad
remove files moved to opm-simulators-legacy
2018-11-27 11:00:21 +01:00
Atgeirr Flø Rasmussen
b6f8128260
Merge pull request #1661 from akva2/removeBlackoilStateCorr
...
Remove usage of BlackoilState class
2018-11-27 10:14:06 +01:00
Tor Harald Sandve
b661791a63
Remove usage of BlackoilState class
...
This allows (re)moving of the following files
opm/autodiff/RateConverter.hpp
opm/autodiff/Compat.cpp
opm/autodiff/Compat.hpp
opm/core/props/BlackoilPropertiesInterface.hpp
opm/core/simulator/BlackoilState.cpp
opm/core/simulator/BlackoilState.hpp
opm/core/simulator/BlackoilStateToFluidState.hpp
opm/core/utility/initHydroCarbonState.hpp
opm/polymer/PolymerBlackoilState.cpp
opm/polymer/PolymerBlackoilState.hpp
tests/test_blackoilstate.cpp
2018-11-27 09:38:38 +01:00
Atgeirr Flø Rasmussen
7e91381cd8
Fix another parallel bug.
...
A WellSwitchingLogger was created in a local context (meaning not
all processes might be there), but since its destructor does
communication it must be called in a global context (guaranteeing
that all processes create it).
2018-11-26 10:21:25 +01:00
Atgeirr Flø Rasmussen
09405ce6f5
Fix bug in parallel case.
...
Since computeAverageFormationFactor() involves communication to reduce
values across the whole reservoir, it must be called by all processes,
also those with no wells to reopen.
2018-11-26 09:39:54 +01:00
Kai Bao
76271e3960
not shut a well because of cannot-produce-inject reason
...
which is a numerical reason. Removing it for now for better result.
It minght come back with more complete strategy and understanding.
2018-11-25 20:31:56 +01:00
Kai Bao
3dac7266b0
typo correction and message output adjustment for WTEST
...
recovering the const for updateWellStateWithTarget
there is no functional change.
2018-11-25 20:31:56 +01:00
Kai Bao
680c45b8f8
not updateWellControl for non-operable wells
2018-11-25 20:31:56 +01:00
Kai Bao
eaa3ad19f5
first version of the well testing for physical reason
...
the key difficulty is that we do not have reliable explicit information
to do the testing.
In this version, we try to obtain the explicit information by finishing
one converged solving.
2018-11-25 20:31:56 +01:00
Atgeirr Flø Rasmussen
48db4062b5
Count lower/upper entries simpler and faster.
2018-11-23 21:38:22 +01:00
Atgeirr Flø Rasmussen
8a038401ce
Avoid in-loop allocation in convertToCRS().
...
This is done by counting entries first.
2018-11-23 21:38:22 +01:00
Atgeirr Flø Rasmussen
8bd3cbc1c1
Only shut down wells if under prediction-type control.
2018-11-23 12:51:13 +01:00
Atgeirr Flø Rasmussen
1979fc8f5d
Avoid deep chopping by shutting down misbehaving wells.
2018-11-22 16:24:52 +01:00
Atgeirr Flø Rasmussen
422d477945
Add method BlackoilWellModel::forceShutWellByName().
2018-11-22 16:24:17 +01:00
Atgeirr Flø Rasmussen
3bbc13a9ce
Add step numbers to convergence reports, add query method.
2018-11-22 11:14:39 +01:00
Atgeirr Flø Rasmussen
9167d08839
Limit timestep when we have THP constraints present.
...
Using 16 days as the current limit. Could be made a user parameter.
2018-11-22 11:03:18 +01:00
Kai Bao
7d721408f2
adding canProduceInjectWithCurrentBhp to StandardWell
...
and use it the operability_status determination.
2018-11-22 07:05:46 +01:00
Kai Bao
f9988057af
fixing comments from review of PR#1648
...
there should be no functional change
2018-11-20 13:56:14 +01:00
Kai Bao
8330c3a6a7
adjusting OperabilityStatus of WellInterface
...
hopefully, it improves the readability
2018-11-20 13:56:14 +01:00
Kai Bao
bf9b5367d9
some cleaning up, no functional changes
2018-11-20 13:56:14 +01:00
Kai Bao
90f805bf3e
we need to open the cross-flow to solve the sigularity
...
if a well is banned from cross-flow. When it is under RATE control, its
BHP might be initialized in way causing all the drawdown in the wrong
direction. It will cause singular well equations.
here, we open the croff-flow to fix the singularity and rely on Newton
iteraton to get desired result.
possible alternative approach is to adust the BHP to avoid the situation
that all the drawdown are in the wrong direction.
2018-11-20 13:56:14 +01:00
Kai Bao
bba373c0b5
THP control tolerance changed to 1.e4
...
to fix some convergence problem.
2018-11-20 13:55:34 +01:00
Kai Bao
c994a99583
WCON keyword can open a well closed due to physical reason
...
more tests will be required to figure out more accurate specific way to
open a well closed due to physcal reason with WCON input.
2018-11-20 13:55:34 +01:00
Kai Bao
30742112c6
switching to BHP limit when THP limit is not operable
...
a well is specified with THP target, while it can not work under its THP
target. For this case, we will switch to its BHP limit.
2018-11-20 13:55:34 +01:00
Kai Bao
8e17d4aeba
shut/close well based on physical limits
2018-11-20 13:55:34 +01:00
Kai Bao
ea42d1de9d
adding function isOperable() to WellInterface
...
to indicate if the well is operable.
2018-11-20 13:55:34 +01:00
Kai Bao
ae3b514e0b
not switching to THP/BHP limit when not operable under them
2018-11-20 13:54:45 +01:00
Kai Bao
5204bbe4ca
adding function checkWellOperatability() to StandardWell
...
it includes BHPLimit check, THPlimit check, and also to see whether if
the well can produce/inject in the correct direction.
2018-11-20 13:54:45 +01:00
Kai Bao
dbe047a8a5
adding function operabilityCheckingUnderTHP to VFPProdProperties
...
To test the operability under THP limit.
2018-11-20 13:54:21 +01:00
Kai Bao
b27dc3ec2e
stopping use function crossflowAllowed()
...
it turns on the crossflow when all the drawdown in the wrong direction,
then the well get rates in the wrong direction.
flow is not ready to handle this type of situation, then the only result
will be chopped time step.
2018-11-20 13:54:21 +01:00
Kai Bao
2e43b440e0
adding OperabilityStatus to WellInterface
...
to check the operability status of a well.
2018-11-20 13:54:21 +01:00
Trine S Mykkeltvedt
9fa2c09783
add method for getting the surfacevolume well connection rate
...
changed wellpointer from unique to shared to make it accecible from outside the wellmodel
add method for surfacevolume well connection rate
2018-11-20 08:59:50 +01:00
Atgeirr Flø Rasmussen
83ce1eb919
Ensure all residuals are checked for convergence.
...
Looping over all components instead of phases, to handle polymer etc.
correctly. Also slight refactoring of how component names for output
are handled.
2018-11-19 14:46:31 +01:00
Atgeirr Flø Rasmussen
b42165b560
Store convergence reports from all steps and iterations.
2018-11-19 11:48:07 +01:00
Atgeirr Flø Rasmussen
fe79a9fc07
Refactor getConvergence() to use ConvergenceReport.
...
Note: the communication and reduction for computing reservoir
convergence is not done by gathering ConvergenceReports, but
as before, using the convergenceReduction() method.
2018-11-19 11:48:07 +01:00
Atgeirr Flø Rasmussen
c006ea23f2
Merge pull request #1651 from totto82/speed_up_add_cell_rates
...
Speed up add cell rates
2018-11-19 10:49:19 +01:00