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
Tor Harald Sandve
9903738690
Avoid copying of SummaryConfig
2018-11-19 09:41:00 +01:00
Tor Harald Sandve
54e33a00d2
Only update intensiveQuantities for perforated cells
2018-11-19 09:41:00 +01:00
Tor Harald Sandve
3a38b9fe53
Move addCellRates to interface and add is_cell_penetrated
2018-11-19 09:41:00 +01:00
Atgeirr Flø Rasmussen
b5cb7bb829
Merge pull request #1644 from GitPaean/fixing_control_initialization
...
using control in DECK to initialize the control in WellState
2018-11-16 15:38:22 +01:00
Arne Morten Kvarving
f027262ec4
remove files
2018-11-16 14:53:37 +01:00
Kai Bao
7ded0907fe
using control in DECK to initialize the control in WellState
...
otherwise, it might not be initialized if the well does not exisit in
previous well state, which will result in undefined behavoir.
it causes failure in running some realizations.
2018-11-16 13:47:43 +01:00
Arne Morten Kvarving
78158bf44a
Merge pull request #1643 from atgeirr/legacy-split-work
...
Avoid using legacy stuff for ebos linear solvers.
2018-11-16 13:29:24 +01:00
Atgeirr Flø Rasmussen
92a9b5fa9b
Avoid using legacy stuff for ebos linear solvers.
2018-11-16 12:06:12 +01:00
Arne Morten Kvarving
fb7bdffbc7
fixed: signed/unsigned warnings
2018-11-16 08:48:53 +01:00
Kai Bao
b2be13ced4
changing std::cout to OpmLog with VFPProdProperties
...
for better output of information.
2018-11-15 11:46:22 +01:00
Kai Bao
76a3f2a1f5
adding function updateWellStateWithTHPTargetIPR()
...
this function can update the well state related based on the inflow
perfomance relationship and THP target.
2018-11-15 11:46:22 +01:00
Kai Bao
eeae6aa4fc
adding two THP control related fucntions to WellInterface
...
getTHPConstraint() and getTHPControlIndex();
2018-11-15 11:46:22 +01:00
Kai Bao
01efbc639c
adding function underPredictionMode() to WellInterface
...
to indicate whether a well is under prediction mode.
2018-11-15 11:46:22 +01:00
Kai Bao
9bfa39224f
re-organize the interface of function findIntersectionForBhp()
...
hopefully, make it easier to use.
and also, there is no mistake introduced.
2018-11-15 11:46:22 +01:00
Kai Bao
8445c802c0
adding function calculateBhpWithTHPTarget to VFPProdProperties
...
it calculate bhp value based on THP target/limit, VFP curves and
inflow-performance relationship
2018-11-15 11:46:22 +01:00
Kai Bao
9b5e25ae0f
function to calculate bhp from thp through intersection
...
of VFP curves and IPR relationship.
Some small adjustment of the interface will be done later.
2018-11-15 11:46:22 +01:00
Kai Bao
32b8e79eae
adding function updateIPR() to StandardWell
2018-11-15 11:46:22 +01:00
Atgeirr Flø Rasmussen
0761850e7a
Merge pull request #1637 from OPM/fix-gather-convergemcereport-for-openmpi
...
Make MPI calls in gatherConvergenceReport with void*.
2018-11-15 11:04:35 +01:00
Markus Blatt
8cafb0e92a
Make MPI calls in gatherConvergenceReport with void* instead of const void*
...
Fixes compilation of PR #1612 with open-mpi 1.6.5.
Compiler complained about not being able to transform const void* to void*
as needed by MPI.
2018-11-15 09:30:51 +00:00
Atgeirr Flø Rasmussen
5e51d6982b
Add missing includes.
2018-11-14 21:09:40 +01:00
Atgeirr Flø Rasmussen
258c019989
Merge pull request #1617 from andlaus/sparse_matrix_abstraction
...
Sparse matrix abstraction
2018-11-14 16:14:00 +01:00
Andreas Lauser
e110fac52a
Merge pull request #1633 from akva2/rogue_and_unwanted
...
Remove some rogue includes and unwanted opm/autodiff/GridHelpers.hpp usage
2018-11-14 16:00:30 +01:00
Atgeirr Flø Rasmussen
db8c00db00
Merge pull request #1632 from akva2/use_istl_ebos
...
Use ebos ISTL class
2018-11-14 15:44:26 +01:00
Arne Morten Kvarving
fe8adb51d8
remove rogue includes
2018-11-14 15:37:44 +01:00
Arne Morten Kvarving
023924d057
changed: use UgGridHelpers directly
...
GridHelpers.hpp will be moved
2018-11-14 15:37:44 +01:00
Andreas Lauser
f58f5d3c7a
MPIUtilities.hpp: include required header file
2018-11-14 14:36:11 +01:00
Andreas Lauser
d5089076d9
ISTLSolver: add now-necessary include
2018-11-14 14:35:52 +01:00
Andreas Lauser
f9104ca3d7
adapt to the eWoms interface for abstracting sparse matrices
2018-11-14 14:35:52 +01:00
Andreas Lauser
46641d5ace
move the MatrixBlock class and assorted code to its own header
...
this avoids recompiles if something changes in ewoms because
ISTLSolver.hpp included ISTLSolverEbos.hpp . also, it is better style.
2018-11-14 14:35:52 +01:00
Kai Bao
bf967e50a7
adding hasTable() method to the VFP properties
...
and give a clear message about non-accessible table ID in the function
isVFPActive() in WellInterface.
2018-11-14 14:29:28 +01:00
Kai Bao
cf2eb1c336
remove a useless #if HAVE_OPENMP in BlackoilWellModel
2018-11-14 12:47:49 +01:00
Kai Bao
5a5c1bfcd3
addressing review comments from PR 1622
2018-11-14 12:45:41 +01:00
Arne Morten Kvarving
911a89fc4c
fixed: use the ebos ISTL class
...
to avoid legacy code in tests that will sit in this repo
2018-11-14 12:27:39 +01:00
Kai Bao
afcdbcf202
detecting the NAN and INF values during VFP calculation
...
and give warning messages when they happen, since they can be the
culprits of the termination of simulation later.
For ADB related, I did not find a good way to do the detection, so there
is no warning message given.
2018-11-14 11:35:44 +01:00
Kai Bao
32b00b61f8
updating the thp value if VFP table is valid
...
through function isVFPActive().
2018-11-14 11:27:00 +01:00
Kai Bao
0d1a4b2d13
adding function isVFPActive() for WellInterface
...
Even the well does not have a THP target/constraint, but if it is
specified with a valid VFP table, we are supposed to update the thp
value for output purposes.
2018-11-14 11:27:00 +01:00
Atgeirr Flø Rasmussen
49a7773b30
Merge pull request #1630 from akva2/split_vfp
...
Split VFP classes in ebos and legacy
2018-11-14 11:04:05 +01:00
Arne Morten Kvarving
c5ae3adbbf
changed: split VFP classes in base (ebos) and legacy
...
to get rid of eigen usage in ebos based classes
2018-11-14 09:54:33 +01:00
Atgeirr Flø Rasmussen
e1e39b4bd9
Merge pull request #1626 from GitPaean/fixing_different_number_of_wells_due_to_wtest
...
fixing different well number between Wells and Well_containers
2018-11-14 09:37:09 +01:00
Atgeirr Flø Rasmussen
54cc52dcaf
Merge pull request #1629 from akva2/remove_rogue_includes
...
remove two rogue includes
2018-11-14 09:06:13 +01:00
Arne Morten Kvarving
e8c2029166
remove two rogue includes
...
motivation: getting rid of BlackoilPropsAdFromDeck in ebos code path
2018-11-14 08:35:21 +01:00
Atgeirr Flø Rasmussen
8d2bc0e449
Add missing include for std::vector.
2018-11-13 20:26:44 +01:00
Kai Bao
8f56634b69
fixing different well number between Wells and Well_containers
...
when the solveWellEq did not get converged.
2018-11-13 20:01:38 +01:00
Atgeirr Flø Rasmussen
58642254e0
Merge pull request #1624 from akva2/split_mpi_func
...
split mpi function from newtoniterationutilities
2018-11-13 19:21:56 +01:00
Arne Morten Kvarving
e0a9e13a97
split mpi function from newtoniterationutilities
2018-11-13 15:26:44 +01:00
Kai Bao
2ed2c20f12
Merge pull request #1623 from atgeirr/use-convergencereport-gather
...
Use gatherConvergenceReport() in BlackoilWellModel.
2018-11-13 15:16:34 +01:00
Atgeirr Flø Rasmussen
d858f2901a
Merge pull request #1614 from totto82/well_ppp
...
Output of well potential when asked for
2018-11-13 14:29:58 +01:00
Atgeirr Flø Rasmussen
446dbdf86d
Use gatherConvergenceReport().
...
This avoids multiple all-reduce blocks, simplifying the code and
enabling us to return the report from getWellConvergence().
2018-11-13 14:02:55 +01:00
Atgeirr Flø Rasmussen
6e7cc756de
Move implementation of gatherConvergenceReport() to cpp file.
...
No templates involved, no reason to keep it in header. This also makes
building more robust by only invoking HAVE_MPI in the cpp file, after
including config.h.
2018-11-13 14:01:01 +01:00
Atgeirr Flø Rasmussen
566f6813dd
Created gatherConvergenceReport() function and test.
2018-11-13 10:30:32 +01:00