Commit Graph

7884 Commits

Author SHA1 Message Date
Bård Skaflestad
9341b3aaac Silence warnings about "signed vs. unsigned" comparisons. 2011-09-01 10:28:27 +02:00
Bård Skaflestad
3a713ac022 Add a simple QFS for testing from C.
Not integrated into Autotools build system.  Compile as

  gcc -g -Wall -ansi -pedantic -Wextra test_cfs_tpfa.c cfs_tpfa.c \
          well.c flow_bc.c trans_tpfa.c sparse_sys.c compr_quant.c \
      -lumfpack -llapack -lblas -lm

(or variants thereof).
2011-08-26 15:30:20 +02:00
Atgeirr Flø Rasmussen
da9b3f0565 Added a static assertation and two matrix types. 2011-06-20 11:13:45 +02:00
Bård Skaflestad
f08a4ba437 Use (c1,c2) alias rather than neigh[] references where possible. 2011-05-31 23:06:44 +02:00
Bård Skaflestad
4313d35883 Increase readability of create_c2c().
Introduce two intermediate variables, c1, and c2, to hold cell numbers
during the building of the cell<->cell neighbourhood.  This reduces
the statement complexity--both for the human reader and the compiler...
2011-05-31 23:04:40 +02:00
Bård Skaflestad
c689a82c96 Spelling. 2011-05-28 00:08:33 +02:00
Bård Skaflestad
bfc50ea14b Avoid signed/unsigned problem. 2011-05-27 23:17:44 +02:00
Bård Skaflestad
809763f333 Delete trailing whitespace. 2011-05-11 15:14:34 +02:00
Bård Skaflestad
1469bc7398 Consistently refer to "half-transmissibilities" as "one-sided".
While here, remove a comment that only describes the mechanics of the
following loop and does not provide any more insight.
2011-05-11 15:14:19 +02:00
Bård Skaflestad
e1f715fc71 Merge from upstream. 2011-05-11 14:24:47 +02:00
Atgeirr Flø Rasmussen
d6051b104c Three changes:
1. Changed calculation of face pressures to avoid using mobilities.
2. Added 'scratch_f' array to cfs_tpfa_impl struct (for use by above routine).
3. Changed interface of cfs_tpfa_fpress() to pass the data struct.
2011-05-11 14:17:30 +02:00
Bård Skaflestad
b75f3df9f1 Reorder declarations to remove warning.
Specifically, GCC in strict ISO C90 mode warns of:
  cfs_tpfa.c: In function ‘cfs_tpfa_impes_maxtime_cell’:
  cfs_tpfa.c:1086: warning: ISO C90 forbids mixed declarations and code
2011-04-26 23:15:43 +02:00
Atgeirr Flø Rasmussen
c738b21130 Using gravtrans_p for well impes transport. 2011-04-26 11:06:46 +02:00
Atgeirr Flø Rasmussen
893109f8c6 Merged. 2011-04-18 13:52:54 +02:00
Atgeirr Flø Rasmussen
e2e5ef8caf Bugfix in impes transport for well perforations, function signature change. 2011-04-18 13:51:54 +02:00
Bård Skaflestad
83785e49ad Sort includes. 2011-04-11 11:32:42 +02:00
Atgeirr Flø Rasmussen
40c90929a6 Added setting of dpmob arrays. Minor edit and reindent. 2011-04-11 11:12:33 +02:00
Atgeirr Flø Rasmussen
4214a6aa1d Added gravity parameter, and gravity potential computations. 2011-04-11 11:04:52 +02:00
Atgeirr Flø Rasmussen
f70309c76b First partial implementation of Coats' stable IMPES step limit. 2011-04-11 10:11:22 +02:00
Bård Skaflestad
8bd7d89d00 Implement total rate constraint for wells.
Untested.
2011-02-16 10:41:43 +01:00
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