Bård Skaflestad
4b47096368
tests/Makefile.am: Sort individual tests alphabetically.
2012-03-28 15:10:04 +02:00
Bård Skaflestad
8fb200aeea
solveGravity(): Don't compare signed and unsigned expressions.
2012-03-27 11:19:13 +02:00
Bård Skaflestad
4544000065
Fix likely omission: don't pass objects when references will do.
...
This avoids copying a vector of size grid_.numFaces().
2012-03-23 19:47:27 +01:00
Bård Skaflestad
355eb053e8
Implement solution recovery from wells (BHP and perf. fluxes)
...
Contingent upon passing non-NULL well_press and well_flux pointers in
the solution structure. The forces must be the same as the ones used
in assembling the system of linear equations.
2012-03-21 11:54:34 +01:00
Bård Skaflestad
ca0f46736e
ifs_tpfa: Prepare for well solution recovery (BHP and perf. fluxes).
...
Expose new elements '.well_press' and '.well_flux' in the solution
structure and update callers accordingly.
2012-03-21 11:08:56 +01:00
Bård Skaflestad
55975a085a
Assemble_bhp_well(): Don't look up wdof diagonal element multiple times.
2012-03-21 10:59:21 +01:00
Bård Skaflestad
0a6837bda9
Assemble_rate_well(): Don't look up wdof diagonal element multiple times.
2012-03-21 10:48:58 +01:00
Bård Skaflestad
a3a9e12388
Implement RESV constraint assembly.
2012-03-20 23:17:52 +01:00
Bård Skaflestad
d6a6d24716
Delete trailing whitespace.
2012-03-20 22:46:38 +01:00
Bård Skaflestad
1cd44389d9
Assemble_bhp_well(): Remove unused variable.
2012-03-20 22:45:28 +01:00
Bård Skaflestad
faa334a4d0
Merge from upstream.
2012-03-20 19:34:30 +01:00
Bård Skaflestad
a4925e63da
Assemble BHP-type wells into system of linear equations.
...
All wells are represented, but BHP wells get trivial equations
(n*p=n*target). While here, stub out RESV assembly process.
BHP and perforation flux recovery is unimplemented at this time.
2012-03-20 19:32:35 +01:00
Bård Skaflestad
bf86cd9371
Revert to original (fractional flow) model of perforation fluxes.
2012-03-20 18:46:54 +01:00
Bård Skaflestad
fb6d7032bf
Pass number of fluid phases along with well data.
...
Needed to properly index into Wdata->phasemob. Update callers
accordingly.
2012-03-20 15:43:25 +01:00
Bård Skaflestad
c70a41691f
Declare well support in ifs_tpfa module. Currently not implemented.
...
Update callers accordingly.
2012-03-20 13:39:34 +01:00
Bård Skaflestad
a8d067af18
Solve(rock_comp): Refactor rock-compressibility diagonal term calculation.
2012-03-20 11:21:02 +01:00
Bård Skaflestad
f91ec88df6
BandMatrixCoeff: Initialise members in declaration order.
2012-03-20 10:53:36 +01:00
Bård Skaflestad
3d3aaa98d1
solve(rock_comp): Replace manual index search with csrmatrix_elm_index().
2012-03-19 13:55:21 +01:00
Bård Skaflestad
9f540e9cf7
Merge from upstream.
2012-03-16 20:35:52 +01:00
Bård Skaflestad
b8f3cd90c3
ifs_tpfa_assemble(): Coalesce external forces into single branch.
2012-03-16 14:30:13 +01:00
Bård Skaflestad
c5c9f58a23
Refactor construction of driving forces in preparation of well support.
2012-03-16 11:59:51 +01:00
Bård Skaflestad
f89746b8bd
Refactor ifs_tpfa_press_flux() flux calculation in preparation of wells.
...
Specifically, move calculation of cross-boundary fluxes introduced by
boundary conditions out to new internal function boundary_fluxes().
2012-03-16 11:21:34 +01:00
Bård Skaflestad
488f85d425
Align multi-line parameter lists and structure members.
...
No functional changes.
2012-03-16 11:06:01 +01:00
Bård Skaflestad
87aa556423
Initialise all tpfa_solution members to NULL in anticipation of well support.
2012-03-16 09:32:48 +01:00
Bård Skaflestad
bb98b3083f
Merge from upstream.
2012-03-15 15:56:08 +01:00
Bård Skaflestad
116b8f9d95
Initialise all tpfa_solution members to zero (i.e., NULL).
...
This is in anticipation of introducing additional structure members to
represent solution variables associated with wells whilst having the
compiler generate the appropriate null pointers to aid debugging.
Unfortunately, GCC warns about the standard "structure = { 0 }" idiom
under -Wmissing-field-initializers which is enabled by default under
"-Wextra".
2012-03-15 15:13:03 +01:00
Bård Skaflestad
d69eb28dfc
Encapsulate ifs_tpfa pressure solution in ad-hoc structure.
...
This is to limit the number of explicit interface changes when we
produce solution variables for wells too.
Update callers accordingly.
2012-03-15 14:26:40 +01:00
Bård Skaflestad
6d8531548b
ifs_tpfa: Build sparse matrix structure capable of handling wells.
...
Actual contributions not included at this time. Update caller
(IncompTPFA) accordingly, but don't modify observable behaviour.
2012-03-15 02:53:59 +01:00
Bård Skaflestad
193feace4e
Fix specification error: Header files go in _HEADERS.
...
Pointy hat: Bård Skaflestad
2012-03-14 20:14:10 +01:00
Bård Skaflestad
38a4456db9
Distribute 'ColumnExtract.hpp'.
...
This restores "make distcheck".
2012-03-14 20:09:15 +01:00
Bård Skaflestad
ba3cf61c2e
Adjust white-space for previous commit.
...
No functional change.
2012-03-14 00:03:17 +01:00
Bård Skaflestad
1130baf6d7
Staticise several functions to suppress warnings about missing prior declarations.
2012-03-14 00:01:45 +01:00
Bård Skaflestad
e502cc54d0
Merge from upstream.
2012-03-14 00:00:15 +01:00
Bård Skaflestad
686100a407
Account for explicit flux BCs during flux calculation.
2012-03-13 23:35:26 +01:00
Bård Skaflestad
f2df9fe123
Account for compressed BC representation during flux calculation.
2012-03-13 23:28:43 +01:00
Bård Skaflestad
436a7d666d
Assemble flux boundary conditions into system of linear equations.
...
A few restrictions apply:
* The bc->value is interpreted as an inflow *into* the connecting
cell. Outflow conditions must be specified using a negative
sign.
* We do not currently support general total flux conditions
(necessitates the introduction of additional degrees of freedom),
so bc->cond_pos[i+1]-bc->cond_pos[i] must be one (1) for all
BC_FLUX_TOTVOL conditions.
2012-03-13 21:00:51 +01:00
Bård Skaflestad
4f7a84d630
Rename confusing variable to promote better understanding.
2012-03-13 14:48:09 +01:00
Bård Skaflestad
f00bd49292
Refactor transmissibility reference during Dirichlet BC assembly.
2012-03-13 14:43:56 +01:00
Bård Skaflestad
e727bf34e9
Take gravity into effect when assembling Dirichlet boundary conditions.
2012-03-13 14:42:38 +01:00
Bård Skaflestad
16a32142ff
Re-implement computeTotalMobilityOmega() in terms of computePhaseMobilities().
2012-03-12 16:18:02 +01:00
Bård Skaflestad
3a275748c0
Re-implement computeTotalMobility() in terms of computePhaseMobilities().
2012-03-12 16:09:26 +01:00
Bård Skaflestad
385ff36455
Add utility for calculating all phase mobilities.
2012-03-12 16:03:29 +01:00
Bård Skaflestad
364b177237
Remove a useless explicit type conversion.
2012-03-12 09:59:30 +01:00
Bård Skaflestad
660dea787c
Move source term assembly out main loop.
2012-03-12 09:50:35 +01:00
Bård Skaflestad
d3955b0a34
Support variable number of physical grid dimensions (typically 2 or 3).
2012-03-09 08:56:28 +01:00
Bård Skaflestad
ab438b94af
Use more traditional implementation of cartCoord().
2012-03-09 00:50:44 +01:00
Bård Skaflestad
61c1e69c58
findSideFaces(): Support grids that don't define an explicit global_cell.
...
Assume that global_cell==0 denotes the identity mapping (typically a
Cartesian grid).
2012-03-08 20:53:32 +01:00
Bård Skaflestad
94317cc02f
findSideFaces(): Generate initial 'ijk' that was (probably) intended.
...
The trick of eliding explicit initialisers can only be use to zero an
array (or structure), not to copy an arbitrary initialiser to all
elements of the array.
2012-03-08 20:51:17 +01:00
Bård Skaflestad
ac18454902
Merge from upstream.
2012-03-08 18:47:37 +01:00
Bård Skaflestad
47ae9a454d
Add comments to summarise the two main blocks of fill_cell_topology().
2012-03-08 18:18:28 +01:00
Bård Skaflestad
262ae9146d
Whitespace adjustment. No functional changes.
2012-03-08 14:14:20 +01:00
Bård Skaflestad
41f00e955c
Remove obsolete comment.
2012-03-08 14:13:42 +01:00
Bård Skaflestad
cadb370011
Remove disabled code.
2012-03-07 19:42:41 +01:00
Bård Skaflestad
ea2bf25d8f
Don't #include flow_bc.h twice.
2012-03-07 19:40:35 +01:00
Bård Skaflestad
6bff141c93
Merge from upstream.
2012-03-07 19:18:57 +01:00
Bård Skaflestad
64f1112997
Enable further compression of boundary conditions.
...
Specifically, refine the representation to allow a boundary condition
to apply to a set of interfaces rather than just a single face. This
support is realised by the introduction of new interface
flow_conditions_append_multi().
Update all consumers of struct FlowBoundaryConditions to accommodate
the one-to-many boundary condition interface mapping in the process.
2012-03-07 19:08:14 +01:00
Bård Skaflestad
0d7b7f173f
Ensure a valid face->boundary condition mapping before assembly.
2012-03-07 17:54:12 +01:00
Bård Skaflestad
3721e57ecb
Merge from upstream.
2012-03-07 01:18:55 +01:00
Bård Skaflestad
4c27f8dcd7
Add tentative support for pressure boundary conditions in IncompTPFA.
...
Not enabled in C++ glue layer (presently assumes no boundary conditions).
2012-03-07 01:18:03 +01:00
Bård Skaflestad
f54a6c0979
Merge from upstream.
2012-03-06 21:41:33 +01:00
Bård Skaflestad
7323243015
Catch up to recent changes in boundary condition representation.
...
Specifically, accommodate the sparse BC representation introduced in
change-set 30f12a392a03.
2012-03-06 21:40:16 +01:00
Bård Skaflestad
e669a162cd
Catch up to recent changes in underlying C-implementation.
...
Specifically: Update boundary condition handling to incorporate the
sparse representation introduced in change-set 30f12a392a03.
Furthermore, catch up to ifs_tpfa_assemble() now accepting a general
"force" parameter (currently containing sources only) as introduced in
change-set 6c2b5de8faaa.
2012-03-06 21:30:02 +01:00
Bård Skaflestad
f52aad24e2
Adjust to new semantics of "struct FlowBoundaryCondtions".
...
We may now pass "NULL" if there are no active (flow) boundary conditions.
2012-03-06 20:08:34 +01:00
Bård Skaflestad
69bc8e16d6
Switch to a sparse/compressed boundary condition representation.
...
Specifically, replace the existing flowbc_t (that was densely
represented on each interface, including internal interface and
external no-flow interfaces) with a new structure given by
struct FlowBoundaryConditions
The semantics of this structure mirror those of "struct Wells" from
<opm/core/newwells.h>, but is currently mostly intended for simple,
incompressible flow purposes.
Update pressure solvers supporting boundary conditions to accommodate
the new boundary condition representation in the process.
2012-03-06 20:07:35 +01:00
Bård Skaflestad
7149d10cb2
Start encapsulating ifs_tpfa driving forces into a managing structure.
2012-03-06 14:00:34 +01:00
Bård Skaflestad
f4b459dde4
Merge from upstream.
2012-03-02 19:09:06 +01:00
Bård Skaflestad
a82b1062ab
Clarify a few other allocation-related comments.
2012-03-02 19:05:03 +01:00
Bård Skaflestad
ef83b4f829
Explicitly relinquish resources from processed_grid conveyed onto the UnstructuredGrid.
...
This enables calling free_processed_grid() at the end of preprocess(),
whence all resources allocated in process_grdecl() and present in the
processed_grid can be properly disposed of, even in case of extending
the processed_grid structure.
2012-03-02 19:00:59 +01:00
Bård Skaflestad
dc2974e8f0
Remove several instances of end-of-line whitespace.
2012-03-02 17:48:32 +01:00
Bård Skaflestad
fb7ca8a91d
Don't attempt to allocate_geometry() if we fail to construct cell topology.
2012-03-02 17:43:48 +01:00
Bård Skaflestad
da19df122f
Don't generate out-of-bounds ACTNUM references when inspecting ZCORN monotonicity.
...
The C parsing rules (effectively) impose a "maximal munch" strategy.
When iterating over the cell-nodes (i.e., ZCORN), the coordinate map
integer division *must* apply to the iterators and not to a product of
the form N*it. Enforce this interpretation by explicit parentheses.
2012-03-02 17:42:26 +01:00
Bård Skaflestad
833182329f
Add documentation to substantiate that preprocess() does not leak.
2012-03-02 15:07:55 +01:00
Bård Skaflestad
1a4367587f
Initialise ->global_cell prior to allocating memory for geometry.
...
This prevents freeing a random pointer in case of geometry allocation
failure.
2012-03-02 14:04:44 +01:00
Bård Skaflestad
f6470f3319
Put _SOURCES ahead of per-target _LDADD.
...
Forgotten in change-set 5eaff819c9e4.
2012-03-01 15:31:46 +01:00
Bård Skaflestad
ea73002a0d
Sort executables and per-target _SOURCES.
2012-03-01 15:24:37 +01:00
Bård Skaflestad
a0862a6ee0
Untabify.
2012-03-01 15:22:26 +01:00
Bård Skaflestad
b425045224
Remove unused parameter "grav" from computeStaticGravity().
...
Update callers accordingly, and remove a previously disabled call.
2012-02-28 11:08:57 +01:00
Bård Skaflestad
1e5569df7d
Use more traditional half-face loop to calculate transmissibilities.
2012-02-28 11:07:08 +01:00
Bård Skaflestad
8a2aff536f
Start solver messages on new line following "Scenario" output.
2012-02-28 09:42:21 +01:00
Bård Skaflestad
9c00ad8fe9
Support non-integral Cartesian cell sizes.
2012-02-27 23:43:58 +01:00
Bård Skaflestad
3ea1a823c8
Inspect global Cartesian cell when determining scenario 2 "left" reservoir half.
...
Assume that c_grid()->global_cell==0 signifies identity mapping (i.e.,
global_cell[cell]==cell).
2012-02-27 20:04:16 +01:00
Bård Skaflestad
84aad52d81
Fix logic error in defining "left" reservoir half in scenario 2.
...
Specifically, we must map into 0..cd[0]-1 and not some other
interval. Moreover, as the "i" index cycles the most rapidly in
lexicographical ordering, a simple first dimension modulus operator is
sufficient.
On the other hand, this code does assume lexicographical ordering of
the cells which may or may not be guaranteed by the grid constructor.
The Cartesian constructors observe this behaviour, but other
constructors may not...
2012-02-27 19:59:01 +01:00
Bård Skaflestad
363c6564d9
Fully initialise the transport model gravity contributions when using gravity.
...
This initialisation used to be a part of the model construction, but
was refactored out in change-set 86c734a0ba48 and must thus be called
separately.
2012-02-27 17:34:57 +01:00
Bård Skaflestad
52608367e0
Expose internal half-transmissibility through read-only reference.
...
Useful to initialise the Opm::ImplicitTransport<> solver with gravity
effects.
2012-02-27 17:29:09 +01:00
Bård Skaflestad
6c49c47f2f
Turn unit test program declaration into a (C) prototype.
2012-02-27 16:18:04 +01:00
Bård Skaflestad
d491b83526
Bring unit test up to date wrt removal of 'grid_t' typedef.
2012-02-27 16:17:17 +01:00
Bård Skaflestad
acc2f42df3
Sort executables and per-target variables.
2012-02-27 14:50:20 +01:00
Bård Skaflestad
7cd60d7f9c
Suppress "unused parameter" warning in TLMIXPAR::convertToSI().
2012-02-27 11:29:44 +01:00
Bård Skaflestad
2bc15fb31b
Generate 2D normals of length equal to face area.
2012-02-27 10:09:06 +01:00
Bård Skaflestad
53f05d3eab
Don't assume that num_phases==2 when calculating total mobility.
2012-02-27 10:07:00 +01:00
Bård Skaflestad
203a384324
Merge from upstream.
2012-02-22 23:53:34 +01:00
Bård Skaflestad
9f74500a9f
Generate 3D normals of length equal to face area.
2012-02-22 01:58:45 +01:00
Bård Skaflestad
4c5f982811
Add support for variable top-node depths in 3D tensor grid.
2012-02-22 01:56:24 +01:00
Bård Skaflestad
0ea6352b46
Build IncompTpfa class only if UMFPACK is available.
...
This is a temporary stop-gap to restore the build on systems for which
the UMFPACK library is not available. We need a better solution for
the general problem.
2012-02-21 10:35:56 +01:00
Bård Skaflestad
a3a45519a2
Fill_geometry_3d(): Support tensor product of variable cell sizes.
...
Also: Re-implement create_hexa_grid_3d() in terms of
create_tensor_grid_3d().
2012-02-18 00:36:37 +01:00
Bård Skaflestad
e6649ad25d
Remove two instances of EOL whitespace.
2012-02-16 02:19:10 +01:00
Bård Skaflestad
eb86ac92ad
Use a sane definition of areas and volumes in 2D tensor grid.
2012-02-16 02:12:49 +01:00
Bård Skaflestad
911ce3b145
Fill_geometry_2d(): Support tensor product of variable cell sizes.
...
Also: Re-implement create_cart_grid_2d() in terms of
create_tensor_grid_2d().
2012-02-16 01:58:57 +01:00
Bård Skaflestad
a609175f79
Change grid creation semantics: Return NULL in case of allocation failure.
...
Let caller handle out of memory conditions. We are in no business to
enforce a particular failure handling policy.
2012-02-16 01:12:46 +01:00
Bård Skaflestad
ddfcd4a1e3
Extract Cartesian dimensions from grid when filling topology/geometry.
...
The dimensions are already set in the grid structure during allocation.
2012-02-16 01:04:35 +01:00