Commit Graph

777 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
5288b84bdc Increased quadrature order in a term.
This is for the benefit of bi/tri-linear basis functions, as stated
in the comments.
2013-01-16 13:45:15 +01:00
Atgeirr Flø Rasmussen
f539c4d183 Moved DG basis to separate classes in its own file.
Also introduced interface (base) class and changed the api, not used yet by the tof solver.
2013-01-16 13:38:02 +01:00
Atgeirr Flø Rasmussen
954ebfa837 Add methods addConstant() and multiplyGradient() to multilinear basis.
Not tested yet, though.
2013-01-15 20:44:28 +01:00
Atgeirr Flø Rasmussen
b61bb494dc Implement limiters with addConstant() and multiplyGradient().
This is instead of directly manipulating the coefficients, requiring
assumptions on the basis used.
2013-01-15 13:52:44 +01:00
Atgeirr Flø Rasmussen
5ac24f9b8d Added addConstant() and multiplyGradient() methods.
So far only to class DGBasisBoundedTotalDegree.
2013-01-15 13:44:18 +01:00
Atgeirr Flø Rasmussen
406965124a Added class DGBasisMultilin.
Multilinear DG1 basis functions added. Will not work with current limiter.
2013-01-15 13:42:05 +01:00
Atgeirr Flø Rasmussen
e24795ba94 Reduce source sum failure from error to warning.
Should extend to sum over sources and boundaries before reinstating.
2013-01-15 13:39:35 +01:00
Atgeirr Flø Rasmussen
5548fd85f9 Renamed class DGBasis -> DGBasisBoundedTotalDegree. 2013-01-15 13:37:39 +01:00
Atgeirr Flø Rasmussen
81c8870ba8 Do not require unnecessary high quadrature precision. 2013-01-15 13:33:55 +01:00
Atgeirr Flø Rasmussen
7f05b1bb0e Added (disabled) extra output for debugging purposes.
Enable by defining EXTRA_VERBOSE.
2013-01-15 13:17:43 +01:00
Atgeirr Flø Rasmussen
dd2e01ce9e Do not assume that the first basis function is the constant 1.
Properly integrate b_i * porosity over the cell for all basis functions b_i.
2013-01-15 13:10:09 +01:00
Atgeirr Flø Rasmussen
e5ff636860 Merge branch 'master' into dg-improvements 2013-01-08 16:01:52 +01:00
Atgeirr Flø Rasmussen
89516931e4 Added MinUpwindAverage limiter method, made it default. 2013-01-08 16:00:17 +01:00
Atgeirr Flø Rasmussen
53932a8184 Documented new available limiting options in constructor doc. 2013-01-08 13:34:50 +01:00
Atgeirr Flø Rasmussen
a0827ab02d Change constructor to take ParameterGroup argument.
Also make tof to limit against >= 0.0, for case when upstream cell values go
below zero.

Disabled some debug output.
2013-01-08 13:14:26 +01:00
Atgeirr Flø Rasmussen
832072a5cb Improvements to DG1 flux limiter.
Skeleton in place for increased flexibility in methods and usage.
(So far behaviour choices are hardcoded, though.)
Added relative flux thresholding to existing limiter to avoid flux noise
strongly affecting solution. For example no-flow boundaries could be treated
as inflow boundaries and make the minimum upwind face limiter meaningless.
2013-01-08 11:04:43 +01:00
Atgeirr Flø Rasmussen
6a23ebe449 Add methods sequence() and components(). 2013-01-08 11:04:07 +01:00
Atgeirr Flø Rasmussen
db7fe12a45 Simplify and correct implementation of limiter.
Now we check all corners' tof values for the cell under consideration,
not just the inflow face corners'.
2013-01-07 15:48:47 +01:00
Atgeirr Flø Rasmussen
bfa52cc5f2 Bugfix, again: it was correct to take the maximum, reinstating.
There is a different problem that needs fixing, however:
Flux inaccuracies (for example on boundaries) may tag some
face as inflow face for a cell, even if it should have been
no-flow. This may let the cell avoid limiting, even though it
should have been limited according to the proper inflow faces.
2013-01-07 15:10:43 +01:00
Atgeirr Flø Rasmussen
583c905a43 Bugfix: take minimum of allowed slopes, not maximum. 2013-01-04 19:59:05 +01:00
Bård Skaflestad
70da461a97 Merge pull request #110 from atgeirr/dg-improvements
Improvements for time-of-flight and tracer computations
2013-01-03 08:25:11 -08:00
Atgeirr Flø Rasmussen
8cb2ea4c94 Added solveTofTracer() method. 2013-01-03 14:07:51 +01:00
Atgeirr Flø Rasmussen
538e1eab5f Limiter now works reasonably well.
Case with no inflow faces should be checked.
2012-12-20 18:03:08 +01:00
Bård Skaflestad
1059611c78 Merge pull request #109 from atgeirr/dg-improvements
DG time-of-flight improvements
2012-12-19 09:09:33 -08:00
Atgeirr Flø Rasmussen
3e723bc965 Added limiter for DG1, parameter 'use_limiter'.
The limiter is experimental and unfinished, untested work in progress.
Limiter is therefore inactive by default.

