Commit Graph

1213 Commits

Author SHA1 Message Date
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
Atgeirr Flø Rasmussen
33a91b59f9 Refactor third-party warning suppression.
Use header files from opm/core/utility/platform_dependent instead of
build-system generated ones for suppressing warnings from dune or Eigen.
2014-09-20 10:36:10 +02:00
Andreas Lauser
36e3538b04 adapt the the table related API changes of opm-parser 2014-09-19 14:40:35 +02:00
Atgeirr Flø Rasmussen
b0c6fff9f0 Avoid release mode warnings.
Variables only used in asserts have been removed, their content used
directly in the assert() instead.
2014-09-18 11:31:03 +02:00
Andreas Lauser
2a0c9dd009 rename getCF() to getConnectionTransmissibilityFactor() 2014-09-06 22:28:21 +02:00
Atgeirr Flø Rasmussen
ca25f56365 Merge pull request #648 from bska/fix-peaceman
effectiveRadius: Fix Numerator Formula
2014-09-02 15:46:36 +02:00
Bård Skaflestad
86550fd6c9 effectiveRadius: Fix numerator formula
We must take the square root of the permeability ratios, not use them
as is.  This was lost in the refactorisation commit 96cf137.

Pointy hat: @bska.
2014-09-02 15:12:50 +02:00
Tor Harald Sandve
5c244bd94e Include goc and woc in the span for the phase pressure calculation 2014-09-02 14:49:09 +02:00
Tor Harald Sandve
f960de4b0b Remove fix for GOC and WOC above/below reservoir 2014-09-02 14:49:09 +02:00
Bård Skaflestad
66293e8aed effectiveExtent: Fix out-of-bounds indexing
Commit 96cf137 introduced support for Peaceman index calculation
that honoured general completion directions (X,Y,Z).  This was
accomplished through a permutation index that reordered the
permeability and geometric extent components according to a local
coordinate system along the completion.

In a complete breakdown of logic, however, the d-component extent
vector was indexed as though it were a d-by-d matrix.  This commit
restores sanity to the processing.

