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
Atgeirr Flø Rasmussen
6591ca89f6
Merge pull request #1324 from totto82/moveApplyWellToRes
...
Apply the well residuals to cell residuals in SolveJacobianSystem
2017-11-10 09:57:42 +01:00
Atgeirr Flø Rasmussen
e7a6e8f2c5
Merge pull request #1322 from totto82/fixResetSolution
...
BUGFIX Update the solution variable in ebos
2017-11-09 10:35:38 +01:00
Tor Harald Sandve
5647485daa
Apply the well residuals to cell residuals in SolveJacobianSystem
...
This was moved to assemble() some time ago but according to my logic it
belongs in the solve method since this is only a trick to solve the well
equations simultaneously with the reservoir equations.
A buggy side effect of the currect implementation was that the well
residual was considered in the convergence test. I.e. this move changes
the convergence behaviour of the simulator.
2017-11-09 08:40:08 +01:00
Tor Harald Sandve
a73208f41c
Address issues raised in the review of the PR
2017-11-08 15:48:30 +01:00
Tor Harald Sandve
4bb5213f37
BUGFIX Update the solution variable in ebos
...
Updating the solution variable in updateState() was conceptually wrong
and lead to incorrect results if the linear solver failed before the
updateState() method was called. i.e. in the first iteration.
2017-11-08 14:21:31 +01:00
Tor Harald Sandve
b9bc4b00cb
Make the wellModel self-contained
...
The wellModel is now persistent over the time steps,
with an update method called every reportStep/episode.
This allows the following simplifications:
1. move the wellState to the WellModel
2. add a ref to the ebosSimulator to the wellModel
3. clean up the parameters passed to the wellModel methods
4. move RESV handling to the WellModel and the rateConverter
5. move the econLimit update to the WellModel
2017-11-08 13:57:36 +01:00
Atgeirr Flø Rasmussen
c79dab27d5
Merge pull request #1319 from GitPaean/throw_when_no_umfpack
...
removing more HAVE_UMFAPACK related in MultisegmentWell_impl
2017-11-07 14:41:52 +01:00
Atgeirr Flø Rasmussen
f886a3f0ff
Merge pull request #1311 from blattms/use-MatrixBlock-dune-2.5.0
...
Use MatrixBlock instead of FieldMatrix for DUNE 2.5.0
2017-11-07 13:28:24 +01:00
Joakim Hove
e125334847
Merge pull request #1315 from joakim-hove/extract-schedule
...
Use Schedule constructor.
2017-11-06 17:06:49 +01:00
Joakim Hove
566f4fbb02
Use Schedule constructor.
2017-11-06 14:20:41 +01:00
Atgeirr Flø Rasmussen
dde9db92a6
Merge pull request #1316 from andlaus/fix_openmp
...
flow_ebos: fix the OpenMP functionality
2017-11-03 17:43:49 +01:00
Kai Bao
89416720cb
removing more HAVE_UMFAPACK related in MultisegmentWell_impl
...
which are left from the previous PR.
2017-11-03 14:54:32 +01:00
Atgeirr Flø Rasmussen
1d0282c6fe
Merge pull request #1317 from GitPaean/throw_when_no_umfpack
...
giving more information when umfpack is not available.
2017-11-03 14:43:18 +01:00
Kai Bao
790db957f5
giving more information when umfpack is not available.
...
when calling invDXDirect.
2017-11-03 10:03:03 +01:00
Atgeirr Flø Rasmussen
63415ebd96
Merge pull request #1314 from andlaus/generic_maintainance
...
Generic maintainance
2017-11-03 09:38:19 +01:00
Andreas Lauser
36bd6a1681
flow_ebos: fix the OpenMP functionality
...
the ThreadManager from ebos was not called which resulted in some
havoc when attempting multi-threaded runs.
v2: use opm_get_max_threads() directly. thanks to [at]akva2 for the heads-up.
2017-11-02 12:47:04 +01:00
Arne Morten Kvarving
53942053af
Merge pull request #1309 from andlaus/fix_build_no_umfpack
...
make the build work if UMFPACK is not available
2017-10-30 11:05:19 +01:00
Andreas Lauser
e65790224e
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-10-27 17:48:26 +02:00
Andreas Lauser
6e7189b518
fix a few Dune 2.5 deprecation warnings
2017-10-27 17:48:26 +02:00
Andreas Lauser
ceefb61c4a
fix some unknown pragma warnings if OpenMP is not enabled
2017-10-27 17:48:26 +02:00
Markus Blatt
602f3962f3
Use MatrixBlock instead of FieldMatrix for DUNE 2.5.0
...
3x3 matrix block inversion in FieldMatrix is numerically unstable
including version 2.5.0. Therefore the previous if clause was wrong
as it activated the use of FieldMatrix already for 2.5.0 (the version
in Debian stable). With this commit we use MatrixBlock for version 2.5.0.
2017-10-25 16:32:48 +02:00
Joakim Hove
19318e5019
Schedule no longer part of EclipseState.
2017-10-24 20:38:15 +02:00
Andreas Lauser
720dc636e8
make the build work if UMFPACK is not available
...
this was caused by the recent work on multisegmented wells. If UMFPack
is available, it compiled.
2017-10-24 19:17:41 +02:00
Atgeirr Flø Rasmussen
32251461e5
Revert "Revert "Communicate the ebos solution at the beginning of the run method"
2017-10-23 12:40:29 +02:00
Atgeirr Flø Rasmussen
f66a270b7d
Merge pull request #1305 from GitPaean/checking_use_multisegment
...
checking use_multisegment_well_ first in BlackoilModelParameters
2017-10-17 21:20:07 +02:00
Kai Bao
9fde417066
checking use_multisegment_well_ first in BlackoilModelParameters
2017-10-17 13:21:02 +02:00
Markus Blatt
15dfe31d80
Revert "Communicate the ebos solution at the beginning of the run method."
...
This reverts commit 9adc4d5d3c
.
2017-10-17 08:26:39 +00:00
Kai Bao
6b00d912c3
fixing jenkins warning.
2017-10-16 19:08:12 +02:00
Kai Bao
ba8eb708d1
fixing reviewing comments from PR 1279.
2017-10-16 17:01:15 +02:00
Kai Bao
4efaf64cf7
adapting to the interface change in OPM-parser#1145.
2017-10-16 14:39:07 +02:00
Kai Bao
7054317d98
checking the results from the direct solver invDX
...
since I has not figure out a way to detect/catch the singularity of the
matrix with UMFPack, currently, we only check the validity of the
results to make sure inf or nan not enter other part of the simulation.
It can easiliy results in assertion failure, and causes the running to
be terminated. After all, it mostly likely is a numerical issue
generated during the non-linear iteration process.
2017-10-15 12:13:42 +02:00
Kai Bao
d407e516ce
throw for unsupported situations and fix warnings
...
for MultisegmentWell.
2017-10-13 10:16:44 +02:00
Kai Bao
7a29c5098f
changing the strategy of the updateWellState in MultisegmentWell
...
only applying relaxation during the inner iteration.
2017-10-12 16:46:25 +02:00
Kai Bao
86269e0de2
cleaning up.
...
no functional change.
2017-10-12 15:36:54 +02:00
Kai Bao
93b7cceaf3
removing WellStateFullyImplicitBlackoilDense as the master
...
it caused some problem in rebasing.
2017-10-12 15:05:45 +02:00
Atgeirr Flø Rasmussen
3bfe295d62
Bugfix: type for target capillary pressure.
2017-10-12 14:27:32 +02:00
Kai Bao
6a4260c264
various improvement and bug fixing.
...
fixed one invalid memory reading of perforation_segment_depth_diffs_
in computePerfRate, which caused different results for different
running.
2017-10-12 14:10:36 +02:00
Kai Bao
1a7b5571b6
trying to add an inner well iteration to speed up convergence.
2017-10-12 14:10:24 +02:00
Kai Bao
8a19b719d6
when Reynolds number is zero, return zero friction factor
...
which means there is not friction pressure loss. The formualtion has
problem in handling zero-value Reynolds number.
2017-10-12 13:43:04 +02:00
Kai Bao
6366087efd
using UMFPACK for the function invDX
...
for better robustness.
The iterative solvers require more improvement.
2017-10-12 13:43:04 +02:00
Kai Bao
78a28abf91
fixing a bug related to adding ms well during simulation.
...
When there is not ms well involved, all the ms well related is not
initialized. It causes problem when we want to add ms well after some
time of running.
The bug fix the running with model 2.
2017-10-12 13:43:04 +02:00
Kai Bao
c3a368e58e
adding two more parameters related to ms wells
...
to help to tune and improve the convergence.
2017-10-12 13:43:04 +02:00
Kai Bao
fc64d34bc2
cleaning up some comments.
2017-10-12 13:43:04 +02:00
Kai Bao
6fb459a797
introducing tolerance_pressure_ms_wells for pressure equations
...
for the multisegment wells. More detailedly, we should distinguish the
rate control equations, bhp control equations and ordinary pressure
equations.
2017-10-12 13:43:04 +02:00
Kai Bao
92abdc4f23
correcting some bugs in frictional pressure loss.
2017-10-12 13:43:04 +02:00
Kai Bao
f6ad3669f8
considering the two pressure difference to MultisegmentWell
...
while the sign of the pressure differences are not sure or well tested
yet.
2017-10-12 13:43:04 +02:00
Kai Bao
aa8b1ae0f8
giving the friction pressure loss a direction.
2017-10-12 13:43:04 +02:00
Kai Bao
ccc21e9dcd
removing WellStateMSWell.hpp
...
what was designed to use as WellState for one single Multisegment well.
2017-10-12 13:39:58 +02:00
Kai Bao
8c3f45f58e
fixing a few of bugs.
2017-10-12 13:39:58 +02:00
Kai Bao
4c207eb1f5
implementing computePerfCellPressDiffs
...
to calculate the pressure difference between perforation and perforated
grid cell.
2017-10-12 13:39:58 +02:00
Kai Bao
df593cf1d2
adding the calculation of depth differences
...
between the perforations and their segments, and also the perforations
and perforated grid blocks.
2017-10-12 13:39:58 +02:00
Kai Bao
2b4a99edf9
handling the acceleration pressure drop
...
not tested yet.
2017-10-12 13:39:58 +02:00
Kai Bao
4893334567
adding function getFrictionPressureLoss()
...
it should be related to the flow direction, which needs some tests.
2017-10-12 13:39:58 +02:00
Kai Bao
aa8ffe9386
removing the unit conversion factors in frictional formular.
...
since we are using the SI unit internally, they should not be needed.
2017-10-12 13:39:58 +02:00
Kai Bao
7ae5bd5187
adding the code to calculate the segment viscosities.
...
not tested yet.
2017-10-12 13:39:58 +02:00
Kai Bao
391abcec7f
adding helper fuction to calculate frictional pressure loss
...
not tested yet.
2017-10-12 13:39:58 +02:00
Kai Bao
f4f26395f6
fixing two compilation warning.
2017-10-12 13:39:58 +02:00
Kai Bao
ad964210e5
move invDX to MSWellHelpers.hpp.
2017-10-12 13:39:58 +02:00
Kai Bao
20c21a6cb2
removing a few variables related to matrix opertaion
2017-10-12 13:39:58 +02:00
Kai Bao
fc06923c50
changing StandardWellsDense to BlackoilModelEbos
...
for a better naming.
2017-10-12 13:39:58 +02:00
Kai Bao
6ef0c5010c
adapting the change of PR 1263
2017-10-12 13:37:05 +02:00
Kai Bao
dd9ad42a28
correcting the size of seg_comp_initial_ based on num_comp
...
for standards wells, all the three equations are mass balance
equatiions, it is safe to use numWellEq.
for MS wells, there is one extra pressure equation, it should be the
number of mass balance equations. If we do not put the polymer equation
inside the well equations, we will face dilemma soon.
2017-10-12 13:37:05 +02:00
Kai Bao
282d678622
removing flowToEbosPvIdx from MultisegmentWell
...
as a result from rebase.
2017-10-12 13:37:05 +02:00
Kai Bao
0dc041d46a
adding a use_multisegment_well_
...
to determine whether we will treat mutlisegment wells with
MultisegmentWell well model. Currently, it will be faulse by default.
It might be changed to be true by default when considering the
multisegment well model is well tested.
2017-10-12 13:37:05 +02:00
Kai Bao
3255626b2e
scaling the gas rates a little bit for MS well.
...
It can possibly benefit the StandardWell, while it is something needs a
little bit more investigation before using it.
2017-10-12 13:37:05 +02:00
Kai Bao
f7e1623b7a
only clearing matrix B and C when only_wells false.
...
to save a little calculation.
2017-10-12 13:37:05 +02:00
Kai Bao
c6be20c5cb
copying the segment rates and segment pressure from old well state.
...
It can be something rather tricky. It looks like with simple trival
initization, it is difficutl to converge. But when there is change to
the well, direct copying will not work anymore. Will we also facing
convergence problem?
2017-10-12 13:37:05 +02:00
Kai Bao
5dee45dc0a
various small improvements.
2017-10-12 13:37:05 +02:00
Kai Bao
a03a67c85e
not checking getWellConvergence more than one times
...
which is a bug. Not it is moved out of the for loop.
2017-10-12 13:37:05 +02:00
Kai Bao
bafe292af0
adding some comments for later implementation.
2017-10-12 13:37:05 +02:00
Kai Bao
b6d324c95e
implement recoverWellSolutionAndUpdateWellState
...
for MultisegmentWell_impl.
2017-10-12 13:37:05 +02:00
Kai Bao
596814943c
bug fixing to make the hydroPrssureLoss correct.
2017-10-12 13:37:05 +02:00
Kai Bao
f784cf97eb
a few bug fixing for MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
5ffd2bf026
correct the treatment of the pressure equation
...
the derivative of the inlet contribution should go to the correction
location in duneD_.
2017-10-12 13:37:05 +02:00
Kai Bao
c3b4188295
making message about catching FMatrixError more specific
...
in BlackoilModelEbos.
2017-10-12 13:37:05 +02:00
Kai Bao
23b0deb928
a few bug fixing for MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
fe1f854138
adding getWellConvergence() to MultisegmentWell_impl
2017-10-12 13:37:05 +02:00
Kai Bao
1f380713e8
using function invDX to implement functions in MultisegmentWell
...
it compiles, while not sure how it gonna work.
2017-10-12 13:37:05 +02:00
Kai Bao
ba3c7a88db
adding a functin invDX to calculate D^-1 X
...
not sure why putting it in ISTLSolver.hpp caused linking problem.
Putting it in MultisegmentWell for now.
2017-10-12 13:37:05 +02:00
Kai Bao
6f6f3ead5e
adding updateWellState for MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
1adc081430
adding function processFractions() to MultisegmentWell
...
to handle the undershooting and overshooting of the fractions during
updateWellState.
2017-10-12 13:37:05 +02:00
Kai Bao
0e7b77fac2
adding getHydorPressureLoss() to MultisegmentWell
...
to handle the hydrostatic pressure loss.
2017-10-12 13:37:05 +02:00
Kai Bao
d30c1eb2c5
adding getPressureEq() to MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
2bf82b4262
adding getControlEq() to MultisegmentWell
...
to handle the well control equation. THP control is not handled there
yet.
2017-10-12 13:37:05 +02:00
Kai Bao
ae91296339
generating the pattern of the matrix of MultisegmentWell
...
need to be verified.
2017-10-12 13:37:05 +02:00
Kai Bao
b3a233eecc
WIP in adding assembleWellEq for MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
1ffa87561b
adding computePerfRate() in MultisegmentWell
...
not tested yet.
2017-10-12 13:37:05 +02:00
Kai Bao
5d79a7f11b
adding computeSegmentFluidProperties for MultisegmentWell
...
only considering the fluid densities for now.
more fluid densities needs to be considered.
2017-10-12 13:37:05 +02:00
Kai Bao
7b873d97c9
small improvements in StandardWell
...
there is not functional change.
2017-10-12 13:37:05 +02:00
Kai Bao
1e32b40837
adding function computeInitialComposition to MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
eb119f245d
adding a few functions to calculate the fractions in MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
3e2a34239c
removing two functions from WellInterface
...
computeWellConnectionPressures() and computeAccumWell().
They belongs to the implementation details of well models now.
2017-10-12 13:37:05 +02:00
Kai Bao
8922f3e041
adding a function calculateExplictQuantities to WellInterface
...
to hide some implementation details.
2017-10-12 13:37:05 +02:00
Kai Bao
47c7c54548
making the updateWellControl to WellInterface
...
instead of having two of them in StandardWell and MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
553eeaaa82
adding updateWellControl to MultisegmentWell
...
it turned out to be same with the one in StandardWell
considerng to make it in the WellInterface.
2017-10-12 13:37:05 +02:00
Kai Bao
86c9115f1d
adding function updateWellStateWithTarget for MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
c26b5905a8
re-organizting the function prepareTimeStep() for StandardWellsDense
...
for better readibility and organization.
2017-10-12 13:37:05 +02:00
Kai Bao
1024ce31f6
adding function updatePrimaryVariables() to MultisegmentWell
...
Basically, calculate the value of primary variables based on WellState.
2017-10-12 13:37:05 +02:00
Kai Bao
16ecbddefb
when encountering a multisegment well
...
we create a multisegment well instead of treating all the wells as
StandardWell. Making it compile.
2017-10-12 13:37:05 +02:00
Kai Bao
d694a72b53
adding initMSWell() to handle MS well related WellState.
2017-10-12 13:37:05 +02:00
Kai Bao
315c4a1659
more implementatin in WellStateMSWell
...
very likely that we will not use it.
2017-10-12 13:36:27 +02:00
Kai Bao
8c0af08056
adding comments for MultisegmentWell
2017-10-12 13:36:27 +02:00
Kai Bao
b5323b1b79
begin the class WellStateMSWell
...
it will be for each individual MS well.
it is kind of the start of the refactoring of the WellState.
2017-10-12 13:36:27 +02:00
Kai Bao
359de15f2b
begining MultisegmentWell.hpp
2017-10-12 13:36:27 +02:00
Atgeirr Flø Rasmussen
bbfd5b6413
Merge pull request #1180 from blattms/cleanup-version-ifs
...
[cleanup] Removes unnecessary if clauses for unsupported DUNE versions.
2017-10-12 13:28:50 +02:00
Atgeirr Flø Rasmussen
f30b95e0e7
Merge pull request #1298 from blattms/cleanup-version-ifs
...
[cleanup] Removes unnecessary if clauses for unsupported DUNE versions.
2017-10-12 13:28:45 +02:00
Atgeirr Flø Rasmussen
91cac266b4
Merge pull request #1299 from andlaus/remove_SimulationParameter
...
do not set the SimulationParameter property anymore
2017-10-12 10:47:03 +02:00