Also fixed a minor bug: use_cvi_ was not initialized.
2012-12-18 14:15:31 +01:00
Atgeirr Flø Rasmussen
94b128d6b6 Bugfix: use sufficient quadrature order. 2012-12-18 14:12:56 +01:00
osae
51d2e9de0d Support for keywords ENPTVD and ENKRVD. 2012-12-17 14:02:30 +01:00
osae
28a3a0770f Scaling of relperm functions - oil/water systems.
opm/core/eclipse/EclipseGridParser.cpp
opm/core/eclipse/EclipseGridParser.hpp
- New keywords: ENDSCALE SCALECRS SWCR SWL SWU SOWCR KRW KRWR KRO KRORW

opm/core/eclipse/SpecialEclipseFields.hpp
- Parsers for ENDSCALE and SCALECRS.

opm/core/fluid/BlackoilPropertiesFromDeck.cpp
- Consistency check: ENDSCALE implemented for SatFuncSimple only.

opm/core/fluid/SatFuncGwseg.hpp
opm/core/fluid/SatFuncSimple.hpp
opm/core/fluid/SatFuncStone2.hpp
- Accomodate "default" values for scalable parameters.
- For SatFuncGwseg and SatFuncStone2 the associated functionality not
  yet supported and the variables are dummies to satisfy the compiler.

opm/core/fluid/SatFuncSimple.cpp
- Initialisation for scalable parameters.
- Evaluation of relperms: Use (1-so) for evaluation of oil-relperms.
  (For scaled arguments sw and so do not necessarily add to one.)
- TODO: SatFuncGwseg.cpp and SatFuncStone2.cpp for oil-water systems.

opm/core/fluid/SaturationPropsFromDeck.hpp
- Struct to accomodate cell-wise scaling factors.
- Two flags indicating scaling and method.
- Methods for parameter initialisation and scaled relperm computation.

