Commit Graph

9642 Commits

Author SHA1 Message Date
Markus Blatt
29e893dc8e Make sure the the OwnerOverlopCommunication object stays alive.
As the AMG hierarchy is kept and uses the initial OwnerOverlopCommunication object
we need to make sure that this object lives as long as the hierarchy. We assure
this by storing a shared_ptr to it in ISTLSolverEbosCpr and reuse it to construct
the WellModelMatrixAdapter.
2019-04-10 14:40:46 +02:00
Markus Blatt
8057c2ba83 Use a shared pointer to the OwnerOverlapCommunication in WellModelMatrixAdapter.
Previously the OwnerOverlapCommunication object was owned by the adapter as a
unique_ptr was used. The change to shared_ptr makes it possible to to extract
it and reuse even if OwnerOverlapCommunication is thrown away.
2019-04-10 14:40:46 +02:00
Markus Blatt
6538b59d9e Added parallel CPR that reuses the matrix hierarchy.
Currently this just compiles but still segfaults in parallel.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
07e495c9da More minor cleanup. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
7664d27849 Clean up formatting and get most types from superclass. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
be86b90bac Make typed protected rather than private, enabling inheritance. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
2cf990e404 Do not store copy of weights inside BlackoilAmgCpr class. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
416cc93f96 Remove code that is no longer needed. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
0e5a5c5266 Minor cleanup. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
3d9c776384 Disable most of the file, as the base version is sufficient.
All features have been added to BlackoilAmg.hpp.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
6d18c2849d Allow updating the AMG preconditioner.
This adds the significant modifications from the BlackoilAmgCpr
experimental class to BlackoilAmg.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
032701ffc9 Silence unused argument warnings. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
0e1db0c6bd Reindent, remove unused function (after refactoring). 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
5d68a308b5 Fix memory bug by refactoring.
Moving out of a matrix in the same function argument list as the matrix is passed
to another function is wrong. Simplified by avoiding the unwieldy tuple.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
c92d84432c Replace tabs with spaces. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
5f4f8b71a8 Silence override and member order warnings. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
29837be2e3 Changes to minimize differences to original istl versions.
Also added note pointing to original istl files.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
13c6463f89 Refactor to be closer to the original amg.hh.
Should minimize the diff when comparing.
2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
b39815edb5 Minor formatting and removing unused code. 2019-04-10 14:40:46 +02:00
Atgeirr Flø Rasmussen
28dfef1ecf Compile fix: do not use undefined member. 2019-04-10 14:40:46 +02:00
hnil
4f1603407d Added timing of prepare call for linear solvers 2019-04-10 14:40:46 +02:00
hnil
ed24b3fcad changed code to use direct solver on coarses scale for amg. This should runtime stettings for this.. 2019-04-10 14:40:46 +02:00
hnil
f05a9fdb25 Version of cpr amg which can reuse setup and also change smoothers of fine and coarse system by changing tags 2019-04-10 14:40:46 +02:00
Kai Bao
1faf4de904 not throw for failure when failing in calculating well potentials
it is just a temporary approach to recover the prediction case. In the
case, there is no group control, while there is some requirements of
well potential output
2019-04-09 14:28:44 +02:00
Kai Bao
e73fc4ebe4 first version of using upwinding to handle mass balance for MSW
some details to come to make it complete.

We are not handling it for injectors and also we are not considering the
upwinding when handle the frictional pressure loss and acceleration
pressure loss.
2019-04-08 14:23:21 +02:00
Kai Bao
2c69556fad correcting of the sign when calculating perforation pressure
the sign of the perforation and cell pressure difference was wrong.
2019-04-08 14:23:05 +02:00
Kai Bao
dadb31f093 fixing some mistakes from rebasing 2019-04-07 14:55:08 +02:00
Kai Bao
e5090a26fb setting the simulation parameters 2019-04-07 14:55:08 +02:00
Kai Bao
49a8c7bfd1 changing the sign of the mass balance equations for ms wells
following the conventions with StandardWell
2019-04-07 14:55:08 +02:00
Kai Bao
23d2097d44 various improvements to the inner iteration of ms wells 2019-04-07 14:54:05 +02:00
Kai Bao
031c19fc78 fixing mistakes due to rebasing. 2019-04-07 14:54:05 +02:00
Kai Bao
e9c0bdba06 using B_avg for the inner iteration for multisegment wells 2019-04-07 14:54:05 +02:00
Kai Bao
1df65913d7 updating the primary variables before calculating accumulation term 2019-04-07 14:54:05 +02:00
Kai Bao
79e51ab724 handling the situation that not all the connections are open
Then Wells struct and well from parser hold different numbers of
connections.

