Commit Graph
11092 Commits
Author SHA1 Message Date
Bård Skaflestad 5b3acfa7da Add a block assembler and solver for OPMPressure's CSRMatrix.
Solver based on UMFPACK.
2011-10-03 18:17:58 +02:00
Bård Skaflestad d085ddb314 Use portable array initialisation.
Memset() and calloc() define arrays of bytes, not general objects.  This
is a lesson learned many times over by generations of C programmers...
2011-09-30 09:39:54 +02:00
Bård Skaflestad 06cb0ab97f Add gravity contributions in flux calculations.
Credit:
  Jostein R. Natvig <jostein.r.natvig@sintef.no>
2011-09-20 13:18:33 +02:00
Bård Skaflestad 82a51172b7 Suppress warnings about unused parameters. 2011-09-10 16:48:31 +02:00
Bård Skaflestad 70a9e8a7a8 Add companion output utilities based on already opened streams.
Functions csrmatrix_write_stream() and vector_write_stream() subsume
the output responsibilities of csrmatrix_write() and vector_write(),
respectively, but do not deal with opening or closing streams.  This
allows, e.g., a call such as

    csrmatrix_write_stream(A, stderr);

for debugging purposes.

Re-implement csrmatrix_write() and vector_write() in terms of
csrmatrix_write_stream() and vector_write_stream(), respectively.
2011-09-07 23:14:47 +02:00
Bård Skaflestad 4e8b35f9ed Comment copy editing.
Remove comments that bring no new information, and formalise
descriptions in a few other cases.
2011-09-06 10:14:02 +02:00
Bård Skaflestad 33c35de2fa Merge from upstream. 2011-09-01 10:37:00 +02:00
Bård Skaflestad 667bd99b85 Merge from upstream. 2011-09-01 10:33:06 +02:00
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