opm/core/fluid/SaturationPropsFromDeck_impl.hpp
- Initialize scaling options and relevant cell-wise scaling factors.
- Relperm evaluation modified for possible end point scaling.
2012-12-07 14:52:00 +01:00
Atgeirr Flø Rasmussen
5e04ec1448 Modify precision for quadrature depending on use of CVI method. 2012-12-06 10:18:57 +01:00
Atgeirr Flø Rasmussen
534f8f8bb6 No longer ignores boundary fluxes.
This means that the class does expect source terms that are just that, and not
'transport source' terms that include boundary inflows (like the transport
solvers expect). This is also consistent with the behaviour of the DG version.
2012-12-05 10:39:00 +01:00
Atgeirr Flø Rasmussen
8fce539d3d Adapt to moved [Cell|Face]Quadrature classes.
Also fix a minor issue with potentially buggy error output after LAPACK failure.
2012-12-04 16:11:05 +01:00
Halvor Møll Nilsen
1be0bd4a20 Corrected include statements after renaming files. 2012-11-16 16:24:54 +01:00
Halvor Møll Nilsen
4a6e10bb08 Continued renaming of transpormodels to transportsolver*reorder 2012-11-16 16:06:01 +01:00
Halvor Møll Nilsen
6b73114430 Changed name of all TransportModels which was reorder solvers 2012-11-16 16:00:56 +01:00
Halvor Møll Nilsen
74cddb0b01 Changes needed to for makeing a simulator using ImplicitTransport. Several changes in names to highlight what is reorder simulator classes 2012-11-16 13:38:03 +01:00
Halvor Møll Nilsen
cfae3edcaf Changes to try to make naming and classes more consistent. This is a start to make devide models and tranport solvers so that VE models is more easely handled 2012-11-15 13:20:49 +01:00
Atgeirr Flø Rasmussen
6324408357 Update CompressibleTpfa wellbore gravity handling.
Should now be in sync with cfs_tpfa_residual C interface. Simple well
gravity model implemented.
More flexibility in well gravity models would be a natural future extension.
2012-11-06 19:28:22 +01:00
Bård Skaflestad
ab71ea4780 Merge branch 'master' into gravity-in-wells 2012-11-05 15:48:07 +01:00
Atgeirr Flø Rasmussen
7deba2cce0 Bugfix tof computations with multidimensional upwinding.
Cell tof depends on downwind face tof in a more complicated way
with multidim upwinding, this was not done correctly.
2012-11-05 14:26:00 +01:00
Bård Skaflestad
a0c8028ea8 Account for gravity in well connection flux calculation
We previously ignored effects of gravity in the calculation of the well
connection fluxes (i.e., perforation fluxes).  This commit includes
those effects where appropriate.
2012-11-01 13:34:27 +01:00
Halvor Møll Nilsen
e66df86e2d Changed cmake to make build without ert for now. Small change in WellsManager.cpp 2012-10-30 14:51:12 +01:00
Halvor Møll Nilsen
ae05d3d7e8 Merge from upstream and corrected conflictes. 2012-10-30 13:38:55 +01:00
Halvor Møll Nilsen
036cfacea4 changes to be able to use black oil properties even if rock do not match current grid 2012-10-30 13:28:22 +01:00
Atgeirr Flø Rasmussen
a124d2e3be Implemented multidimensional upwinding.
The 'SMU' variant is chosen for its smoothness.
2012-10-30 13:10:50 +01:00
Atgeirr Flø Rasmussen
bd013a7d4d Added parameters for controlling use of multidim upwinding.
For now, you will simply get SPU even with use_multidim_upwind=true.
2012-10-29 17:23:17 +01:00
Bård Skaflestad
7406847201 Merge branch 'master' into gravity-in-wells 2012-10-25 10:44:17 +02:00
Atgeirr Flø Rasmussen
17ffcc77aa Merge pull request #84 from bska/fix-equality-comparisons
Fix well classification that was only correct by accident
2012-10-25 01:08:48 -07:00
Bård Skaflestad
f9fe3322b6 Merge branch 'master' into gravity-in-wells 2012-10-24 22:43:25 +02:00
Roland Kaufmann
28661b7342 Remove superfluous construction by std::make_pair
Since we know the type of the components, we may just as well create the
pair directly! (Using make_pair invokes compiler bugs in GCC).
2012-10-24 21:22:11 +02:00
Bård Skaflestad
0c599b8868 Fix well classification that was only correct by accident
Specifically, the tests

   if (!wells->type[self_index] == INJECTOR)
   if (!wells->type[self_index] == PRODUCER)

produced the expected results *only* because INJECTOR==0 and PRODUCER==1
in the WellType enumeration, thus (!INJECTOR == PRODUCER) and
(!PRODUCER == INJECTOR).

Installing the (much) more appropriate

    if (wells->type[self_index] != INJECTOR)
    if (wells->type[self_index] != PRODUCER)

is not only more readable, it is also future-proof and scales better if
we ever introduce new WellTypes (e.g., a MONITOR).
2012-10-24 21:12:29 +02:00
Bård Skaflestad
98fd1f05dd Merge branch 'master' into gravity-in-wells 2012-10-24 10:09:31 +02:00
Roland Kaufmann
d8dd982408 Make GCC 4.6.3 happy in C++0x mode
It complains about not finding a match for the pair<> template class,
because the first parameter (this) is allegedly const. However, this
isn't a const method, so I suspect it is a compiler bug.

