Commit Graph

448 Commits

Author SHA1 Message Date
Bård Skaflestad
4274f20c27 Add utilities for computing derived fluid quantities.
These are (currently) entirely geared towards pressure solvers.
2010-10-20 19:14:07 +02:00
Bård Skaflestad
664f1ac2fe Add facilities for computing/updating gpress/Binv.
We were already computing the inverse IP, but now centralise the
gpress as well.  Moreover, the mim_ip_*_update() functions will assist
in the pressure solvers accepting effective inner products and gravity
pressures only.
2010-10-14 14:20:11 +02:00
Bård Skaflestad
edd470dd7d Move implementation of vector_zero() to central location.
There is no need for each file to contain a separate, though
trivial, implementation of this feature.
2010-10-14 13:58:47 +02:00
Bård Skaflestad
ef4d884d12 Use canonical include guards.
Suggested by atgeirr.  Template:

   OPM_<FILENAME>_HEADER_INCLUDED
2010-10-13 18:35:15 +02:00
Atgeirr Flø Rasmussen
799dc936cd Made all C headers includeable from C++. 2010-10-12 07:44:02 +00:00
Atgeirr Flø Rasmussen
6530a16785 Added copyright block to all source code files. 2010-10-12 07:25:46 +00:00
Bård Skaflestad
35c0ef8ee9 Remove delusional assertion. While its predecessor asserted basic
sanity, the current check would never be satisfied in a reasonable
  grid.
2010-10-06 21:08:56 +00:00
Bård Skaflestad
4357d2564c Correct another off-by-one in the CSR start pointer implementation. 2010-10-04 17:43:45 +00:00
Atgeirr Flø Rasmussen
14f682a0b4 Documented mim_ip_simple_all. 2010-10-01 12:21:24 +00:00
Bård Skaflestad
284683b00d Add a routine for allocating a CSR matrix with known number of rows
and non-zeros.  Note that this routine is for allocation only.
  Caller must create and manage sparsity structure if this is being
  used in a global assembly process.

  This routine finds utility in MsMFEM BF construction.
2010-09-30 21:37:14 +00:00
Atgeirr Flø Rasmussen
1e2e18bda2 Added subrepo for libmimetic. It is currently on internal server. 2010-09-27 07:48:31 +00:00
Atgeirr Flø Rasmussen
767b9f3b8b Added extern "C" statements for C++ compatibility. 2010-09-24 09:07:50 +00:00
Bård Skaflestad
f3e5ad1723 Use M's notion of the MAT_SIZE_T when building for M. 2010-09-17 17:43:07 +00:00
Bård Skaflestad
fca8a08b29 Separate well connections (typically static) from well controls
(often dynamically changing throughout simulation).
2010-09-15 17:27:59 +00:00
Bård Skaflestad
222d6da348 Re-factor creation and destruction of cell->well mapping out to
separate module.  Update callers.
2010-09-15 12:13:53 +00:00
Bård Skaflestad
31c5ff58b5 Don't state that we reverse-insert (i.e., push-forward) the bin
elements when we in fact use jrn's much more straight-forward
  push-back mode.
2010-09-14 12:21:30 +00:00
Bård Skaflestad
293e51f94b Insert "H1 lines" to summarise purpose. Document a few parameters
and return values as well.

  While here, convert CSR build to push-back mode.
2010-09-14 11:19:08 +00:00
Bård Skaflestad
1540fb3949 Remove special MATLAB compilation support. This is provided by blas_lapack.h. 2010-09-13 16:11:49 +00:00
Bård Skaflestad
5e3dc1daea Add simple type for describing boundary conditions for the flow
equation.
2010-09-13 15:46:06 +00:00
Bård Skaflestad
371fd66ced Add initial cut at well definition. 2010-09-10 17:14:00 +00:00
Bård Skaflestad
6e330e6e98 Add simple support routines for building CSR matrices. 2010-09-09 16:48:03 +00:00
Bård Skaflestad
2bced196f6 Move solvers/common solvers/euler and solvers/mimetic to dune-porsol 2010-08-23 09:23:09 +00:00
Bård Skaflestad
3e76680f4d Silence compiler by adding prototype for dfs() (i.e., #include
"dfs.h").  Also, don't require build(er|system) to always #define
  the preprocessing symbol "TEST" (to a zero or non-zero value).
2010-08-20 21:44:49 +00:00
Bård Skaflestad
a32d350270 Assert copyright for 2010. 2010-08-20 19:16:59 +00:00
Bård Skaflestad
7bcdf7363e M-x delete-trailing-whitespace . 2010-08-20 19:05:27 +00:00
Bård Skaflestad
7976cffaf3 Correct a supremely embarrassing typo: When counting the number of
cell-to-cell connections (i.e., when calling count_block_conns()),
  inspect the pointer array (pc2c) rather than the cell array itself
  (c2c).  Clue-by-four supplied by gdb(1).

  Move self connection handling to partition_create_c2c().

  Adjust dfs() 'work' array size to comply with new requirements of
  -r5088.
