Commit Graph

1211 Commits

Author SHA1 Message Date
Joakim Hove
a0d41dc130 Added WellCompletion namespace 2015-01-12 12:10:51 +01:00
Tor Harald Sandve
880026e893 Fix comments. 2015-01-09 09:10:10 +01:00
Tor Harald Sandve
1718800e55 Add warning to c solvers when stopped wells occur
Stopped wells are treated as shut wells in the c solvers in opm-core.
I.e they are completly isolated from the domain.
2015-01-09 09:10:10 +01:00
Tor Harald Sandve
82eafbb510 Renaming well is shut to well is stopped.
Rename the the meaning for shut as whats used in Eclipse.
STOP: Well stopped off above the formation. I.e. allow for flow in the
well.
SHUT: Well completely isolated from the formation. The well is removed
from the well list.
2015-01-09 09:10:10 +01:00
Tor Harald Sandve
b8bf45d24d Support stopped wells
The given control is applied to the stopped well, and the status is set
to not open. (i.e closed, but currently named shut)
2015-01-09 09:10:10 +01:00
Atgeirr Flø Rasmussen
45a2631b7f Put reformatted error message in anonymous namespace. 2015-01-07 10:16:13 +01:00
Atgeirr Flø Rasmussen
dfebd46acf Make compilation of class depend on Boost.Heap availablility.
If boost version is too old, the API is still the same and the
class will build, but throws upon construction.
2015-01-07 09:49:47 +01:00
Atgeirr Flø Rasmussen
1e39010ba4 Fix anisotropy closeness test.
The old test was simply wrong: it computed the M-distance and compared
to the grid radius, which becomes dependent on the scaling of the
metric M. The corrected test in isClose() depends on the anisotropy
ratio of M and the grid radius.
2015-01-02 15:22:02 +01:00
Atgeirr Flø Rasmussen
8491d186d4 Make isClose() use actual grid and metric data.
Note that current implementation is somewhat ad-hoc, and not
in line with the algorithm of the paper.
2014-12-29 12:28:30 +01:00
Atgeirr Flø Rasmussen
2eab160761 Whitespace fix. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
451bca1753 Add computeValueUpdate() to avoid recomputing. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
cb7be97ee5 Change order of steps in algorithm to avoid rework. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
5233d37e63 Follow renaming of function. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
c5a19b250b Fix bug in distance derivative function. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
654e06de00 Work in progress. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
5d81306007 Initial versions of compute functions done.
Still has bugs.
2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
22cbcc8bf5 Solver logic finished.
Methods isClose(), computeFromTri() and computeFromLine() are still dummies.
2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
ee4d2be67e Work in progress on AnisotropicEikonal. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
84da6a28f3 Added simple test, work in progress. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
3001768632 Add skeleton of AnisotropicEikonal class and test. 2014-12-29 12:28:29 +01:00
Atgeirr Flø Rasmussen
dea6e8c044 Merge pull request #702 from jorgekva/linsolver_petsc
PETSc support in OPM
2014-12-19 11:25:58 +01:00
Jørgen Kvalsvik
263e1a6928 Sets initial guess to zero.
Setting it to nonzero means starting to approximate from memory garbage values.
2014-12-10 18:15:33 +01:00
Jørgen Kvalsvik
294ec58bed Adds missing VecCreate. 2014-12-10 18:15:13 +01:00
Jørgen Kvalsvik
b3ebe04e14 Adds missing preconditoner destruction. 2014-12-10 18:09:13 +01:00
Jørgen Kvalsvik
8fbbdad722 Renamed variables to match Ax = b 2014-12-10 18:09:01 +01:00
Jørgen Kvalsvik
37a47711e5 Vector construction is now value oriented.
No longer initialised and constructed in two places.
2014-12-10 18:07:45 +01:00
Jørgen Kvalsvik
6c70d2938d Removes unecessary whitespace. 2014-12-10 18:06:28 +01:00
Jørgen Kvalsvik
43d82a232c Fixes performance bug in matrix construction.
At the same time changes the construction to be value-oriented, not
constructing it in OEM_DATA, but rather in to_petsc_mat
2014-12-10 18:05:04 +01:00
Atgeirr Flø Rasmussen
06382498d2 Silence unused argument warning. 2014-12-02 09:17:11 +01:00
Andreas Lauser
64107ecc1b PVT properties: allow them to be temperature dependent
Note that this patch does not introduce any real temperature
dependence but only changes the APIs for the viscosity and for the
density related methods. Note that I also don't like the fact that
this requires so many changes to so many files, but with the current
design of the property classes I cannot see a way to avoid this...
2014-12-01 20:06:31 +01:00
Atgeirr Flø Rasmussen
f279629bf1 Suppress unused argument warning in release mode. 2014-11-24 10:54:51 +01:00
Markus Blatt
f763192a32 [cleanup] Removes a superfluous if-check of the well state.
There were to identical if statements and the second one was followed
by an else branch. While in this case (if statement just throws) it is not
a bug, this commit cleans up one of the if statements.
2014-11-20 14:47:21 +01:00
Markus Blatt
529d0887a3 Fixes missing return value in non-void function of WellsManager.
gcc warned about the following

