Commit Graph

5769 Commits

Author SHA1 Message Date
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
351c495388 fixed: pass by reference as intended 2018-04-13 11:25:10 +02:00
Arne Morten Kvarving
33d2095b07 initialize variable 2018-04-13 11:25:10 +02:00
Arne Morten Kvarving
4933c10035 reduce scope of variable 2018-04-13 11:25:10 +02:00
Arne Morten Kvarving
ee57c82834 changed: mark constructors explicit 2018-04-13 11:25:10 +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
Andreas Lauser
b74d39f2e1 make flow compile in face of the energy conservation changes of the eWoms black oil model
with this, flow does *not* yet support thermal simulations, this patch
merely makes it compile while nothing user-facing is supposed to
change.
2018-04-06 11:01:33 +02:00
Bård Skaflestad
0f4354d8fd Include <sstream> for Class "ostringstream"
Some implementations do not get a transitive definition of class
"ostringstream" in scope through the other headers and therefore
fail to compile the member function

  SimulatorReport::reportStep(std::ostringstream&)
2018-04-04 19:00:51 +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
79bc265de8
Merge pull request #1431 from GitPaean/silencing_warning_from_opm_common_pr_348
adding POLYMW to the injectorType determination
2018-03-10 13:19:37 +01:00
Kai Bao
b0edfd2f04 adding POLYMW to the injectorType determination
just to silence a warning resulting from OPM/opm-common#348.
2018-03-09 14:40:49 +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
Atgeirr Flø Rasmussen
0db0e83843
Merge pull request #1414 from GitPaean/hack_to_fix_weird_well_rate_situation
trying to fix a problematic situation when updateWellState
2018-02-28 16:00:42 +01:00
Kai Bao
56caffab67 fixing comments for PR#1416 2018-02-28 10:26:54 +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
Kai Bao
635f6c7db2 trying to add the functionality to handle oil/water polymer 2018-02-28 08:39:38 +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
8e9b13584d
Merge pull request #1403 from lars-petter-hauge/empty_wells_init
Allow Wells struct initialization without wells
2018-02-14 10:31:52 +01:00
Lars Petter Øren Hauge
011143829d Allow Wells struct initialization without wells
Calling wells()->number_of_wells on nullptr causes segmentation fault. This
occurs when running a deck without wells. Allowing WellsManager::init to
continue for decks without wells enables the well struct to be set.

Authored by Sveinung Rundhovde & Lars Petter Hauge
2018-02-13 16:43:10 +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
2da361414e changed: relocate the remaining files in opm/core/utility
move to opm/common/utility/numeric
2018-01-30 16:33:46 +01:00
Arne Morten Kvarving
141186ad1d changed: opm/[core -> common]/utility/parameters 2018-01-30 16:33:45 +01:00
Arne Morten Kvarving
e9e5c15e99 changed: opm/[core/linalg -> common/utility/numeric]/blas_lapack.h 2018-01-30 12:47:10 +01:00
Arne Morten Kvarving
e9404486bb changed: opm/common/[->utility]/ResetLocale.hpp 2018-01-30 12:34:04 +01:00
Arne Morten Kvarving
742d2d2158 changed: opm/common/[util->utility]/numeric/cmp.hpp 2018-01-30 12:13:30 +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
b38430ea2e Output TCPU for every substep. 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
Arne Morten Kvarving
83d4dae117 changed: do not ifdef the entire implementation
better to handle this in build system
2018-01-17 18:16:26 +01:00
Arne Morten Kvarving
c03a980199 Import the remaining code from opm-core 2018-01-17 15:18:56 +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
8ad9c979f8 Remove old 2p simulator. 2018-01-08 17:22:50 +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
Andreas Lauser
5bf53148c0 replace #if HAVE_CONFIG_H by #ifdef HAVE_CONFIG_H
it seems like most build systems pass a -DHAVE_CONFIG_H flag to the
compiler which still causes `#if HAVE_CONFIG_H` to be false while it
clearly is supposed to be triggered.