In order to move on, I slap on a harmless cast which will make this
particular compiler happy, and which should have no effects elsewhere,
but put it in a #if..#else..#endif macro to avoid warnings on others;
hopefully this also makes it easier to spot and remove in the future.
2012-10-24 09:57:12 +02:00
Bård Skaflestad
8e38cd5f5c Merge branch 'master' into gravity-in-wells 2012-10-17 13:30:37 +02:00
Atgeirr Flø Rasmussen
88af4a4ce3 Fix output in case of LAPACK error.
Make copy of matrix before calling dgesv, since it will overwrite it.
2012-10-17 12:40:43 +02:00
Bård Skaflestad
5afc290604 Don't compare floating point numbers for equality. 2012-10-16 21:48:38 +02:00
Bård Skaflestad
75f7a725b3 Update documentation accompanying CompletionData structure.
Specifically, the 'wdp' member is a scalar value at each well
connection.  Phase behaviour is incorporated through other means.
2012-10-16 14:05:33 +02:00
Bård Skaflestad
8a8c29f5ce Rename CompletionData::gpot -> wdp .
This is in preparation of implementing actual gravity support in
(compressible) well-pressure solution.
2012-10-16 13:55:07 +02:00
Atgeirr Flø Rasmussen
49af5dcd7b Use new velocity interpolation interface.
The class TransportModelTracerTofDiscGal now uses
VelocityInterpolationInterface, and acts as a factory
internally, choosing an interpolation method depending on
the parameter 'use_cvi'.
2012-10-16 11:11:33 +02:00
Bård Skaflestad
10604d237b Document public interface of compr_source module.
This is Doxygen-style reference documentation only.
2012-10-15 19:49:23 +02:00
Bård Skaflestad
80a14f849b Reformat to add Doxygen markup where appropriate 2012-10-15 19:15:31 +02:00
Bård Skaflestad
30cb6eaf7f Document public interface of compr_quant_general module
This is Doxygen-style reference documentation only.
2012-10-15 16:08:17 +02:00
Bård Skaflestad
f35663130a Document public interface of cfs_tpfa_residual module
This is Doxygen-style reference documentation only.
2012-10-15 15:21:27 +02:00
Bård Skaflestad
d3f85ea60c Merge remote-tracking branch 'upstream/master' into ert
Conflicts:
	Makefile.am
	opm/core/grid/cpgpreprocess/preprocess.h
	tests/Makefile.am

This brings ert branch up-to-date with current Github master branch.
2012-10-12 00:43:51 +02:00
Atgeirr Flø Rasmussen
ca15ce6eec Fix comment. 2012-10-10 14:12:38 +02:00
Atgeirr Flø Rasmussen
89eee7e220 Bugfix: order of function arguments.
Order of arguments for computePhaseFlowRatesPerWell() was wrong.
This fix was done previously for SimulatorCompressibleTwophase,
but the incompressible sim was ignored.

Also added an ASSERT that may help catch some misuse.
2012-10-10 14:09:09 +02:00
Atgeirr Flø Rasmussen
c8498b76b6 Merge pull request #59 from kristinf/dev
sign error in total_produced

Looks correct.
2012-10-10 04:49:06 -07:00
kristinf
a740bcfe5f sign error in total_produced 2012-10-09 15:23:56 +02:00
Atgeirr Flø Rasmussen
31d17a0dcd Whitespace cleanup. 2012-10-09 12:21:17 +02:00
Atgeirr Flø Rasmussen
76259dcd0f Improve docs and give more info on error. 2012-10-09 09:54:54 +02:00
Atgeirr Flø Rasmussen
36721602b2 Add timing of topological sort. 2012-10-09 09:54:26 +02:00
Atgeirr Flø Rasmussen
256a5496b1 Merge branch 'master' into reorder_tof 2012-10-08 16:16:05 +02:00
Atgeirr Flø Rasmussen
9e90dcebe5 Fix sign of production rate controls.
In the Wells struct, production rate control targets must be negative
(and injection rate control targets are always positive).
In the WellsGroup classes, there are separate variables for injection
and production, and all rates are positive. Therefore, upon adding or
modification of a production rate control, the negated value must
be used.
2012-10-08 14:27:56 +02:00
Atgeirr Flø Rasmussen
a635140500 Merge branch 'master' into reorder_tof 2012-10-08 13:52:59 +02:00
Bård Skaflestad
d6154d8961 Clone wells object when constructing from existing.
This installs a measure of safety on the part of the interface in that
the caller is free to dispose of the wells object upon returning from
the WellsManager constructor.
2012-10-05 10:15:06 +02:00
Halvor Møll Nilsen
044c13e9fb Added constuctor to WellManager which used Wells struct. 2012-10-05 10:14:55 +02:00
Bård Skaflestad
e5c5a64a4a New function clone_wells()
Used to create a deep copy (clone) of an existing Wells object.