/home/mblatt/src/dune/opm/opm-core/opm/core/wells/WellsManager.cpp: In function ‘std::array<long unsigned int, 3ul> WellsManagerDetail::directionIndices(Opm::CompletionDirection::DirectionEnum)’:
/home/mblatt/src/dune/opm/opm-core/opm/core/wells/WellsManager.cpp:191: warning: control reaches end of non-void function

To calm it I introduced a throw clause after the switch statements. Thus adding a new
enum value will raise a warning on smart compilers, hopefully.
2014-11-20 11:53:23 +01:00
Jørgen Kvalsvik
e69d92cca3 Moved KSPCreate to the Data constructor
This is where it was always intended to be called, so this fixes a mistake in
earlier development.
2014-11-12 20:41:21 +01:00
osae
c7f4ea8abd Rename eclState to eclipseState. 2014-11-05 16:10:05 +01:00
osae
2c09d2ce57 Base initialisation of SWL etc on EclipseState ...
Thus allowing an unmodified Norne deck.
2014-11-05 16:10:05 +01:00
osae
93dde017c6 Bugfix: Actually use column index ... 2014-11-05 16:10:05 +01:00
osae
1b5708871d Cleaning up and preparation for eclipseState. 2014-11-05 16:10:05 +01:00
Tor Harald Sandve
3fe61bfb1b BUGFIX. Do not increase well index for shut wells.
Shut wells are not added to the well list and the well index should
therefore not be increased when well control is set. This is similar to
whats is done for shut wells in createWellsFromSpecs.
2014-10-27 07:20:03 +01:00
Robert K
da6b4109ba remove unused typedef to avoid compiler warning and keep code clean. 2014-10-24 12:51:57 +02:00
Tor Harald Sandve
4585446e5a Fix SHUT wells
Shut wells are not added to the well list and thus not considered in the
simulator.

The shut well test in test_wellsmanager is modified to assert this
behaviour.

BUG: This change provokes an assert in the EclipeWriter as number of
wells in wellstate is different from number of wells in the schedule.
2014-10-24 06:57:38 +02:00
Joakim Hove
642c5309c9 Minor whitespace fixup 2014-10-17 08:05:13 +02:00
Jørgen Kvalsvik
7c78afa13d Reduces CHKERRXX usage to where necessary.
The error checking macro makes it harder to read and harder to write, so
instead we now only check for functions  that can contain errors. Bounds and
range checks are handled by PETSc and not OPM.
2014-10-14 14:43:42 +02:00
Jørgen Kvalsvik
93a8430339 Petsc constructor now uses intialiser list.
The previous implementation set plenty of values in the initialization list and
immediately overwrote these values with values looked up from the param group.
This patch makes it look up the parameteres from the param group argument,
making the constructor simpler.
2014-10-14 14:43:42 +02:00
Jørgen Kvalsvik
ce3981a55e Makes using wrong constructor a compile-time error
Petsc only supports initialisation through the ParameterGroup constructor.
Calling the default, non-arg constructor is a static error, and not
implementing it makes using it break compiles.
2014-10-14 14:43:42 +02:00
Jørgen Kvalsvik
ade7aa658e Removes call_petsc.c and calls the lib from C++
call_petsc.c was really a thin C wrapper around the call to petsc itself and
turns out was mostly unnecessary C++ emulation. This removes the file entirely
and ports its functionality into LinearSolverPetsc.cpp.

All features from the file should now be more readable as well as properly
utilising modern C++ features.

The patch uses the CHKERRXX macro from petsc to handle errors reported by
petsc, and currently does not handle this and give the control back to OPM's
error/throw system.
2014-10-14 14:43:42 +02:00
Joakim Hove
827089b835 Bug in well_index increment in WellsManager 2014-10-14 12:43:57 +02:00
Joakim Hove
c9ad66168f Will not update WellControls if cmode == CMODE_UNDEFINED 2014-10-14 12:42:55 +02:00
Joakim Hove
cbff4612a3 ControlMode is left undefined if it unset in deck. 2014-10-14 12:34:58 +02:00
Andreas Lauser
0a1775db02 WellsManager: do not require a control mode to be set if the well status is SHUT
For Norne it fell on its nose because of this...
2014-10-08 12:35:38 +02:00