That said, I do not really see a good reason why the inclusion of the
`config.h` file should be guarded in the first place: the file is
guaranteed to always available by proper build systems, and if it was
not included the build either breaks at the linking stage or -- at the
very least -- the runtime behavior of the resulting libraries will be
very awkward.
2017-12-11 11:33:52 +01:00
Andreas Lauser
db1f257184 make call_umfpack.c compile even if UMFPACK is not available
That said, don't try to call any of its functions or you'll regret it
at runtime!
2017-12-11 11:33:52 +01:00
Andreas Lauser
503c7d1ca8 make the PETSc code compile even if PETSc is not available
if PETSc is not available, the .cpp file will compile fine because it
will be reduced to be empty, but trying to include
LinearSolverPetsc.hpp in this case will result in an error.
2017-12-11 11:33:52 +01:00
Andreas Lauser
244871829d PhaseUsage: handle polymer and solvent the same way as energy 2017-12-11 10:30:14 +01:00
Andreas Lauser
4571a8f841 add an energy "phase"
This is quite a hack: Even though energy is not a "phase" and it is
also not considered in MaxNumPhases and pu.num_phases because this
would break a lot of assumptions in old code, it is nevertheless
assigned an "canonical index" that can be translated "active index"
via PhaseUsage::phase_pos[]. This awkwardness is needed because much
of the legacy OPM code conflates the concepts of "fluid phase" and
"conserved quantity" and fixing that issue would basically mean an
almost complete rewrite of much of the legacy code. That said, the
same statement applies to polymer and solvent, but these are currently
handled as even more second-class citizens because they are not even
given a canonical index and also cannot be translated into an active
one.
2017-12-11 10:30:14 +01:00
Arne Morten Kvarving
075d518bea fixed: add ENERGY to switch to quell unhandled enum value warning 2017-12-05 17:13:08 +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
Atgeirr Flø Rasmussen
8f1adadeae
Merge pull request #1355 from totto82/removeInitDupl
Only compute the initial solution once.
2017-12-05 08:44:11 +01:00
Roland Kaufmann
5284497bad Remove superfluous backing class for share_obj
I originally wanted to make share_obj a class so that I could hide the
helper function, but it turned out that I needed a function after all
since a function template can be inferred from the parameters but the
type cannot from the constructor.

By returning a shared_ptr directly, the compiler can do return object
optimization.
2017-12-04 16:24:14 +01:00
Roland Kaufmann
f173dad56e Provide stream that ignores everything written to it
Use this stream when you want a straight code path, but also be able
to disable output at will.
2017-12-04 16:24:14 +01:00
Roland Kaufmann
9193105410 Change from pass-by-value to pass-by-const-ref
The object is copied when put into the list, so there should be no
danger of dangling references.
2017-12-04 16:24:14 +01:00
Roland Kaufmann
0c53ac1509 Add classes for event-handling
The new classes Event and EventSource can be used as a simple mechanism
for implementing event-based callbacks in the simulators.
2017-12-04 16:24:14 +01:00
Atgeirr Flø Rasmussen
a767e166ae Make DataMap.hpp properly include its dependencies. 2017-12-04 16:24:14 +01:00
Joakim Hove
3725ac8f7d Added DataMap.hpp 2017-12-04 16:24:14 +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
Tor Harald Sandve
31657a5d1c Add efficiencyFactor to GuideRate 2017-12-01 11:32:35 +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
Tor Harald Sandve
c787f5a251 Handle WEFAC
Added test combining WEFAC and GEFAC
2017-11-30 13:45:05 +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
Atgeirr Flø Rasmussen
2bf880fadd
Merge pull request #1351 from totto82/changeDefaultTimeStep
Use 1 day as default initial time step
2017-11-29 10:01:15 +01:00
Atgeirr Flø Rasmussen
9cffa946f6
Merge pull request #1350 from totto82/onlyReadTuningParamOnce
Only read use_TUNING param once.
2017-11-28 20:43:35 +01:00
Tor Harald Sandve
a1dbeec4d4 Use 1 day as default initial time step 2017-11-28 15:12:48 +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
Tor Harald Sandve
e350c04871 Fix date for long simulation times 2017-11-28 13:37:00 +01:00
Tor Harald Sandve
90fcf0b132 Fix pvtIndex map for cases with non-active eqlnum regions. 2017-11-27 13:40:09 +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
369e9f5a06
Merge pull request #1344 from atgeirr/remove-legacy-polymer
Remove legacy fully implicit polymer simulator.
2017-11-27 07:19:01 +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
Atgeirr Flø Rasmussen
32c7d822ec Remove legacy fully implicit polymer simulator.
It has been replaced with the faster local-ad-based code, that is now
part of the integrated flow.cpp application.

