Commit Graph

948 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
763d14ce4d Refactored limiter functions.
The two limiter functions were very similar, and were unified in a single
method, with a bool argument to choose method variety.
2013-01-21 10:46:06 +01:00
Atgeirr Flø Rasmussen
e368094cd0 Merge remote-tracking branch 'upstream/master' into dg-improvements 2013-01-21 09:59:31 +01:00
Bård Skaflestad
d9842837b3 Merge remote-tracking branch 'upstream/master' 2013-01-18 13:23:52 +01:00
Bård Skaflestad
d0fa32011b Opm::WellState::init(): Handle shut wells
This is a minor bugfix to account for the presence of shut wells
(characterised by "ctrls[w]->current < 0").  The existing code would
lead to indexing outside the "ctrls" array in the context of a shut
well.
2013-01-18 13:23:37 +01:00
Atgeirr Flø Rasmussen
13f945f081 Added test for DG basis classes.
Only 2d so far.
2013-01-17 14:35:50 +01:00
Atgeirr Flø Rasmussen
862c489cc3 Complete separation of basis func classes.
Also:
 - Add use_tensorial_basis parameter allowing run-time choice of basis.
 - Remove degree argument from solveTof() method, degree is instead obtained
   from parameters in constructors. Modified compute_tof* programs to match.
2013-01-16 15:13:45 +01:00
Atgeirr Flø Rasmussen
dc7385204a Implement (empty) virtual destructor, make methods public. 2013-01-16 15:11:46 +01:00
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
76868ebc1c Added parameter compute_tracer. Defaults to false.
Triggers tracer computation and output, in addition to time-of-flight.
2013-01-03 14:08:09 +01: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
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
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
1272575f1f Add use_multidim_upwind parameter. 2012-10-30 10:32:29 +01:00
Atgeirr Flø Rasmussen
d2b935d74f Merge branch 'tof_utilities' into multidim_upwind 2012-10-30 10:25:23 +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
Atgeirr Flø Rasmussen
0f01da85c2 Merge branch 'master', remote-tracking branch 'upstream/master' into tof_utilities 2012-10-29 08:46:26 +01:00
Atgeirr Flø Rasmussen
43162d7d99 Increased number of digits in output. 2012-10-29 08:27:59 +01:00
Atgeirr Flø Rasmussen
29b2bcad45 Added new tof computation utility.
This program assumes that grid, porosity, flux field and sources are
available to read from files. It does not compute any flux field itself.
2012-10-25 14:47:26 +02:00