Commit Graph

1412 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
c0114c52d2 Added well handling to cfs_tpfa_expl_mass_transport(), simplified interface. 2011-02-03 12:51:53 +01:00
Atgeirr Flø Rasmussen
d30da303bb Changed order of phases and components. 2011-01-26 16:01:04 +01:00
Bård Skaflestad
7e834dd3b5 Explicitly state that ratio->psum is a scalar per total connection. 2011-01-24 11:21:25 +01:00
Bård Skaflestad
07a453225d Satisfy all post-conditions of compute_densrat_update()
The total (accumulated) phase contributions must be available in
ratio->psum for each completion when leaving the function.
2011-01-20 10:49:11 +01:00
Bård Skaflestad
fc41c37578 Add compressible well completion flows.
Specifically, allocate storage for 'masstrans' and 'gravtrans' terms
per well completion (perforation), as well as compressible
transmissibilities (scalar per completion).  Calculate compressible
quantities by treating each completion as an interface.

Introduce a new structure, 'completion_data', to collect static and
dynamic discretisation data pertaining to each completion (e.g.,
productivity indices, gravity potentials and density ratio
operators).  Pass this structure, rather than individual fields, into
affected CFS_TPFA entry points.

Compile tested only.
2011-01-19 20:20:15 +01:00
Bård Skaflestad
23ac315663 Restructure calculation of compressible terms.
Specifically, rename the obtuse structure 'disc_data' to the more targeted
'densrat_util' and hoist the compressible terms 'ctrans' and 'P' into
the 'cfs_tpfa_impl' structure.  Moreover, rename the remaining fields
into something that makes sense in (almost) isolation.  Update
compute_densrat_update() and cfs_tpfa_construct() accordingly.

This is in preparation of adding compressible well terms.
2011-01-19 12:08:12 +01:00
Bård Skaflestad
c648dc1819 Reorder internal functions for call-sequence consistency. 2011-01-18 13:49:35 +01:00
Bård Skaflestad
bd3cc50cfb Add gravity contributions to flux.
Only really verified for incompressible data.  There are likely to be
programming errors.
2011-01-16 21:21:06 +01:00
Bård Skaflestad
157b86c21c Improve gravity handling in linear system.
Specifically, only assemble gravity contributions on internal faces or
external Dirichlet faces.  Moreover, pay attention to direction of
gravity flux (in/out of cell) during assembly.
2011-01-14 20:30:07 +01:00
Bård Skaflestad
b8fd9a5516 Re-install zero-level enforcement, but only for incompressible problems. 2011-01-13 14:19:07 +01:00
Bård Skaflestad
eb30bcb049 Remove enforcement of pressure zero level for pure Neumann problems.
This direct manipulation of the linear system is inappropriate when
solving compressible flows where the absolute pressure level matters
greatly.
2011-01-13 13:06:45 +01:00
Bård Skaflestad
2777a6d8d9 Correct blunders concerning presence of prescribed pressure values.
Specifically, split detection of prescribed reservoir pressure values
from prescribed well (i.e., BHP) pressure values.  Previously, we
would not even assemble any well contributions if there were any
prescribed reservoir pressure values.  Moreover, the return value from
assemble_cell_contrib() was exactly opposite of its intended value...
2010-12-08 14:50:19 +01:00
Bård Skaflestad
30087dd925 Add retrieval of well BHP and perforation fluxes.
Callers may pass NULLs if any given model does not contain wells.
2010-12-07 17:30:13 +01:00
Bård Skaflestad
40debf6a5f Add tentative Peaceman well support.
Callers may pass NULLs in absence of wells in any given model.  This
implementation assembles an equation for each well, irrespective of
well control type (BHP or RATE), and assumes that productivity indices
and perforation pressure drops account for multiphase effects.
2010-12-07 17:12:09 +01:00
Bård Skaflestad
33059b78a8 Document remaining members of struct 'compr_quantities'. 2010-12-07 15:01:47 +01:00
Bård Skaflestad
5af290adc7 Allocate memory resources for well DOFs. 2010-12-06 13:26:47 +01:00
Bård Skaflestad
f04892bef0 Be more specific in comment. 2010-12-06 13:17:04 +01:00
Bård Skaflestad
ff26a756b8 Add well<->cell topology to system matrix. 2010-12-06 12:43:03 +01:00
Bård Skaflestad
2eb4a6f4a2 Only maintain number of rows in CSR matrix.
We will generate square matrices only in the foreseeable future and
there is no need to maintain the number of columns (the 'n' member)
separately.  Update all users accordingly.
2010-12-06 12:41:12 +01:00
Bård Skaflestad
110b78b84b Explicitly enforce zero flux in absence of other boundary information. 2010-11-25 14:33:04 +01:00
Bård Skaflestad
d9493e94ce M-x delete-trailing-whitespace . 2010-11-23 16:51:06 +01:00
Bård Skaflestad
07bae5c921 Implement (IMPES) mass transport across internal interfaces.
Based on component formulas derived from the ->pimpl->masstrans_f and
->pimpl->gravtrans_f quantities.
2010-11-23 16:46:49 +01:00
Atgeirr Flø Rasmussen
54120f795c A large number of additions to start testing compressible tpfa-solver. 2010-11-22 15:00:26 +01:00
Bård Skaflestad
a8f831be6c Add utility functions for retrieving phase transmissibilities. 2010-11-22 12:17:14 +01:00
Bård Skaflestad
08e2e9c1a3 Only compute face pressure values if explicitly requested.
Following cset ba5d27f90d7a there is no need to compute the interface
pressure values after every linear solve.  Re-factor
cfs_tpfa_press_flux() to only compute cell pressures and interface
fluxes, and move interface pressure value computation to cfs_tpfa_fpress().
2010-11-22 11:36:47 +01:00
Bård Skaflestad
44743f5f1c Merge from upstream. 2010-11-19 15:20:22 +01:00
Atgeirr Flø Rasmussen
b6de3ecc1b Only check boundary conditions on outer boundary in compute_flux(). 2010-11-19 15:11:57 +01:00
Bård Skaflestad
c26d494696 Complete transition to all-int topology in CSRMatrix structure.
Having a 'MAT_SIZE_T' that is sometimes an int and sometimes an
mwSignedIndex is asking for trouble.  The practical impact for OPM is
low, though, as this issue affects only the MEX interface.
2010-11-19 14:35:39 +01:00
Jostein R. Natvig
6ae51908fa Remove Matlab binding. 2010-11-19 10:20:48 +01:00
Atgeirr Flø Rasmussen
da532bf009 Const-ified data members of compr_quantities. 2010-11-18 16:02:11 +01:00
Bård Skaflestad
744a08e513 Promote MEX fluid matrix impl. to official status.
Specifically, move the evaluation of cell transmissibilities into
cfs_tpfa module (from original MEX implementation), and create a new
structure, 'struct compr_quantities', to hold the 'RB^{-1}' data and
(upwind) phase mobilities &c.
2010-11-18 14:37:36 +01:00
Atgeirr Flø Rasmussen
68cc76c5eb Moved common enums for phase names etc. to BlackoilDefs helper class. 2010-11-15 20:11:45 +01:00
Bård Skaflestad
43de7f5d23 Evaluate cell pressure in an existing cell rather than outside... 2010-11-15 12:25:43 +01:00
Bård Skaflestad
0ffaafc9ee Upwind mobility strategy for computing flux/if-pressures.
Derive interface pressure values from fluxes rather than the other way
around.