We do not remove the old sequential implicit polymer simulators.
2017-11-24 11:41:34 +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
Tor Harald Sandve
6862ed0b35 Fix 2p bug 2017-11-22 09:24:52 +01:00
Tor Harald Sandve
197019d865 Adress PR review issues 2017-11-22 08:31:57 +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
Tor Harald Sandve
d6ea5cc402 Cleaning the initialization code
-remove whitespaces
-fix documentation
2017-11-21 12:52:07 +01:00
Tor Harald Sandve
0ef82665f5 Use &ref not shared_pointer to MaterialLawManager 2017-11-21 12:08:10 +01:00
Tor Harald Sandve
51f48fcd13 Remove blackoilPhases and phaseUsage from the initialization code
Note 1: The initialization code now always consider 3 phases.
For 2-phase cases a trivial (0) state is returned.
Note 2: The initialization code does not compute a BlackoilStats,
but instead pass the initialization object with the initial state.
2017-11-21 12:08:10 +01:00
Tor Harald Sandve
36e8f1bfec Remove BlackoilProps from equil initalization code
Use FluidSystem and materialLaw from opm-material
directly not via the BlackoilProps in opm-core
2017-11-21 12:08:10 +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
Atgeirr Flø Rasmussen
0f210dcb6c Move FIP output to separate method. 2017-11-15 15:55:58 +01:00
Atgeirr Flø Rasmussen
91ac16b7e3 Merge pull request #1184 from akva2/remove_unused_sources
remove unused code
2017-11-15 14:09:31 +01:00
Arne Morten Kvarving
a76ae214b8 remove unused code 2017-11-15 11:56:40 +01:00
Atgeirr Flø Rasmussen
f29f1b49d1 Merge pull request #1122 from atgeirr/fix-type-bug-in-equil
Fix type bug in equil
2017-11-14 14:40:47 +01:00
Atgeirr Flø Rasmussen
3d0c6da513
Merge pull request #1320 from joakim-hove/missing-features
Missing features
2017-11-14 11:19:13 +01:00
Joakim Hove
a6ef70cd91 Added keywords to list of unsupported. 2017-11-14 08:56:06 +01:00
Joakim Hove
d04c52cebf Reformatted list of unsupported keywords. 2017-11-14 08:55:52 +01:00
Atgeirr Flø Rasmussen
60ee67804b
Merge pull request #1330 from akva2/remove_simulators
Remove duplicate EBOS based simulators and legacy simulators that has been replaced
2017-11-13 15:56:33 +01:00
Arne Morten Kvarving
e0907ddc49 remove 'flow_solvent' and associated files
use 'flow'
2017-11-13 14:21:10 +01:00
Arne Morten Kvarving
ad23d98726 remove 'flow_multisegment' and associated files
use 'flow' with use_multisegment_well=true
2017-11-13 14:20:47 +01:00
Atgeirr Flø Rasmussen
098e229d2e
Merge pull request #1328 from totto82/fixShearVel
Fix size of perf radius and length vectors.
2017-11-13 14:00:07 +01:00
Tor Harald Sandve
614f75d9b9 Fix size of perf radius and length vectors. 2017-11-13 12:16:39 +01:00
Atgeirr Flø Rasmussen
29277489e1 Make calling wsolvent() and wpolymer() always ok.
With the existing code, it was a bug to call wsolvent() when the well
was not a gas injector (and similar for wpolymer and water injectors).
Since such calls could happen, this minor fix removes the assertation
failure in those cases.
2017-11-13 10:40:09 +01:00