Andreas Lauser
ac2bc410f3
adapt to the fluid system naming convention change in opm-material
...
note that almost the only thing which is affected is legacy code.
2018-07-27 12:54:02 +02:00
Markus Blatt
019835b123
Added support for red-black ordering to ILUn.
2018-07-20 14:43:40 +02:00
Markus Blatt
865a690243
Allow usage of red-black ILU0.
...
We introduced two runtime parameters for this: ilu_redblack and
ilu_reorder_spheres. If the last one is false, we try to preserve
the ordering within in the colors. Otherwise we try to achieve a D2
(alternative diagonal) ordering.
2018-07-20 14:43:40 +02:00
Markus Blatt
190272e21d
Added two alternatives for reordering based on colors
2018-07-20 14:43:40 +02:00
Markus Blatt
3953b20215
Also return the number of vertices for each color from Welsh-Powell-Algorithm.
2018-07-20 14:43:40 +02:00
Markus Blatt
a1650a58f4
Added Welsh Powell graph coloring
2018-07-20 14:43:40 +02:00
Markus Blatt
43c1714478
Added various other variants of MILU.
...
These versions are inspired by the ones used in SuperLU and the enums
to choose them have simuilar names, but without leading S (MILU_1-MILU_3).
The following variants are supported (chosen by the enum MILU_VARIANT):
ILU: plain ILU
MILU_1: lump diagonal with dropped row entries.
MILU_2: lump diagonal with the sum of the absolute values of the dropped row
entries.
MILU_3: if diagonal is positive add sum of dropped row entrires. Otherwise substract them.
MILU_4: if diagonal is positive add sum of dropped row entrires. Otherwise do nothing
2018-07-20 14:43:40 +02:00
Markus Blatt
63058559bc
Added various other variants of MILU.
...
These versions are inspired by the ones used in SuperLU and the enums
to choose them have simuilar names, but without leading S (MILU_1-MILU_3).
The following variants are supported (chosen by the enum MILU_VARIANT):
ILU: plain ILU
MILU_1: lump diagonal with dropped row entries.
MILU_2: lump diagonal with the sum of the absolute values of the dropped row
entries.
MILU_3: if diagonal is positive add sum of dropped row entrires. Otherwise substract them.
MILU_4: if diagonal is positive add sum of dropped row entrires. Otherwise do nothing
2018-07-20 14:42:46 +02:00
Markus Blatt
e0a138e23c
[MILU] Add dropped elements only to diagonal.
...
We did add the dropped matrix blocks to the diagonal blocks,
but this is not MILU where oone only modifies the diagonal.
With this patch we fix this behaviour and now only modify the
diagonal of the diagonal block.
2018-07-20 14:42:46 +02:00
Markus Blatt
0bae240a42
Allow user to choose modified ILU0 decomposition.
...
Using the parameter ilu_milu=true|false (default=false) the user can now choose
to use the modified ILU0 decomposition. If selected values will
not be dropped for nonzero entries but added to the diagonal of U.
This approach will result in A*e = L*U*e for vector e with all entries
beging 1.
2018-07-20 14:42:46 +02:00
Markus Blatt
e1e289dc1e
Added MILU0 decomposition
2018-07-20 14:42:46 +02:00
Arne Morten Kvarving
1b44ba751a
FlowMainEbos: only need the interface for blackoil newton iterations
2018-07-12 11:39:31 +02:00
Arne Morten Kvarving
57ddd9dc05
FlowMainEbos: remove unused includes
2018-07-12 10:12:13 +02:00
Arne Morten Kvarving
ab4d0e63af
BlackOilModelEbos: remove unused include
2018-07-12 10:12:13 +02:00
Andreas Lauser
7f8120d609
flow: do not set the ExportGlobalTransmissibility property anymore
...
this has not been required anymore since the output code was moved to
the ebos core.
2018-07-11 13:49:17 +02:00
Arne Morten Kvarving
4fe6ac5bab
Merge pull request #1531 from andlaus/better_well_API
...
use a raw pointer to specify the auxiliary module for wells
2018-07-10 13:26:33 +02:00
Joakim Hove
b4fa06f305
Mark keyword ACTIONX as not supported
2018-07-10 09:37:25 +02:00
Andreas Lauser
ccd0da2e4c
use a raw pointer to specify the auxiliary module for wells
...
this is necessiated by the replacement of `std::shared_ptr` by raw
pointers for the eWoms auxiliary equation infrastructure. Note that by
default `flow` will *not* create an auxiliary equation module because
it modifies the operator that is used by the linear solver instead.
2018-07-09 12:14:43 +02:00
Tor Harald Sandve
4a2780d161
split close wells from close connection
2018-07-03 15:13:30 +02:00
Tor Harald Sandve
a5f5581441
Fix more minor issues based on review
2018-07-03 14:07:53 +02:00
Tor Harald Sandve
6606bb75b2
Minor fix based on code review
2018-06-29 13:33:56 +02:00
Tor Harald Sandve
d769e7649a
Name completion and connection consistently
2018-06-28 13:47:10 +02:00
Tor Harald Sandve
834f680587
Add support for COMPLUMP in WECON and WTEST
2018-06-28 13:28:30 +02:00
Tor Harald Sandve
22755cc257
Add support for combination of multi-segmented wells and WTEST
2018-06-28 10:16:29 +02:00
Tor Harald Sandve
3e53ed6386
implement WTEST support
2018-06-28 10:16:29 +02:00
Joakim Hove
7568ec0f90
Merge pull request #1519 from joakim-hove/completion-refactor
...
Completion refactor
2018-06-28 09:58:51 +02:00
Andreas Lauser
c794028bcf
flow: fix the time held by the simulator object
2018-06-27 12:13:50 +02:00
Joakim Hove
514cdc574c
Completion refactor
2018-06-26 12:30:54 +02:00
Atgeirr Flø Rasmussen
576612c4b2
Rename .CASE.DEBUG -> CASE.DBG.
2018-06-25 22:22:29 +02:00
Alf Birger Rustad
e72ef6bcc7
Reduce default number of threads from four to two with OpenMP
2018-06-24 21:51:04 +02:00
Joakim Hove
06149a3b05
Merge pull request #1500 from joakim-hove/rename-completion-set
...
Refactor of connections & completions
2018-06-21 08:13:56 +02:00
Joakim Hove
94d57f686c
Refactor of connecrions & completions
2018-06-20 11:51:00 +02:00
Tor Harald Sandve
a255f8cc6f
Merge pull request #1497 from andlaus/pass_async_output_param
...
Pass the async_output parameter to core ebos
2018-06-20 10:38:14 +02:00
Markus Blatt
1bd735428f
Deactivate selection of CPR via eclipse keyword
...
as this preconditioner is still considered experimental
and fails miserably for some models. Users can select
CPR using the command line.
2018-06-15 15:34:01 +02:00
Andreas Lauser
830c119362
Pass the async_output to core ebos
...
this was forgotten when moving the output writing code into the ebos
core. (this does not really matter for most people because
asynchronous output is wanted anyway and it was unconditionally
enabled.)
2018-06-15 11:44:07 +02:00
Joakim Hove
bd57d574d3
Rename Completion -> Connection
2018-06-11 17:23:28 +02:00
Andreas Lauser
5a9b81db33
remove the hasDisgas and hasVapoil arguments from SimulatorFullyImplicitBlackoilEbos
...
They seemed to be unused already. I suspect that were only there for
API compatibility reasons.
2018-06-06 10:59:42 +02:00
Andreas Lauser
37b6a540af
remove BlackoilOutputEbos
...
after the actual output writing code has been moved to core ebos, this
was just a unnecessary glue layer for API compatibility.
2018-06-06 10:59:41 +02:00
Andreas Lauser
dfbc24b35f
flow: avoid wrangling around with dummy state objects
...
these objects are only used by flow_legacy, so not having to deal with
them anymore lets non-legacy flow avoid to jump through a lot of hoops
for the sake of having a common API.
this required a fork of the NonlinearSolver and AdaptiveTimeStepping
classes. this is not a problem because the original classes would get
pruned to look like the new ones once flow_legacy gets moved out of
the opm-simulators module.
2018-06-06 10:59:41 +02:00
Kai Bao
1b587fa118
removing some whitespaces
2018-06-05 09:24:50 +02:00
kel85uk
e560242a19
Resolved conflicts by taking changes from pull request
2018-06-04 16:33:34 +02:00
kel85uk
1237724c9a
Cleans up the BlackoilModelEbos.hpp file to address the final comments.
2018-06-04 15:28:58 +02:00
kel85uk
963d42aab3
Corrects the whitespace again for blackoilmodelebos.hpp
2018-06-04 15:28:57 +02:00
kel85uk
b7fbe66c91
Cleans up the Aquifer model classes.
2018-06-04 15:28:56 +02:00
kel85uk
2fe24e16cf
Adds the influx coefficient multipler to the face area fraction calculation. Also removes more unnecessary variables and reordered initialization list to prevent ordering warnings in gcc compiler
2018-06-04 15:28:54 +02:00
kel85uk
1a33e81d9c
Cleans up the code and removes unused functions
2018-06-04 15:28:53 +02:00
kel85uk
0df51a8797
Implements the correct check for aquifer face connections to make sure face is connected to the boundary
2018-06-04 15:28:52 +02:00
kel85uk
d8f8646452
Removes Eigen from interpolation of influence tables
2018-06-04 15:28:51 +02:00
kel85uk
e2513038c4
Implemented initialization procedure.
2018-06-04 15:28:49 +02:00
kel85uk
89255da464
Working aquifer object with equations implemented. Still need to do initialization solve.
2018-06-04 15:28:48 +02:00
kel85uk
ac7204fb2b
Working and building skeleton which works for multiple aquifers. Also gets the properties of the aquifers using AQUCT keyword.
2018-06-04 15:28:47 +02:00
kel85uk
5a87818bb2
First addition of the class BlackoilAquiferModel.
2018-06-04 15:28:46 +02:00
Tor Harald Sandve
e128dc7e87
Merge pull request #1478 from GitPaean/adding_control_equations
...
Adding well control equations
2018-06-04 15:12:31 +02:00
Kai Bao
477740ca38
introducing aquiferActive() to reduce of the overhead
...
for the models that does not include a aquifer model.
2018-05-31 09:51:54 +02:00
Kai Bao
cb9fea6ba0
changing GTotal to WQTotal for StandardWell
2018-05-30 15:44:05 +02:00
kel85uk
677255055d
Cleans up the BlackoilModelEbos.hpp file to address the final comments.
2018-05-30 14:26:07 +02:00
kel85uk
e99fb80ce3
Corrects the whitespace again for blackoilmodelebos.hpp
2018-05-30 14:21:32 +02:00
kel85uk
7f2c2444f0
Cleans up the Aquifer model classes.
2018-05-30 14:21:30 +02:00
kel85uk
2170a00b21
Adds the influx coefficient multipler to the face area fraction calculation. Also removes more unnecessary variables and reordered initialization list to prevent ordering warnings in gcc compiler
2018-05-30 14:21:28 +02:00
kel85uk
8d3d7ccc2f
Cleans up the code and removes unused functions
2018-05-30 14:21:24 +02:00
kel85uk
ec680664fd
Implements the correct check for aquifer face connections to make sure face is connected to the boundary
2018-05-30 14:21:22 +02:00
kel85uk
0d55b7aace
Removes Eigen from interpolation of influence tables
2018-05-30 14:21:21 +02:00
kel85uk
7e1bb457cd
Implemented initialization procedure.
2018-05-30 14:21:19 +02:00
kel85uk
5ca8bb676d
Working aquifer object with equations implemented. Still need to do initialization solve.
2018-05-30 14:21:17 +02:00
kel85uk
ae22d18e20
Working and building skeleton which works for multiple aquifers. Also gets the properties of the aquifers using AQUCT keyword.
2018-05-30 14:21:14 +02:00
kel85uk
10e896fa6b
First addition of the class BlackoilAquiferModel.
2018-05-30 14:21:10 +02:00
Joakim Hove
e09c86c5bf
Mark keyword GNETINJE as not supported
2018-05-29 16:48:55 +02:00
Kai Bao
53ab8bc132
lowering the singular limit for the invertMatrix function.
...
to avoid failure due to singularity detection.
2018-05-29 09:36:55 +02:00
Kai Bao
97c51a7d02
addressing some comments
...
and handle the situation that a non-zero target specified for a
non-producing phases. We set the rates to zero for this case.
2018-05-28 16:05:02 +02:00
Kai Bao
ce849fe18e
adding a fix for the zero rate control for StandardWell
...
to avoid under-determined problem.
2018-05-28 16:05:02 +02:00
Kai Bao
efbac8a628
adding function updateThp() to StandardWell
...
hopefully, to improve the readability.
2018-05-28 16:05:02 +02:00
Kai Bao
f3f096dbbb
recovering some unecessary changes.
...
PR #1477 introduced different ways to improve the WellState initialization.
Basically, the WellState initialization will be something challenging to
handle along with the improvement of the well model.
2018-05-28 16:05:02 +02:00
Kai Bao
18917b81f4
adding THP well control equation
2018-05-28 16:05:02 +02:00
Kai Bao
b2bace449e
adding function processFractions()
...
to reduce the length of the function updatePrimaryVariablesNewton()
2018-05-28 16:05:02 +02:00
Kai Bao
e2e24ec355
adding the checking of tolerance of well control equation
2018-05-28 16:05:02 +02:00
Kai Bao
179a03144f
more bug fixing
...
mainly to recover the runnign related to group control example
2018-05-28 16:05:02 +02:00
Kai Bao
1d218d2fe4
small bug fixes.
2018-05-28 16:05:02 +02:00
Kai Bao
3b70f5004f
adding assembleControlEq to StandardWell
...
solvent model needs to be handled for the injector control.
2018-05-28 16:05:02 +02:00
Kai Bao
62947c85b9
updating updatePrimaryVariablesNewton with new primary variables.
2018-05-28 16:05:02 +02:00
Kai Bao
6066884a3d
refactoring updateWellState in StandardWell to be two functions
...
for other use.
2018-05-28 16:05:02 +02:00
Kai Bao
eb851b6580
adding BHP to the primary variables for StandardWell
2018-05-28 16:05:02 +02:00
Joakim Hove
a0538ff4bb
Merge pull request #1470 from joakim-hove/use-restart-value
...
Use RestartValue when saving eclipse output
2018-05-18 08:58:28 +02:00
Joakim Hove
c76898d0c9
Use RestartValue when saving eclipse output
2018-05-15 16:56:03 +02:00
Tor Harald Sandve
2534cc46db
WIP fix vfp in flow
2018-05-15 10:24:50 +02:00
Andreas Lauser
483e04c5da
Merge pull request #1471 from totto82/implement_blackoil_energy_PR
...
Add blackoil + energy specialization to Flow
2018-05-08 11:30:12 +02:00
Kai Bao
45023f304e
Merge pull request #1465 from atgeirr/fix-ilu-serial
...
Make sure we (re-)throw MatrixBlockError also in the serial case.
2018-05-08 10:39:15 +02:00
Tor Harald Sandve
54c8a48481
code clean-up based on review
2018-05-08 10:22:47 +02:00
Tor Harald Sandve
f00ad22d98
Fix thermal debug run
2018-05-02 09:15:52 +02:00
Tor Harald Sandve
ee88790dea
Add a flow specialization for blackoil with energy conservation
...
The energy conservation is enabled by specifying either TEMP or
THERMAL in the deck. The deck also needs to contatin relevant fluid and rock
heat properties.
The blackoil + energy equations are solved fully implicit.
2018-04-30 13:45:18 +02:00
Tor Harald Sandve
dee7d97b8f
Merge pull request #1464 from totto82/fixilu
...
keep using the block inversion algorithm in OPM
2018-04-24 15:18:17 +02:00
Atgeirr Flø Rasmussen
f9c1fbcbe6
Make sure we (re-)throw MatrixBlockError also in the serial case.
2018-04-24 14:32:43 +02:00
Tor Harald Sandve
f66fb298db
keep using the block inversion algorithm in OPM
2018-04-24 11:25:33 +02:00
Joakim Hove
e012363abc
Merge pull request #1462 from GitPaean/fixing_vfp_running_2
...
adapting to the interface change of VFP related in parser.
2018-04-23 16:30:11 +02:00
Joakim Hove
8965fc3138
Merge pull request #1460 from lars-petter-hauge/restart_timestep
...
Only load wells that have simulated data
2018-04-23 12:21:58 +02:00
Arne Morten Kvarving
25fda55778
bring banners into the new ssl enabled world
2018-04-20 11:31:15 +02:00
Kai Bao
78cc2b8ca4
adapting to the interface change of VFP related in parser.
2018-04-20 11:29:22 +02:00
Lars Petter Øren Hauge
0ea2b9afe2
Only load wells that have simulated data
...
Wells that are added at the same time step as RESTART is initiated will
not be present in a restart file. Use the previous time step to retrieve
wells
2018-04-17 14:09:11 +02:00
Arne Morten Kvarving
fddad72a3e
fixed: quell signed/unsigned comparison warning
2018-04-13 11:25:10 +02:00
Atgeirr Flø Rasmussen
63dabb4777
Merge pull request #1450 from GitPaean/update_VFP_related
...
adapting to the change related to VFP from the parser.
2018-04-12 11:20:21 +02:00
Kai Bao
ed49fd1e88
adapting to the change related to VFP from the parser.
2018-04-11 09:22:52 +02:00
Andreas Lauser
55093b4918
adapt to the removal of the ewoms/aux
directory
2018-04-10 10:17:31 +02:00
Arne Morten Kvarving
e163c97fc2
Merge pull request #1441 from totto82/fix_co2case
...
Some minor fixes to RESV and initial well composition
2018-04-09 14:30:41 +02:00
Andreas Lauser
3924bb1e6e
explicitly disable all extensions supported by black oil model for the base simulator
...
this should not really be necessary because they are supposed to be
disabled by default, but it makes things a bit more explicit
2018-04-06 11:01:33 +02:00
Atgeirr Flø Rasmussen
9897ae361e
Merge pull request #1428 from totto82/relax_convergence
...
Add option for relaxed CNV tolerance
2018-04-04 16:38:47 +02:00
Atgeirr Flø Rasmussen
ce308455ab
Merge pull request #1433 from totto82/fix_reportStep
...
Add reportStep method in SimulatorReport and use it
2018-04-04 15:23:01 +02:00
Atgeirr Flø Rasmussen
4f39cdc9c9
Merge pull request #1439 from GitPaean/silencing_warning_extra_
...
silencing warning related to extra ; from BlackoilAmg
2018-04-04 14:32:18 +02:00
Atgeirr Flø Rasmussen
482c63e274
Merge pull request #1446 from GitPaean/removing_flowmainpolymer
...
Removing flowmainpolymer
2018-04-04 14:30:37 +02:00
Kai Bao
87b3cccd7f
removing WPIMULT from MissingFeatures
2018-04-03 11:11:25 +02:00
Kai Bao
7eaaae3906
removing FlowMainPolymer.hpp
2018-04-03 11:08:25 +02:00
Joakim Hove
5629b9b422
Mark LGR related keywords as unsupported
2018-04-03 09:40:36 +02:00
Steinar Foss
a931901374
Made changes to comply w/ removal of MessageContainer.
2018-03-26 12:13:55 +02:00
Tor Harald Sandve
4e9403b8f8
Correct the RESV calculation for unsaturated cases
...
Make sure that the reservoar volumes always stays positive. i.e. we can
not remove more dissolved gas from the rate than the total volume amout
of gas.
2018-03-23 15:23:47 +01:00
Tor Harald Sandve
975a9a6766
Fix intial fluid distribution in the well
...
Solve the well equation in order to determine the initial fluid content
of the well used for the hydrostatic pressure calculation in the well.
2018-03-23 12:56:19 +01:00
Kai Bao
90e69b59cf
silencing warning related to extra ; from BlackoilAmg
2018-03-14 12:02:07 +01:00
Andreas Lauser
a42ece61ed
BlackoilModelEbos: set the default output directory to the empty string
...
an empty string is interpreted as "write the output files into the
same directory as the input". this is the current 'flow' default
behavior, plain ebos uses "." as the default location for output,
i.e., the current directory from which the simulator is run from.
2018-03-12 15:17:39 +01:00
Andreas Lauser
71d353326a
move the old "ThreadHandle" mechanism back to opm-simulators
...
this class is only used by the legacy simulators, `flow` uses the
`EclWriter` class provided by eWoms. In turn, this class uses the
new-and-shiny "tasklet" mechanism.
2018-03-12 15:17:39 +01:00
Tor Harald Sandve
7c9dab1a64
Add reportStep method in SimulatorReport and use it
2018-03-12 14:48:34 +01:00
Tor Harald Sandve
15aeac3f90
Add option for relaxed CNV tolerance
...
Use a relaxed tolerance for individual cells (CNV) when iter >
max_strict_iter.
tolerance_cnv_relaxed_ is defauled to 1.0e9
This assure the same behaviour as current master, where CNV criterion is
ignored when iter > max_strict_iter
TODO: Test this with a stricter default ( <= 1.0)
2018-03-12 08:23:57 +01:00
Atgeirr Flø Rasmussen
1380564256
Merge pull request #1425 from totto82/fix_enable_storage_term_false
...
Bugfix. enableStorageCache=false
2018-03-09 14:13:10 +01:00
Atgeirr Flø Rasmussen
8070e9d229
Merge pull request #1397 from blattms/system-amg-rebased
...
Add support for CPR (and variants) for flow_ebos
2018-03-09 12:46:27 +01:00
Atgeirr Flø Rasmussen
717a9180e5
Merge pull request #1422 from blattms/resort-to-split-operator
...
If requested use matrix with well contributions only for the preconditioner.
2018-03-07 14:33:09 +01:00
Markus Blatt
e27fa72aee
Use extended sparsity pattern also of we add well contributions to the preconditioner.
2018-03-07 13:54:21 +01:00
Tor Harald Sandve
0c4ae5991f
Use advanceTimeLevel() and updatedFailed() methods from model
2018-03-06 13:18:03 +01:00
Markus Blatt
01b25f27ed
Allow to add well contributions to both matrix and preconditioner matrix.
...
matrix_add_well_contributions=true will add to both the preconditioner matrix
and the matrix of the linear operator. preconditioner_add_well_contributions=true
will only add the contributions to the preconditioner matrix.
2018-03-05 16:48:10 +01:00
Markus Blatt
dc86d972d2
Removed hack to access StandardWell::addWellContributions.
2018-03-05 16:48:03 +01:00
Tor Harald Sandve
5f33a1a1bc
Bugfix. enableStorageTerm=false
...
Shift intensiveQuantities each timestep
2018-03-05 14:53:59 +01:00
Andreas Lauser
999653783b
do not name exception objects if they are not used
...
ICC rightfully produces a warning here...
2018-03-03 13:31:17 +01:00
Andreas Lauser
732d86613e
do not mess around with GCC's optimizations
...
generally, this is a bad idea because GCC is very good at determining
which optimizations should be enabled or not and also, this may
interfere with some compilers. (e.g., it produces a warning on icc)
2018-03-03 13:31:17 +01:00
Markus Blatt
12d2114bd7
Add well contribution to preconditioner matrix and always use old operator approach for wells.
...
It turned out that applying the well part of the full matrix has to be
done after the application of the non-well interactions. Otherwise we
screw up the ordering so much that convergence suffers a lot.
Kudos got Atgeirr for inspiration based on his testing.
2018-03-02 20:57:43 +01:00
Markus Blatt
f07874cf42
Cleanup code.
...
Removed unused boolean switch in WellModelMatrixAdapter and removed commented code.
2018-03-02 20:57:10 +01:00
Markus Blatt
af3c45dd6a
Do not add additional entries to matrix when not adding well contributions.
2018-03-02 20:55:58 +01:00
Atgeirr Flø Rasmussen
b276aaa16b
Changes made to test variations of matrix vs matrixless(ish) operator.
2018-03-02 14:22:59 +01:00
Kai Bao
ec8dc4f534
trying to fix a problematic situation when updateWellState
...
for example, distr = 0 1 0, for rate control, F = 1 0 0, we will get a
zero F_target, then it is wrong to do the division with F_target.
It is okay when target = 0. When target != 0, the result is already very
wrong. Non-linear iteration can send us anywhere, not sure the best
solution for this kind of strange situation.
2018-02-28 09:47:22 +01:00
Markus Blatt
44d31f9dcc
Removed unused variable warning in addWellContributions.
2018-02-26 16:23:13 +01:00
Markus Blatt
8aa0973cfc
Removed unsused friend declaration.
...
This seemed to be a leftover from the approach taken
before the refactoring of the well code.
2018-02-26 16:20:41 +01:00
Markus Blatt
3be954fe98
Move multMatrixTransposed for better testability.
...
Otherwise we need to deal with the property system of ewoms.
2018-02-26 15:49:59 +01:00
Markus Blatt
e53374b8ec
Check which each well whether to call apply for well contributions.
...
This allows for different implementations of wells in well_container
when adding well contributions to the matrix.
2018-02-26 15:47:25 +01:00
Markus Blatt
455cf79d8d
Fixed comments in StandardWell
2018-02-26 15:16:07 +01:00
Markus Blatt
5ec804d362
Prevent unused variable warning
2018-02-26 15:16:07 +01:00
Markus Blatt
3f0d6f7dca
Space
2018-02-26 15:16:07 +01:00
Markus Blatt
96a636f25b
Let WellModel decide whether to apply well contributions.
...
It queries the Well whether the jacobian also contains well contributions.
If not then it applies them in the operator in addition. Thus the
well knows whether that is needed or not.
2018-02-26 15:16:07 +01:00
Markus Blatt
afb806bc3e
Remove effectless typedef in version check.
...
The typedef is the same and has no effect since we
switched to Dune::FMatrixHelp::invertMatrix.
2018-02-26 15:16:07 +01:00
Markus Blatt
8e78f02230
Use Dune::FMatrixHelp::invertMatrix for inversion
...
Thus we always take advantage of the specializations in ISTLSolver.hpp
and do need to take care about the type of the matrix block.
2018-02-26 15:12:14 +01:00
Markus Blatt
b5d55b9fb2
Fix indentation and whitespace.
2018-02-26 14:35:04 +01:00
Markus Blatt
2e7313ac08
Cater for move of CpGrid header
2018-02-26 14:35:04 +01:00
Markus Blatt
9221bc958b
Added missing header includes
2018-02-26 14:35:04 +01:00
Markus Blatt
01b90bce05
Improve well matrix products
2018-02-26 14:35:04 +01:00
Markus Blatt
22dfa6f135
Setup auxiliary module only once with all possible well completions.
...
Clearing the auxiliary modules will result in the sparsity pattern being
recomputed. Previously we did this before each nonlinear solve. But for the
master branch the sparsity pattern was only computed once for the whole
simulation.
To get the same behaviour (one sparsity pattern computation) we change the
auxiliary module to include all well perforations that might become active
during the simulation and do this once up front of a simulator run.
Please note that the new matrix entries might also improve convergence for
the ILU if the well is not active.
2018-02-26 14:35:04 +01:00
Markus Blatt
07f61c2a2b
Add auxiliary module in BlackoilModelEbos constructor.
...
Previously, we did this during assemble. Unfortunately, this resulted
in the sparsity pattern being recomputed every time instead of just
once for a non-linear solve.
2018-02-26 14:35:04 +01:00
Markus Blatt
799cbb4b62
Add influences by well perforations to matrix.
...
This is only done upon request and uses the auxiliary module approach
provided by ewoms.
In the case of adding the influences we do not execute applyWellModelScaleAdd
or applyWellModel in the operator
2018-02-26 14:35:04 +01:00
Markus Blatt
d0fcd1a8e9
Add non neighboring connections induced by well perforations to matrix sparsity pattern
...
This is only done upon request and uses the auxiliary module approach
provided by ewoms.
2018-02-26 14:32:50 +01:00
Kai Bao
a8f560b046
addressing the comments.
2018-02-21 14:45:22 +01:00
Kai Bao
89bb589755
update the reservoir volume in WellState
2018-02-21 12:20:43 +01:00
Kai Bao
abfe9d445b
recoring solution gas rate and solutiion oil rate in StandardWell
2018-02-21 12:20:43 +01:00
Kai Bao
f33657aabf
adding a few memebers to WellStateFullyImplicitBlackoil
...
to get ready for populating well reservoir rates, solution gas
production rates and solution oil production rates.
2018-02-21 12:20:43 +01:00
Atgeirr Flø Rasmussen
d4ca28ec61
Merge pull request #1409 from totto82/fix_default_output_dir
...
Fix default output dir
2018-02-19 17:04:35 +01:00
Atgeirr Flø Rasmussen
1b33769922
Merge pull request #1399 from totto82/MoveWell
...
Some more cleaning in the output code in opm-output, ewoms and opm-simulator
2018-02-19 15:05:20 +01:00
Tor Harald Sandve
bcb501e3d3
Fix default output dir
2018-02-19 13:09:07 +01:00
Atgeirr Flø Rasmussen
4f414b78ed
Ensure we do not dereference nullptr.
2018-02-13 16:22:11 +01:00
Tor Harald Sandve
a89a6af854
Some more cleaning in the output code in opm-output, ewoms and opm-
...
simulator
1) Don't depend on legacy code for communicating the data::wells
2) Bugfix. Store globalIdx instead localIdx in data::wells::complitions
3) Move ThreadHandle to ebos
2018-02-12 08:44:43 +01:00
Atgeirr Flø Rasmussen
cf9b7c39b9
Adapt to moved opm-grid headers.
2018-02-10 08:33:33 +01:00
Andreas Lauser
3d0fca2f08
adapt to the gridManager() -> vanguard() change in ewoms
2018-02-08 16:27:42 +01:00
Andreas Lauser
7f3a9f1f43
catch NumericalIssue instead of NumericalProblem
...
the underlying problem is that the OPM build system does not define a
HAVE_OPM_COMMON macro in config.h.
2018-02-08 12:02:25 +01:00
Markus Blatt
a82598abe7
include ErrorMacros.hpp to safely make use of OPM_THROW (and not abort)
2018-02-07 16:56:12 +01:00
Markus Blatt
f381336dff
Remove unused function parameters and default arguments for AMG construction.
...
It turned out that they are not needed and used.
2018-02-07 16:32:00 +01:00
Andreas Lauser
58a1b7df1f
adapt to the move of infrastructure from opm-common to opm-material
2018-02-07 13:32:52 +01:00
Markus Blatt
bf3132e9cf
Fixes unused variable warning
2018-02-06 19:48:26 +01:00
Markus Blatt
cda0c22d0f
Avoid negation in if clause
2018-02-06 15:36:23 +01:00
Markus Blatt
034b1840ae
Fixed comment about smoother arguments needed for construction
2018-02-06 15:34:13 +01:00
Markus Blatt
4c590c17d6
Moved definition of CPRParameter to top of header as needed for constructor call.
2018-02-06 15:32:35 +01:00
Markus Blatt
fc9acf963e
Spelling fixes in BlackoilAmg.hpp
2018-02-06 15:31:50 +01:00
Markus Blatt
14cde5bafc
Made use of range based for for graph traversal.
2018-02-06 15:30:24 +01:00
Markus Blatt
a8dde44afc
Removed dead code und commented code.
2018-02-06 15:28:10 +01:00
Markus Blatt
6bcfce1733
Prevent problems to due oversight in parallel AMG.
...
Currently we run into issues with the parallel AMG if
redistribution happened on the coarsest level. That is
not detected by AMG and it will construct smoothers on
all processors present before the redistribution. Some of
them will get OwnerOverlapCommunication objects that have
an invalid MPI communicator in them (MPI_COMM_NULL) and an
MPI_ERROR will be raised as we communicate in the constructor.
With this patch we detect this situaton and set the pointer to
OwnerOverlapCommunication to null to prevent communication. A
sanity check that the matrix has zero rows has been added.
2018-02-06 13:19:59 +01:00
Atgeirr Flø Rasmussen
532403c5fb
Merge pull request #1391 from totto82/RFIP
...
Use FIP, EGRID and INIT output code in ebos.
2018-02-06 12:54:01 +01:00
Markus Blatt
28e566ba02
[bugfix] Prevent indexing an array of zero size for matrices with zero rows.
2018-02-06 12:45:13 +01:00
Markus Blatt
cfa311e055
recover compilation support for dune versions <2.6
2018-02-05 22:09:37 +00:00
Markus Blatt
cf1cdbd375
Improved documentation
2018-02-05 22:37:01 +01:00
Markus Blatt
8fc20456c5
Allow user to request aggregating the pressure system before solving it.
...
For this we added a new parameter cpr_pressure_aggregation. If it is true
we will aggregate the pressure already for the first system.
2018-02-05 22:37:01 +01:00
Markus Blatt
e24d338ddc
Resort to support the usual parameters (as for flow_legacy)
...
These are solver_approach=cpr cpr_use_amg=(true|false), etc.
2018-02-05 22:37:01 +01:00
Markus Blatt
c367382a59
Prepare to use ILU for pressure system.
2018-02-05 22:37:01 +01:00
Markus Blatt
abacbe2cfc
Do not use expensive aggregation when forming pressure system unless requested.
...
That means that for traditional CPR no aggregation is used and we simply extract
the pressure component.
2018-02-05 22:37:01 +01:00
Markus Blatt
5d8da52679
Use decoupling strategy of Scheichl/Masson in the CPR preconditioner.
...
Often it is claimed by CPR-AMG evangelists that this will make the pressure
system more elliptic. That may be the case. But even more important it also
decouples the pressure from the saturations.
Without this approach the pressure correction influences the smoothing of the
full system too much and e.g. for Norne CPR is worse than simple block ILU0.
2018-02-05 22:37:01 +01:00
Markus Blatt
6d21214fa7
Switch to ParallelOverlappingILU0 for CPRPreconditioner.
...
This seems to have been forgotten previously. Now the code int CPRPreconditioner.hpp
uses ParallelOverlappingILU0 instead of SeqILU[0n]/BlockPreconditioner which
makes the code more slim.
2018-02-05 22:37:01 +01:00
Markus Blatt
e6e18a3aa9
Make Blackoil system amg / CPR (flow_ebos) DUNE 2.6 aware.
2018-02-05 22:37:01 +01:00
Markus Blatt
c089a59cba
Fix compiler lookup of get method.
2018-02-05 22:37:01 +01:00
Markus Blatt
f5d81513da
First version of a AMG for the Blackoil equations.
...
The approach is inspired by Geiger's system-amg but we use dune-istl
aggregation AMG for it. On the fine level all unknowns attached to a cell
form a matrix block and are treated fully coupled. To form the first
coarse level system we use only the pressure component to guide the aggregation
and neglect all other unknowns on the fine level. All other level are formed
in the usual way by scalar aggregation.
Currently,it has to be requested for flow_ebos manually by passing
"linear_solver_use_amg=true amg_blackoil_system=true" to it.
2018-02-05 22:37:01 +01:00
Arne Morten Kvarving
141186ad1d
changed: opm/[core -> common]/utility/parameters
2018-01-30 16:33:45 +01:00
Arne Morten Kvarving
e9404486bb
changed: opm/common/[->utility]/ResetLocale.hpp
2018-01-30 12:34:04 +01:00
Tor Harald Sandve
cdeefc3a34
Fix command line argument for double precision restart output
2018-01-29 08:56:55 +01:00
Tor Harald Sandve
84a8b8eca6
Pass empty regionSummaryData and blockSummaryData to output
2018-01-29 08:56:55 +01:00
Tor Harald Sandve
6d0c716d76
Clean-up FIP
2018-01-29 08:56:55 +01:00
Tor Harald Sandve
36f6b7ad00
Remove writInit()
...
The EGRID and INIT files are written using ebos
2018-01-29 08:56:55 +01:00
Andreas Lauser
386ade39f4
flow: let core ebos handle the output directory for the result files
...
this adds a new parameter --ecl-output-dir=$FOO to the "virtual"
command line arguments of the ebos simulator.
2018-01-29 08:54:30 +01:00
Tor Harald Sandve
137ff53ae7
Remove output of FIP
2018-01-29 08:54:30 +01:00
Arne Morten Kvarving
4945c9b2ed
changed: pass the mcmg element layout as a parameter for dune 2.6
...
the template parameter is deprecated
2018-01-22 17:25:14 +01:00
Arne Morten Kvarving
2aa0043550
changed: use Dune::createScalarProduct for dune 2.6
...
ScalarProductChooser is no more
2018-01-22 17:24:58 +01:00
Arne Morten Kvarving
4315665b64
changed: expose category as member for dune 2.6
...
the enum can only be used with a define, and that would
just be a temporary solution in any case
2018-01-22 17:23:22 +01:00
Andreas Lauser
f34cfafc22
Merge pull request #1377 from totto82/useEbosEclOutput
...
Start using ecl output from Ebos
2018-01-10 15:01:27 +01:00
Atgeirr Flø Rasmussen
6c8b0d68ca
Remove use of old implicit imcomp 2p transport.
2018-01-08 17:23:43 +01:00
Atgeirr Flø Rasmussen
aca95895c9
Fix: set precision of the correct stream.
2018-01-08 17:18:47 +01:00
Tor Harald Sandve
0e6fe26a61
Start using ecl output from Ebos
...
The wells, FIP and initial output of NNCs is still handled
by code in opm-simulators. The plan is to move more of the
functionality to ebos.
All tests pass and MPI restart works
2018-01-04 09:29:58 +01:00
Tor Harald Sandve
969d8f238d
Use phase and comp info from FluidSystem
...
TODO: The output, fip and restart still uses a mixture of old and
new phase indices. This needs to be adressed in future PRs
2018-01-03 08:44:37 +01:00
Atgeirr Flø Rasmussen
9f14b63b82
Merge pull request #1370 from totto82/changeDpMaxDefault
...
Change dp_max_rel default from 1.0 to 0.3
2017-12-20 16:59:43 +01:00
Tor Harald Sandve
7567748f2d
Adapt to changed initial FluidState type in ebos
2017-12-15 08:19:01 +01:00
Tor Harald Sandve
4097a07572
Change dp_max_rel default from 1.0 to 0.3
2017-12-14 11:16:16 +01:00
Arne Morten Kvarving
dfd91d162b
quell signed/unsigned comparison mismatch warning
2017-12-05 16:50:58 +01:00
Arne Morten Kvarving
b702d3834b
remove unused variable
2017-12-05 16:50:52 +01:00
Atgeirr Flø Rasmussen
03a0baf447
Merge pull request #1343 from GitPaean/single_phase_resv
...
making the single phase RESV injection work.
2017-12-05 14:06:44 +01:00
Tor Harald Sandve
095b82212c
Use the initial solution from Ebos
2017-12-04 10:35:30 +01:00
Atgeirr Flø Rasmussen
65034250d1
Merge pull request #1356 from dr-robertk/PR/fix-minor-issue-gridview
...
[bugfix] make code compile when GridView is not Grid::LeafGridView.
2017-12-04 09:25:43 +01:00
Kai Bao
9317c1f023
removing the current argument in updateWellStateWithTarget
...
and some other cleaning up.
2017-11-30 17:14:29 +01:00
Kai Bao
ea3cbd1fe8
removing numComponents() from WellInterface
...
which is dumplicated from BlackoilWellModel.
2017-11-30 16:31:48 +01:00
Robert Kloefkorn
3a35a495a8
[bugfix] make code compile when GridView is not Grid::LeafGridView.
2017-11-29 23:26:38 +01:00
Atgeirr Flø Rasmussen
eef7b8ea94
Merge pull request #1348 from totto82/refactorBlackoilModelEbos
...
Put the ebosSimulator start and end methods where it belongs
2017-11-29 20:49:18 +01:00
Tor Harald Sandve
2d2f9285c5
Only read use_TUNING param once.
...
Just to clean up the .DEBUG file.
2017-11-28 14:25:25 +01:00
Kai Bao
7b61f3e692
moving polymer related to updateWaterMobilityWithPolymer
...
in StandardWell.
And not calculating the shear effect for the injecting wells when the
injection wells do not inject polymer.
2017-11-27 09:24:02 +01:00
Atgeirr Flø Rasmussen
46e958af43
Merge pull request #1337 from totto82/removeBlackOilPropsFromInit
...
Adapt to the refactoring of the Equil initialization code
2017-11-27 07:26:22 +01:00
Atgeirr Flø Rasmussen
f62275cb06
Merge pull request #1339 from blattms/write-ranks-without-nonactive
...
Disregard non-active cells when writing MPI_RANK in writeInitial.
2017-11-27 07:22:34 +01:00
Atgeirr Flø Rasmussen
401aa28c08
Merge pull request #1340 from totto82/solventAndResv
...
Make it possible to combine solvent and RESV
2017-11-27 07:20:24 +01:00
Atgeirr Flø Rasmussen
3fd27d9bd6
Merge pull request #1346 from GitPaean/removing_more_multisegment_legacy
...
removing more legacy Multisegment Wells related.
2017-11-24 15:30:39 +01:00
Tor Harald Sandve
9edb351d34
Put the ebosSimulator start and end methods were it belongs
...
Move the beginEpisode/endEpisode call to ebos to beginReportStep/
endReportStep and beginTimeStep/endTimeStep call to ebos to prepareStep/
afterStep
2017-11-24 15:16:03 +01:00
Kai Bao
f87e6d35db
removing more legacy Multisegment Wells related.
2017-11-24 12:27:43 +01:00
Kai Bao
59722e552c
making the single phase RESV injection work.
2017-11-24 11:44:53 +01:00
Tor Harald Sandve
ba358c0522
Only update TUNING when TUNING_CHANGE event
2017-11-23 14:24:40 +01:00
Tor Harald Sandve
dd97fc8908
Some clean up.
2017-11-23 11:15:50 +01:00
Tor Harald Sandve
c076ed6485
Move Rateconverter and pvtIdx to the wellInterface
2017-11-23 08:37:30 +01:00
Tor Harald Sandve
054361d537
Make it possible to combine solvent and RESV
...
Compute the conversion factor for solvent using the RateConverter.hpp
2017-11-22 15:21:21 +01:00
Markus Blatt
f32743cf31
Disregard non-active cells when writing MPI_RANK in writeInitial.
...
This saves space and it is allowed and recommended (spacewise) to
use integer arrays with only values for active cells in writeInitial.
2017-11-22 14:18:32 +01:00
Atgeirr Flø Rasmussen
796f6cd13c
Merge pull request #1338 from totto82/scheduleTUNING
...
Support TUNING in schedule section.
2017-11-22 14:03:58 +01:00
Andreas Lauser
ef76d0a8cc
Merge pull request #1335 from atgeirr/refactor-sim
...
Removing unused code parts and minor refactoring
2017-11-22 13:57:58 +01:00
Markus Blatt
9402f4bde1
Make CellOwnerHandle available without MPI
...
and thus make compilation succeed in this case as using
it is perfectly find even if MPI is not there.
2017-11-21 15:06:36 +01:00
Tor Harald Sandve
2a7d7b8ae5
Pass ref instead of shared pointer to initEquil
2017-11-21 14:29:08 +01:00
Tor Harald Sandve
31bfb22273
Adapt to the refactoring of the Equil initialization code
...
Most noteably the blackoilState is not returned by the initialization
code anymore, instead the initialization class is returned.
2017-11-21 13:52:07 +01:00
Markus Blatt
e7688a2ca0
Use MPI_RANK as ECL keyword (max length is 8)
...
MPI_RANKS was one character to long and rose an exception with message
"Error: Program threw an exception: Keyword is too long."
2017-11-21 11:17:40 +01:00
Tor Harald Sandve
c03dbc1693
Support TUNING in schdule section.
2017-11-21 11:12:16 +01:00
Markus Blatt
073f63ac4c
Adapt writeInitial call to use integer vectors for printing ranks
...
This adapts to the new function signature as of PR 216 in opm-output. It uses the
newly introduced map of integer vectors to print the MPI ranks in a parallel run.
2017-11-20 15:30:50 +01:00
Atgeirr Flø Rasmussen
6e8adbbd7d
Remove old "backup-restore" functionality.
...
Was no longer working and would require some maintenance to work again.
2017-11-20 14:31:13 +01:00
Atgeirr Flø Rasmussen
353f4a6265
Move creating local fipnum array to constructor.
2017-11-17 15:42:16 +01:00
Atgeirr Flø Rasmussen
33833eebe3
Align PRT message header.
2017-11-17 15:41:46 +01:00
Atgeirr Flø Rasmussen
ed263ba030
Remove unused function argument.
2017-11-17 15:41:23 +01:00
Atgeirr Flø Rasmussen
8bd441f431
Remove obsolete time and convergence output.
2017-11-17 15:28:52 +01:00
Alf B. Rustad
7dba2c4d70
Format fix-up
2017-11-17 08:25:22 +01:00
Alf B. Rustad
18419be734
Moving developer centric messages from PRT file to DEBUG file
2017-11-17 08:25:22 +01:00
Alf B. Rustad
ad68c05982
Change substep to time step in logging
2017-11-17 08:25:21 +01:00
Alf B. Rustad
2d2198a775
Change log output from Time step to Report step
2017-11-17 08:25:21 +01:00
Atgeirr Flø Rasmussen
68dab29aec
Merge pull request #1333 from GitPaean/avoid_use_BlackoilPhases
...
replacing BlackoilPhases:: with Oil Water Gas in well model
2017-11-16 21:49:30 +01:00
Kai Bao
8274fc9275
replacing BlackoilPhases:: with Oil Water Gas in well model
...
and also WellStateFullyImplicitBlackoil.
There are more places to do so, while it might be easier to create a
header file for this.
2017-11-16 12:08:58 +01:00
Atgeirr Flø Rasmussen
d8ad13c4b5
Move fip computation and unit conversion to separate method.
2017-11-15 16:31:06 +01:00
Atgeirr Flø Rasmussen
4256af6754
Move (local) fipnum creation to separate method.
2017-11-15 16:13:28 +01:00