Suggested by: Jostein R. Natvig
2010-11-15 10:29:23 +01:00
Atgeirr Flø Rasmussen
2bb79d9b55 Added proper copyright notice to files imported from samcode. 2010-11-15 07:57:36 +01:00
Atgeirr Flø Rasmussen
6d4546bc47 Changed namespace to Opm. 2010-11-12 13:28:55 +01:00
Atgeirr Flø Rasmussen
64ac03c4c6 Added lots of stuff originally from the samcode repository. 2010-11-12 13:18:27 +01:00
Bård Skaflestad
fdb1a0f04a Use pure htrans strategy for computing fluxes/if-pressures.
Still wrong.  Wrong: R-O-N-G.  Wrong.
2010-11-11 14:47:17 +01:00
Bård Skaflestad
8e5105c416 Merge from upstream. 2010-11-11 09:41:16 +01:00
Atgeirr Flø Rasmussen
6f91659a31 Updated after nf parameter was removed. 2010-11-11 09:16:49 +01:00
Bård Skaflestad
64cf39691e Compute real Darcy flux in cfs_tpfa_press_flux().
The previous edition made the grave mistake of summing the mass fluxes
per face.  This does not make sense.

Pointed out by: Jostein.R.Natvig@sintef.no
2010-11-10 14:31:30 +01:00
Atgeirr Flø Rasmussen
7bae4aa4d3 Implemented FluidMatrixInteractionBlackoil init(), kr() and a test prog. 2010-11-10 13:31:32 +01:00
Bård Skaflestad
552bfd5f00 Add flux and face-pressure computations.
Specifically, introduce utilities compute_fpress() and
compute_flux().  The former is needed to implement the latter across
external boundary faces.  Moreover, interface pressure values are
needed to evaluate fluid properties on faces (specifically R/B).

Add small gateway routine, cfs_tpfa_fpress(), to allow callers to
recover interface pressure values.  Re-implement cfs_tpfa_press_flux()
in terms of compute_fpress() and compute_flux().

Also, add fields 'fpress' and 'fpaccum' to struct cfs_tpfa_impl.
2010-11-09 12:52:31 +01:00
Bård Skaflestad
27ddb568ba Remove unused variable. 2010-11-09 10:03:42 +01:00
Bård Skaflestad
80f771d674 Merge from jrn. 2010-11-08 14:13:09 +01:00
Bård Skaflestad
43ddeaeca8 Don't enforce p[0]=0 for non-Neumann problems. 2010-11-06 19:16:23 +01:00
Jostein R. Natvig
ee6fe14e48 Remove unnecessary argument in mim_ip_simple_all; fix affected code;
as suggested by bska.
2010-11-05 22:05:55 +01:00
Bård Skaflestad
dba90f41bd Tentatively add boundary condition support.
We currently handle only Dirichlet (pressure) BC's, and the feature is
largely untested.  More work remaining.
2010-11-04 19:05:41 +01:00
Bård Skaflestad
650de8a127 Correct silly mistake in defining hface phase contribs.
We were only advancing the phase contrib once per cell, but need a
different contribution for each face for each cell...
2010-11-03 18:08:02 +01:00
Bård Skaflestad
99383e8f02 Move compressible support utilities to cfs_tpfa module.
We may wish to generalise this part into real utility functions but
for now, leave the functionality where it is most directly needed.
Rename the functions to highlight relationship to compr. tpfa.
2010-11-03 14:55:23 +01:00