Commit Graph

141 Commits

Author SHA1 Message Date
Bård Skaflestad
a58b81c105 Remove special MATLAB compilation support. This is provided by blas_lapack.h. 2010-09-13 16:11:49 +00:00
Bård Skaflestad
61254bec37 Add traditional implementation of the finite-<something> assembly
process.
2010-09-13 16:11:15 +00:00
Bård Skaflestad
ad508cf6e0 Add simple type for describing boundary conditions for the flow
equation.
2010-09-13 15:46:06 +00:00
Bård Skaflestad
0a69e72f3c Maintain number of columns (typically equal to number of rows) when
building sparsity structure.
2010-09-11 13:48:53 +00:00
Bård Skaflestad
41a3b5719b Add utilities to assist in forming global coefficient matrix from
Schur complement reduction contributions.
2010-09-10 17:26:46 +00:00
Bård Skaflestad
de2b2551cc Add initial cut at well definition. 2010-09-10 17:14:00 +00:00
Bård Skaflestad
b04ee86a03 Disable direct assembly routines. A more elaborate (and expensive)
scheme is, regrettably, needed for most linear solvers.
2010-09-09 16:49:16 +00:00
Bård Skaflestad
c350f18100 Add simple support routines for building CSR matrices. 2010-09-09 16:48:03 +00:00
Bård Skaflestad
c3c7000815 Complete revision 5188. Sorry about the breakage. 2010-09-09 16:46:28 +00:00
Bård Skaflestad
488b83a642 Factor hash-set support out to separate module. It will be used in
deriving the non-zero structure of the global sparse matrix in
  models with wells.  At least for now.  We may wish to use another
  approach at some time...
2010-09-09 16:44:58 +00:00
Bård Skaflestad
0423d13a1c Remove particular MATLAB support. The "blas_lapack.h" include file
already provides pertinent definition of MAT_SIZE_T .
2010-09-09 08:37:52 +00:00
Bård Skaflestad
b836029a4a Ignore debug output from 'coarse_sys.c'. 2010-09-08 16:22:52 +00:00
Bård Skaflestad
5366d18fc2 Correct embarrassing indexing error: Both the fine-scale
ip-contributions and the resulting coarse-scale ip matrix have
  dimensions (number of basis functions)-by-(number of basis
  functions).
2010-09-08 09:09:34 +00:00
Bård Skaflestad
5075c7a222 Only output debug info for IP/B if factoring B failed. 2010-09-08 09:05:13 +00:00
Bård Skaflestad
472d44d846 Add debugging support. 2010-09-08 08:46:47 +00:00
Bård Skaflestad
1dd34c7a4c Add MEX gateway to constructing coarse-scale inverse inner product
matrix.  Add test script too.  Runs, but does not yet produce
  expected results.
2010-09-07 17:34:16 +00:00
Bård Skaflestad
bb4dc52e70 Store explicit degrees of freedom in coarse system. Update calling
interfaces to reflect that only the number of coarse blocks is
  needed rather than the complete coarse topology where applicable.
2010-09-07 13:46:12 +00:00
Bård Skaflestad
048da5987a Complete moving geometry support to separate module. 2010-09-07 10:45:29 +00:00
Bård Skaflestad
8257bc51aa Move geometry support to separate module. 2010-09-07 10:42:38 +00:00
Bård Skaflestad
97808326f5 Fix two (related) comment typos. 2010-09-06 21:04:44 +00:00
Bård Skaflestad
b6a8c75854 Fix typo in comment. 2010-09-06 19:43:25 +00:00
Bård Skaflestad
b8806b475d Fix use-of-uninitialised bug in derivation of coarse-block
inner-product matrix.

  Pointy hat: bska
2010-09-06 15:34:27 +00:00
Bård Skaflestad
d316d03f18 Tentative implementation of coarse-sys block contributions. 2010-09-06 15:23:46 +00:00
Bård Skaflestad
2326275d6f Add tentative type definition for coarse-system management. 2010-09-02 16:26:37 +00:00
Bård Skaflestad
94d4adbb6b Add local definition of MAT_SIZE_T, contingent upon preprocessor
symbol 'MATLAB_MEX_FILE' that is automatically defined by MATLAB's
  MEX function.

  Add declarations for factorisation, lin-sys solution, and matrix
  inversion for (symmetric) positive definite full matrices in full
  and packed formats.  Will be used in the coarse-system assembly
  process.