Pointy hat: @bska.
2014-09-01 13:30:32 +02:00
Atgeirr Flø Rasmussen
402044a54a Use double braces for std::array init to avoid warning.
Warning triggered at least using clang.
2014-09-01 10:09:27 +02:00
Bård Skaflestad
6ab31022fc WellsManager: Support NTG and horizontal completions
This commit extends the feature set of the WellsManager to support
horizontal ("X" and "Y") completions and include the net-to-gross
ratio in the Peaceman index ("Completion Transmissibility Factor,
CTF") of a well completion.  The NTG factor is included if present
in the input deck represented by the "eclipseState".

There are two separate, though related, parts to this commit.  The
first part splits the calculation of Peaceman's "effective radius"
out to a separate utility function, effectiveRadius(), and
generalises WellsManagerDetail::computeWellIndex() to account for
arbitrary directions and NTG factors.  The second part uses
GridPropertyAccess::Compressed<> to extract the NTG vector from the
input if present while providing a fall-back value of 1.0 if no such
vector is available.

Note: We may wish to make the extraction policy configurable at some
point in the future.
2014-08-31 21:24:37 +02:00
Bård Skaflestad
70c0139a0f Annotate namespace closing brace with namespace name 2014-08-29 12:31:35 +02:00
Bård Skaflestad
a85638ec12 Adjust white-space for readability
This is mostly just splitting long lines and aligning parameters where
appropriate.  No functional changes.
2014-08-29 12:22:26 +02:00
Bård Skaflestad
c0da69925e createWellsFromSpecs: Assert three space dimensions
Method WellsManager::createWellsFromSpecs() is only supported in
three space dimensions.  Assert that we don't use anything else.
2014-08-29 12:18:59 +02:00
Bård Skaflestad
8766e6468c createWellsFromSpecs: Use ref-to-const cart2active
This commit tightens the function header of method

    WellsManager::createWellsFromSpecs()

to accept a reference-to-const 'cartesian_to_compressed' map.  It
used to be a complete, copy-constructed object, so this is a slight
performance enhancement as we no longer need to copy a (somewhat)
large object on every call to the method.
2014-08-29 12:13:38 +02:00
Bård Skaflestad
5f34301b92 getCubeDim: Support arbitrary number of dimensions
This commit generalises the implementation of utility function
'getCubeDim' to support arbitrary number of space dimensions.  In
actual practice there's no change in features as we only really use
a compile-time constant (= 3) to specify the number of space
dimensions.
2014-08-29 11:39:24 +02:00
Bård Skaflestad
e77096b258 Merge pull request #638 from totto82/fix_GOC_below
Currectly handling GOC below and WOC above the reservoir
2014-08-29 09:27:56 +02:00
Bård Skaflestad
749a8a5d10 Merge pull request #641 from atgeirr/fix-warnings
Fix warnings
2014-08-28 16:11:12 +02:00
Atgeirr Flø Rasmussen
166cd0fe6b Suppress unused argument warning.
The eclState argument was added in PR#634, and may be needed later.
Until then, this silences the warning generated.
2014-08-28 14:14:22 +02:00
Atgeirr Flø Rasmussen
e6e2c9a330 Squash warnings by removing or commenting out unused parameters. 2014-08-28 14:14:22 +02:00
Bård Skaflestad
1307e0fdcf Reimplement assign* in terms of Compressed<>
This is a demonstration of using the

    GridPropertyAccess::Compressed<>

class template.  We save (some) memory by not creating the zero
fall-back vector in assignPermeability(), preferring instead to use
the fall-back/default mechanism of ArrayPolicy::ExtractFromDeck<>.

While here, adjust vector<PermComponent>::reserve() capacity to
reflect actual requirements.
2014-08-27 21:19:41 +02:00
Bård Skaflestad
c52175a200 assignPermeability: Remark on storage order
Clients expect column-major (Fortran) ordering of the contiguous
"permeability_" array so that's what we create despite "tensor"
being row-major.

Suggested by: [at] atgeirr
2014-08-27 21:19:40 +02:00
Tor Harald Sandve
18de1c190a Fix sign error in the specified oil pressures at at WOC and GOC
The oil pressure at the contact for the special cases:

contact	location	po(contact)
GOC 	above 	-inf
GOC 	below 	+inf
WOC 	above 	-inf
WOC 	below 	+inf
2014-08-27 14:35:01 +02:00
Tor Harald Sandve
193872a1fe Currectly handling GOC below and WOC above the reservoir The phase pressure of water and gas is set to inf when WOC and GOC is above and below the reservoir. This make sure the minimum saturation values are picked for these cases. 2014-08-27 10:10:55 +02:00
Bård Skaflestad
e037142b01 Simplify diagonal component thresholding
This commit switches the assignment

    diagonal = max(diagonal, minval)

to using a reference in the "diagonal" expression.  This guarantees
that the indexing is done once which eases maintainability.  While
here, replace the hard-coded dimension stride ('3') with the current
run-time dimension.  This is mostly for symmetry because the overall
code is only really supported in three space dimension.
2014-08-26 23:50:05 +02:00
Bård Skaflestad
e63e28a4f2 Remove obsolete comment
This comment was needed when the code was first developed, but
subsequent development has rendered it obsolete.  Remove it to avoid
confusion.
2014-08-26 23:50:05 +02:00
Bård Skaflestad
c0559fa258 Fix semantics of permeability assignment
Calling code relies on permeability tensors being stored in column
major order (row index cycling the most rapidly).  Honour that
requirement.  The previous assignment implied row major ordering
(column index cycling the most rapidly).  This, however, is a
pedantic rather than visible change because the surrounding code
enforces symmetric tensors whence both orderings produce the same
results when the array is viewed contiguously.
2014-08-26 23:50:04 +02:00
Atgeirr Flø Rasmussen
cc23f74f25 Merge pull request #630 from totto82/fix_init_spe9
The water/gas press. are calculated only if woc/goc is within the reservoar
2014-08-26 22:27:11 +02:00
osae
84173e1cac Provide eclipse state to saturation property init. 2014-08-22 15:36:07 +02:00
Tor Harald Sandve
c1fc8aeb7d Fixes issues pointed out in the PR comments 2014-08-18 08:57:23 +02:00
Tor Harald Sandve
f3a9dac5bb The water/gas pressures are only calculated if woc and goc lies within
the reservoar
The water/gas pressure is set to -inf when woc and goc is above or below
the reservoar.
2014-08-15 08:56:35 +02:00
Tor Harald Sandve
51b8b44e35 BUGFIX
Wrong placement of parentes
2014-08-11 12:45:52 +02:00
Tor Harald Sandve
91bdb7dde2 Implements initialization for constant capillary pressure functions 2014-08-11 11:23:15 +02:00
Tor Harald Sandve
bf635f3fe9 Computes saturations based on depths
For constant capillar pressure function the saturation is
    determined by cell depths:

    Sg_max, Sw_min
    ----- goc ----
    Sg_min, Sw_min
    ----- woc ----
    Sg_min, Sw_max
2014-08-11 11:22:47 +02:00
Bård Skaflestad
28c8898122 swatInitScaling(): Abide by OPM coding conventions
This commit attaches the reference-signifying ampersand to the type
as is preferred in the OPM code base.

Suggested by: [at] atgeirr
2014-08-07 18:50:07 +02:00
Bård Skaflestad
46c7ff53a2 swatInitScaling(): Remove EOL whitespace
This commit removes several instances of EOL whitespace in function
'swatInitScaling()'.  Aesthetic only.  No functional changes.

Suggested by: [at] atgeirr
2014-08-07 18:50:07 +02:00
Bård Skaflestad
61300523c4 swatInitScaling(): Name magic constant
The constant 1.0e-8 was used as a threshold to distinguish "low"
from "high" capillary pressure values.  Introduce acutual constant
"pc_low_threshold" to clarify that role.

Suggested by: [at] atgeirr
2014-08-07 18:50:07 +02:00
Bård Skaflestad
ef9e81ff9b swatInitScaling(): Rename array size parameter
This commit renames the 'np' parameter used to allocate small arrays
for saturations and capillary pressures to 'max_np' to better
reflect its purpose.

Suggested by: [at] atgeirr
2014-08-07 18:50:06 +02:00
Bård Skaflestad
59eedcd82b Initialise saturation points for Pc scaling
This gives predictable failure modes although the actual behaviour
is (probably) unchanged.
2014-08-07 18:50:06 +02:00
Bård Skaflestad
d067ef07a2 Consistently refer to BlackoilPhases::Aqua
This avoids confusion.
2014-08-07 18:50:06 +02:00
Bård Skaflestad
2229affcb0 Don't use variable-length arrays
We only support up to 'BlackoilPhases::MaxNumPhases' different
phases (and components), so there's no need to pretend otherwise.
2014-08-07 18:50:06 +02:00
Atgeirr Flø Rasmussen
070f2456c4 Properly handle defaulted well reference depths. 2014-08-07 12:57:05 +02:00
Liu Ming
28b354c625 Add HAVE_PETSC macro. 2014-07-08 10:58:39 +08:00
Atgeirr Flø Rasmussen
12c9ef2b09 Merge pull request #607 from osae/swatinit
Scaling of capillary pressure / initialisation from kw SWATINIT.
2014-07-07 14:10:02 +02:00
Bård Skaflestad
3a6ac6a759 Reimplement clone_wells() in terms of well_controls_clone() 2014-07-03 16:09:56 +02:00
Bård Skaflestad
81d691e66a wells.h: Document several function
This commit adds Doxygen-style documentation to functions

  - clear_well_controls()
  - set_current_control()
  - wells_equal()

No functional changes.
2014-07-03 16:09:56 +02:00
Bård Skaflestad
033625c5a8 well_controls: Add deep-copy (clone) support
New function well_controls_clone(), implemented in terms of the
public API only, mirrors the objective of function clone_wells(),
only for well control sets.  Add a basic test to demonstrate the
function too.
2014-07-03 16:09:56 +02:00
Bård Skaflestad
24804a1f6f clone_wells(): Assert result equal to input
This adds a debug-mode safety belt that cloning wells produces a
comparable set of wells to the input.
2014-07-03 16:09:56 +02:00
Bård Skaflestad
464b0c3d15 well_controls_equal(): Don't compare set capacities
The 'cpty' field is for internal memory management purposes only.
No client can know of its existence, let alone inspect or directly
change the value, so it should not be used to adjudicate control set
equality.  This was useful during the refactoring work to introduce
the opm-parser support, but its utility has since ceased.

Okay'ed by: [at] atgeirr and [at] joakim-hove
2014-07-03 16:09:56 +02:00
osae
b22d3bdbf1 Included inititalisation of surface volumes. 2014-06-26 15:06:47 +02:00
osae
c1732b0b32 Make use of EclipseState for EQLNUM and SWATINIT. 2014-06-26 14:46:57 +02:00
osae
7c667a2bd7 Adjustments for vanishing oil phase. 2014-06-25 18:03:17 +02:00
osae
a9138ef574 SWATINIT: Initialisation and capillary pressure scaling. 2014-06-25 18:03:17 +02:00
osae
45e35178bb Scaling of capillary pressure. 2014-06-25 18:03:17 +02:00
Atgeirr Flø Rasmussen
fd606d907a Fix initialization of tracer heads, and output ordering. 2014-06-25 09:56:37 +02:00
Atgeirr Flø Rasmussen
3290c41f3a Refactor tracer computations.
Current version executes reordered solve once for each tracer. The benefit
is a simpler code and the ability to use MDU with tracers. The cost is
potentially higher runtime, compared to doing a single sweep for all
tracers (and tof).
2014-06-24 09:43:26 +02:00
Atgeirr Flø Rasmussen
23400d7e2e Remove unused data member. 2014-06-23 14:18:01 +02:00
Atgeirr Flø Rasmussen
63d7b868d0 Clean up dead code for MDU, update comment. 2014-06-23 14:05:51 +02:00
Atgeirr Flø Rasmussen
41887508ea Add tracers_ensure_unity parameter.
When this boolean parameter is true (the default), tracer solutions
will be normalized so that the tracer averages will sum to one in each cell.
This behaviour is the same as before, the change is that it can now be
turned off.
2014-06-23 14:03:49 +02:00
Atgeirr Flø Rasmussen
631498bd06 Activate MDU option, making SMU method its default. 2014-06-23 11:29:14 +02:00
Atgeirr Flø Rasmussen
1a59e7360b Fix bugs in MDU. 2014-06-23 11:23:16 +02:00
Atgeirr Flø Rasmussen
ae1236c5cd Add computation of face tofs parts.
This must be done after the cell tof has been computed since they
depend on it.
2014-06-23 11:22:14 +02:00
Atgeirr Flø Rasmussen
bd1bb1099f First compiling version of fixed MDU method. 2014-06-19 15:11:32 +02:00
Atgeirr Flø Rasmussen
0b05182645 Fix use of assert. 2014-06-16 13:44:00 +02:00
Atgeirr Flø Rasmussen
a199d78476 Work in progress fixing multidim upwinding. 2014-06-16 13:14:42 +02:00
Atgeirr Flø Rasmussen
4166a0621c Removed unused debugging output. 2014-06-16 12:49:41 +02:00
Atgeirr Flø Rasmussen
0afbecfa07 Split method solveSingleCell() for easier maintenance. 2014-06-16 12:49:41 +02:00
Andreas Lauser
05775a0b36 Glue in support for the grid property modifier keywords
this basically means using Opm::EclipseState instead of the raw deck
for these keywords.

with this, property modifiers like ADD, MULT, COPY and friends are
supported for at least the PERM* keywords. If additional keywords are
required these can be added relatively easily as well.

no ctest regressions have been observed with this patch on my machine.
2014-06-11 13:48:49 +02:00
Bård Skaflestad
ed5bd42980 Merge pull request #596 from andlaus/fix_some_keyword_names
Fix some keyword names
2014-06-10 23:14:34 +02:00
Andreas Lauser
7603eafaf9 fix some keyword names
The queried keywords are unknown to the parser and after manual
inspection also to the Eclipse RM. There might be wrong keywords some
left, but these were to ones needed to get SPE9 started using
sim_fibo_ad...
2014-06-05 16:07:31 +02:00
Andreas Lauser
5936c59e22 add an assert 2014-06-04 11:11:35 +02:00
Andreas Lauser
749d0e838d incorperate the review comments/decisions for multi-region PVT
the largest change is that all classes below opm/core/props/pvt take
the PVT region index as an argument, the higher-level ones (i.e.,
BlackoilProps*) take cell indices.
2014-06-04 11:11:35 +02:00
Andreas Lauser
9a7b068d15 Implement multi-region PVT for all property classes
since they are not using a single PVT table anymore, their "Single"
prefix has been removed...
2014-06-04 11:11:35 +02:00
Liu Ming
8a118f45fe rename the private member. 2014-05-23 11:10:22 +08:00
Liu Ming
9d985f7421 use unordered_map for "string-enum" translations. 2014-05-23 11:09:04 +08:00
Andreas Lauser
6a50afb219 rename all "newParserDeck" objects to "deck"
The "new" parser is now "the" parser...
2014-05-21 11:22:43 +02:00
Andreas Lauser
f360562aee remove EclipseGridParser compatibility methods from all classes 2014-05-21 11:22:43 +02:00
Liu Ming
6f2d28d08a Throw information for Petsc. 2014-05-16 15:02:49 +08:00
Liu Ming
ccb83a8503 Initialize Petsc from constructor.
Remove private members for initializing Petsc.
2014-05-16 14:53:49 +08:00
Liu Ming
4491eb7a6a Add Petsc to OPM. 2014-05-16 14:41:51 +08:00
Atgeirr Flø Rasmussen
abd341ab7f Supress signed-unsigned comparison warning. 2014-05-12 09:18:52 +02:00
Atgeirr Flø Rasmussen
a5ccc97a0f Merge pull request #573 from osae/test-eps
Endpoint scaling - taking advantage of the new parser.
2014-05-12 08:28:48 +02:00
osae
4a3c7ff204 Removing a few bugs ... 2014-05-06 18:15:03 +02:00
osae
d91c49cffd Proper interpretation of ENDNUM and IMBNUM fields.
Made consistent with grid discretization.
2014-05-06 14:41:17 +02:00
osae
d648917fcf Initialisation of EGLNUM (analogous to e.g SATNUM) 2014-05-06 12:47:24 +02:00
osae
ca5b0eb16f Inserted some documentation. 2014-05-05 11:27:10 +02:00
osae
bd38a577ae Fix to make EQLNUM consistent with ACTNUM.
This should eventually be integrated in the parser.
2014-05-05 11:23:43 +02:00
osae
922a73442c ENDNUM: changed default value and jtab-logic
Default value changed from 'no scaling' to 'use table 1'.
Range of jtab changed to [-1,#tables-1].
2014-05-05 10:33:04 +02:00
osae
48c3577277 Make use of keywords SATOPTS and EHYSTR. 2014-05-05 10:33:04 +02:00
osae
59eb5f6c20 Use ENDNUM and prepare for IMBNUM. 2014-05-05 10:33:04 +02:00
osae
a34eb162e8 Added missing line (parser conversion). 2014-05-05 10:33:04 +02:00
Andreas Lauser
0cdc32d213 adapt to the renames of the table classes in opm-parser
basically, "Opm::SimpleTable" becomes "Opm::SingleRecordTable".
2014-04-28 18:47:28 +02:00
Andreas Lauser
eb656c60ec add opm-parser variants for the incompressible property classes 2014-04-25 14:25:54 +02:00
Atgeirr Flø Rasmussen
320c3332ad Add missing break statements in switch, add default case. 2014-04-24 15:43:54 +02:00
Atgeirr Flø Rasmussen
be5af2378a Change option name and generated header names. 2014-04-15 20:21:10 +02:00
Atgeirr Flø Rasmussen
883e955176 Merge branch 'suppress-warnings' into suppress-external-warnings 2014-04-15 19:49:19 +02:00
Atgeirr Flø Rasmussen
ba26696d22 Fix access to keywords, while still silencing warning.
Previous fix was wrong because it called getKeyword() outside the
hasKeyword() check. Current version (like original code) uses the
short-circuiting behaviour of && to ensure this.
2014-04-15 14:52:21 +02:00
Atgeirr Flø Rasmussen
bd4eef5a86 Merge remote-tracking branch 'akva2/quell_dune_warnings' into suppress-external-warnings 2014-04-15 14:35:01 +02:00