While here, add test case for common Wells object operations.
2012-10-05 10:14:44 +02:00
Atgeirr Flø Rasmussen
108589a286 Merge branch 'master' into reorder_tof 2012-10-05 09:20:37 +02:00
Bård Skaflestad
24504875ea Reference <grid.h> from canonical location.
The header was removed from this directory upon import from the
preexisting "opmtransport" repository.
2012-10-05 00:56:12 +02:00
Bård Skaflestad
4d488c98a7 Unequivocally exclude MATLAB timing printing.
It is not actually needed and prevents building when symbol
MATLAB_MEX_FILE is defined.
2012-10-05 00:53:59 +02:00
Atgeirr Flø Rasmussen
6f31f059d7 Merge branch 'master' into reorder_tof 2012-10-03 10:05:53 +02:00
Atgeirr Flø Rasmussen
a9783eefc7 Add explanatory comment. 2012-10-02 15:46:33 +02:00
Atgeirr Flø Rasmussen
5acbf00b14 Update compressible transport solver for new src convention.
Namely, that inflowing transport sources are water *surface* volumes,
not water *reservoir* volumes.
2012-10-02 14:37:18 +02:00
Atgeirr Flø Rasmussen
4f276a8870 Bugfix: size of vector for A should be np*np. 2012-10-02 14:35:28 +02:00
Atgeirr Flø Rasmussen
017663cc5b Change interface for (blackoil) computeInjectedProduced().
Also use new computeInjectedProduced() and computeTransportSource()
functions in SimulatorCompressibleTwophase.
2012-10-02 11:12:23 +02:00
Atgeirr Flø Rasmussen
17c1be6541 Modified functions dealing with transport source.
In preparation for switching to new convention for inflow
sources in the compressible case: source being surface volumes,
not reservoir volumes.
2012-10-01 16:40:47 +02:00
Atgeirr Flø Rasmussen
6fb248d403 Update WellState::perfPress() after pressure solve. 2012-10-01 16:40:10 +02:00
Atgeirr Flø Rasmussen
0eb54ca90a Added perfPress() to WellState. 2012-10-01 16:39:35 +02:00
Atgeirr Flø Rasmussen
78835b57b8 Merge branch 'master' into ert 2012-09-30 15:08:49 +02:00
Atgeirr Flø Rasmussen
f6b2306dab Work in progress: degree 2 quadratures.
Also, changed quadrature degrees used to get exact quadratures for all terms.
2012-09-28 14:44:04 +02:00
Atgeirr Flø Rasmussen
cf38936c99 Merge branch 'master' into reorder_tof 2012-09-27 11:19:56 +02:00
Atgeirr Flø Rasmussen
d83ab5856d Fix: forgotten multiply by cell volume in a quadrature. 2012-09-27 09:49:36 +02:00
Atgeirr Flø Rasmussen
04a76988d9 Add sink term contribution. 2012-09-26 15:15:04 +02:00
Atgeirr Flø Rasmussen
93094ebeec Fix argument order in call. 2012-09-26 14:21:00 +02:00
Atgeirr Flø Rasmussen
99a12a7edc Initial version of DG(1) for tof implemented.
Basis functions, quadratures and velocity interpolation are basic versions,
not handling any higher than DG(1) for now. These are currently in helper
classes and functions. The code in the main solver class is written with
the aim of supporting DG(n) generally.
2012-09-26 13:30:54 +02:00
Bård Skaflestad
fb8e79857c Add tentative implementation of surface-rate targets.
Not tested at present.
2012-09-26 10:14:45 +02:00
Atgeirr Flø Rasmussen
bbc5ed5c68 Merge branch 'master' into reorder_tof 2012-09-26 09:08:26 +02:00
Atgeirr Flø Rasmussen
6a01298312 Merge branch 'master' into ert
Conflicts:
	Makefile.am
2012-09-26 09:07:57 +02:00
Atgeirr Flø Rasmussen
1a227dbf86 Added skeleton of general order DG tof solver. 2012-09-26 08:58:03 +02:00
Atgeirr Flø Rasmussen
b9a2c14113 Add proper support for source terms.
This fixes the problem with infinite tofs at sinks.
2012-09-25 14:00:17 +02:00
Atgeirr Flø Rasmussen
ddf177b4c5 Merge branch 'master' into reorder_tof 2012-09-25 10:13:46 +02:00