Commit Graph

446 Commits

Author SHA1 Message Date
Halvor M. Nilsen
e7d5d4bb27 added EulerUpstreamImplicit, added implicit traits: does notthing now 2011-10-11 11:42:40 +02:00
Halvor M. Nilsen
b42bd08154 Move 'common' directory into 'dune'. 2011-10-07 10:54:25 +02:00
Bård Skaflestad
5ee2c381c3 Import glue code for calling into UMFPACK using an OPMPressure CSRMatrix. 2011-10-05 20:03:07 +02:00
Bård Skaflestad
01eb7a2214 Add an overload suited to pointer arguments (primitive types). 2011-10-05 19:54:12 +02:00
Bård Skaflestad
4f488a08e7 Work around different 'const' rules in C. 2011-10-04 21:21:30 +02:00
Bård Skaflestad
55cbd9143b Don't reference unneeded interfaces. 2011-10-04 10:10:44 +02:00
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