2010-08-20 17:24:26 +00:00
Jostein R. Natvig
d31614d608 Fix embarrasing error. 2010-08-20 14:18:22 +00:00
Bård Skaflestad
d2c603b980 Add files missing in -c5083.
Pointy hat: bska
2010-08-19 22:30:54 +00:00
Bård Skaflestad
3f7c7a822c Add stub implementation of algorithm for splitting blocks.
Currently lacks the construction of block-internal connections but
  does at least build.

  Not tested.
2010-08-19 16:33:13 +00:00
Jostein R. Natvig
a9034efbe7 Four-space indentation. 2010-08-19 11:02:50 +00:00
Jostein R. Natvig
ceb2e48422 Add comment. 2010-08-19 10:52:10 +00:00
Jostein R. Natvig
2648e559d3 A depth-first graph traversal to find connected components of graph. 2010-08-19 10:46:58 +00:00
Bård Skaflestad
8845c8d8f8 Be more explicit on the significance of the start pointers for 1:nbin. 2010-08-18 19:16:14 +00:00
Bård Skaflestad
02678a7fbe Implicit int went the way of the dodo in 1999. Catch up to this fact. 2010-08-18 16:22:35 +00:00
Bård Skaflestad
4a5610ca80 Add MEX support for inverting cell-to-block mappings (i.e.,
partition vectors) to create block-to-cell mappings.
2010-08-18 15:04:33 +00:00
Bård Skaflestad
548c626329 Add MEX'ed edition of 'partitionUI'. The MEX function only
implements the first edition of the 'partitionUI' algorithm (i.e.,
  before afg added sub-grid support in r2349), but it is nevertheless
  a useful experiment and facilitates testing a C/C++ implementation
  of the MsMFE method.
2010-08-13 17:24:19 +00:00
Bård Skaflestad
6f01206f60 Add preliminary support for wells in 'mex_ip_simple'. This is
untested, so disable direct MEX building for the time being.
2010-08-11 18:31:01 +00:00
Bård Skaflestad
483be79c66 Add support for number of connections different from number of faces.
This is a precursor to supporting wells as faces.
2010-08-09 08:51:01 +00:00
Bård Skaflestad
9c52face20 Don't require build(er|system) to #define COMPILING_FOR_MATLAB in
order to compile this file.
2010-08-03 14:27:13 +00:00
Bård Skaflestad
f2bb893b61 Remove macro definition which is no longer needed. 2010-07-09 10:39:26 +00:00
Bård Skaflestad
714dfd0545 Add first fully functioning M-callable C implementation of the
'ip_simple' mimetic inner product.  Coincides with the results from
  'computeMimeticIP' to (roughly) the order of round-off on a
  non-trivial test case.

  The calling interface is

      BI = mex_ip_simple(G, rock)

  and some latitude has been extended towards multiple data types in
  the various G fields (e.g., G.cells.facePos may be an 'int32').

  Additional clean-up and optimisation is likely.
2010-07-08 23:28:33 +00:00
Bård Skaflestad
4c469918e1 Implement cell loop (tentatively named mim_ip_simple_all()) and a
MEX gateway for easy testing from M.  Builds with fairly strict
  warnings, but is not tested yet.
2010-07-04 21:44:04 +00:00
Bård Skaflestad
ac97aa8c23 Correct a few embarrasing matrix dimension errors (in the "linear
pressure" part).
2010-07-02 22:19:38 +00:00
Bård Skaflestad
da327ba410 Split mim_ip_simple() up into two co-operating procedures,
- mim_ip_span_nullspace()
        Constructs orthogonal basis for mimetic IP null space.
    - mim_ip_linpress_exact()
        Adds term to impose exactness for linear pressure fields.

  Re-implement mim_ip_simple() in terms of these procedures.
2010-06-29 21:18:23 +00:00
Bård Skaflestad
9e1bbb200b Allow builder to -Define expansion of MAT_SIZE_T . 2010-06-29 19:11:26 +00:00
Bård Skaflestad
f1474e0b96 Don't fall prey to refactoring errors. 2010-06-28 22:54:31 +00:00
Bård Skaflestad
4e814fb0a5 For kicks and giggles, add an (untested) C+BLAS/LAPACK
implementation of the 'ip_simple' mimetic inner product.

  Suggested by: jrn.
2010-06-28 22:47:55 +00:00
Jostein R. Natvig
a3c93003ee Initial checkin of cornerpoint processing code.
Current status
--------------
Given vectors ZCORN, COORD and ACTNUM as well as the Cartesian
dimensions these vectors implicitly refer to, the code is
currently capable of

 * Identify unique points along each pillar
 * Assign point numbers for each point specified in ZCORN
 * Compute face topology, i.e., the corners that define the geometry
   of the faces as well as the cells that are connected through the face.
 * Identify and compute intesections that occur in the processing of
   face topology.

What remains is

 * Handle the face geometry of boundary faces. (simple)
 * Compute point coordinates of the final point list.
 * Put all pieces together in a tidy manner.
2009-06-11 07:33:50 +00:00