The current approach is a temporary solution. The final approach should
be done through parser side.

Things can be difficult is because that connections can be removed due
to multiple different causes after parsing. How to keep information
always updated is not trivial.
2019-04-07 14:53:38 +02:00
Kai Bao
c78a59eb1f considering the pressure dependence of the segment volume
segment volume is fixed, while duo to composition and pressure change,
within the fixed segment volume, different amounts of fluids can be
contained.
2019-04-07 14:53:38 +02:00
Kai Bao
972fed602e using a small value drawdown for connection
when crossflow is banned from the well, while the crossflow is happening
for this connection for mutlisegment well.
2019-04-07 14:53:38 +02:00
Kai Bao
04c35c8916 UseMultisegmentWell is defaulted to be true
to make the testing of the multisegment well model easier.
2019-04-07 14:52:18 +02:00
Kai Bao
f8767e09ec cleaning up and fixing the compilation error from rebasing 2019-04-07 14:52:18 +02:00
Kai Bao
9d83affb1b first version of restarting for multisegment well 2019-04-07 14:52:18 +02:00
Kai Bao
0d99686e97 fixing the segment treatment in the init of WellStateFullyImplicitBlackoil 2019-04-07 14:52:18 +02:00
Bård Skaflestad
2932531572
Merge pull request #1782 from GitPaean/upadting_perforation_solution_msw
updating perforation pressure and rates for MSW well
2019-04-05 16:41:43 +02:00
Andreas Lauser
4805e9fe05 ebos: run the diagnostics code for relative permeabilities
maybe this needs to be reverted since the code in question can
cause the simulation to abort inadvertently.

As usual, `flow` is unaffected because this functionality is only
called in experimental mode and flow calls it itself.
2019-04-05 16:21:22 +02:00
Andreas Lauser
67a8283000 ebos: call Opm::checkDeck() after parsing
this catches at least some common issues with ECL decks.
2019-04-05 16:21:22 +02:00
Joakim Hove
63f6f34906
Merge pull request #1781 from andlaus/adapt_to_checkDeck_changes
also pass the parseContext and errorGuard to Opm::checkDeck()
2019-04-05 12:07:40 +02:00
Atgeirr Flø Rasmussen
a8d8fb86c3
Merge pull request #1592 from bska/report-segment-res
WellState FIBO: Return Segment Vectors from report()
2019-04-05 10:49:14 +02:00
Kai Bao
e2b8edd968 updating perforation pressure and rates for MSW well 2019-04-05 10:38:01 +02:00
Andreas Lauser
6f1018f11a also pass the parseContext and errorGuard to Opm::checkDeck() 2019-04-04 18:13:36 +02:00
Kai Bao
b62dc0b5f2 addressing review comments 2019-04-04 16:22:19 +02:00
Kai Bao
ca69e2334a recovering well restart data for multisegment well
When multisegment wells are involved for RESTART, based on the recovered
segment-related quantities as Opm::data::Segment objects, the segment
phase rates and segment pressure are recovered as part of the
WellStateFullyImplicitBlackoil.
2019-04-04 16:22:19 +02:00
Bård Skaflestad
dce27c6829 WellState FIBO: Return Segment Vectors from report()
This commit extends class WellStateFullyImplictBlackoil to report
segment-related quantities as Opm::data::Segment objects (included
in Opm::data::WellRates objects).  All wells have at least a top
segment in the context of WellState FIBO, so there is a meaningful
value to report for each well.

We put the extraction of segment-related quantities into a new
helper function

    WellStateFullyImplicitBlackoil::reportSegmentResults()

to avoid cluttering up the body of report() more than absolutely
needed.

The primary use-case for this is assigning appropriate values to
items 8 through 11 of restart vector RSEG.  In turn, this will
enable restoring these quantities from a restart file.
2019-04-04 16:22:19 +02:00