2010-09-02 16:25:29 +00:00
Jostein R. Natvig
0734f8d842 Add copy of (proposed) grid structure. 2010-08-31 14:09:05 +00:00
Bård Skaflestad
4f1939b81b Don't use cutesy contractions in error messages. Refer to the same
parameter names as in the documentation.
2010-08-31 14:00:43 +00:00
Bård Skaflestad
25d4faadc7 Document 'expected_nconn' parameter. Export topo->subfacepos and
topo->subfaces if expected_nconn>0.
2010-08-31 13:15:52 +00:00
Bård Skaflestad
c324097c63 Don't generate "negative" indices (size_t's) whilst double-probing
the set.  Allow 'm' table-lookups (i==m is valid).  Full table
  detected by inspecting final s[j].  Finally, hash_set_insert_core()
  does not return the key but rather the index at which the key was
  inserted.  Update assertion in hash_set_expand() to respect this
  property.

  Also, for increased transparency during debugging, assign
  intermediate quantities of the hash function to separate variables.
2010-08-31 12:27:21 +00:00
Bård Skaflestad
d4f13d3411 Suppress signed/unsigned comparison warnings. 2010-08-31 08:12:07 +00:00
Bård Skaflestad
11c12f8fb6 Fix egregious off-by-one. Now generates coarse grid for 1.122e6
Cartesian cells in 0.1 seconds on a laptop computer.
2010-08-31 01:40:05 +00:00
Bård Skaflestad
2dd2b8d6aa Spell 'API' correctly. 2010-08-30 21:48:26 +00:00
Bård Skaflestad
14f2011baa Add MEX auto-build support for function 'mex_generate_coarsegrid'. 2010-08-30 21:43:39 +00:00
Bård Skaflestad
e0c6e24ab7 Correct a number of small, but crucial, mistakes:
- Initialise new neighbours to INT_MIN rather than -1.  The latter
      is a valid block (the outside) and it is better to properly
      distinguish unset values from boundary blocks.

    - Ensure NULL-initialisation of a block's neighbour structure when
      this structure has just been allocated.

    - Adjust bin-search algorithm to support i==nneigh (target larger
      than all existing neighbouring blocks).

    - This means that if i==nneigh, then we must take precaution so as
      not to reference any invalid table elements.  However, an
      explicit check for i<nneigh means that the semantics of the
      memmove() statement becomes more transparent.

    - Finally, we must properly assign the 'nblocks' and 'nfaces'
      fields of the struct coarse_topology before returning to caller.
2010-08-30 21:42:52 +00:00
Bård Skaflestad
9cdeab3f04 For the pow2(n)'th time: MATLAB indices are one-based... 2010-08-30 21:32:49 +00:00
Bård Skaflestad
f7fe7325b8 Add MEX gateway to C subroutine for generating coarse-grid topologies. 2010-08-30 16:52:20 +00:00
Bård Skaflestad
9cd8f309c3 Announce and implement the public interface for deriving coarse-grid
topology from a fine-grid topology and a partition vector.
2010-08-30 16:51:25 +00:00
Bård Skaflestad
424e919a64 Correctly define the 'b' field of a new block-to-block coarse-scale
connection.
2010-08-29 22:00:03 +00:00
Bård Skaflestad
2391437b3b Add first, untested, edition of code for creating and updating a
block-to-block coarse-scale connection with optional fine-scale
  constituents.
2010-08-29 21:54:11 +00:00
Bård Skaflestad
3d316e6279 Insert summary comments. 2010-08-29 20:01:43 +00:00
Bård Skaflestad
1489e72bc4 Stop-gap implementation of coarse-to-fine connection topology.
Unfinished.
2010-08-27 12:35:13 +00:00
Bård Skaflestad
0c6a564cbb Move hash.c to coarse_conn.c to reflect new responsibilities. 2010-08-27 08:52:00 +00:00
Bård Skaflestad
ae8742b692 Usurp public hash table interface into hash.c . The module is
created for a single purpose: A poor-man's replacement for a
  hash-set used in deriving coarse-grid connections from fine-scale
  connectivity.
2010-08-27 07:37:49 +00:00
Bård Skaflestad
ecb9f57632 Remove a file whose purpose was entirely unclear. Sorry about the churn. 2010-08-27 06:56:34 +00:00
Bård Skaflestad
60755c9f1e Add initial infrastructure for deriving coarse grid connections from
a fine-scale neighbourship definition.
2010-08-26 16:58:21 +00:00
Bård Skaflestad
c2411ab098 Add MEX auto-build support for function 'mex_partition_process'. 2010-08-20 21:45:30 +00:00
Bård Skaflestad
4b7a67de8e 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
23eebb5d2c Assert copyright for 2010. 2010-08-20 19:16:59 +00:00
Bård Skaflestad
ce6016c9b1 M-x delete-trailing-whitespace . 2010-08-20 19:05:27 +00:00
Bård Skaflestad
66369d49ff 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