Commit Graph

65 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
c961f8e7d2 Suppressed multiple warnings. 2012-03-28 11:56:20 +02:00
Bård Skaflestad
1a873633c1 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
7988921f21 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
18cdd5f1e3 Assemble_bhp_well(): Don't look up wdof diagonal element multiple times. 2012-03-21 10:59:21 +01:00
Bård Skaflestad
af80492ff3 Assemble_rate_well(): Don't look up wdof diagonal element multiple times. 2012-03-21 10:48:58 +01:00
Bård Skaflestad
de44295f32 Implement RESV constraint assembly. 2012-03-20 23:17:52 +01:00
Bård Skaflestad
1492d9b665 Delete trailing whitespace. 2012-03-20 22:46:38 +01:00
Bård Skaflestad
e41b786c16 Assemble_bhp_well(): Remove unused variable. 2012-03-20 22:45:28 +01:00
Bård Skaflestad
2085a381f3 Merge from upstream. 2012-03-20 19:34:30 +01:00
Bård Skaflestad
e04b48f05e 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
e76e224de8 Revert to original (fractional flow) model of perforation fluxes. 2012-03-20 18:46:54 +01:00
Bård Skaflestad
27271b57b5 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
Atgeirr Flø Rasmussen
6688ea1031 Make comments relating to omega (frac.flow-weighted density) precise. 2012-03-20 14:21:22 +01:00
Bård Skaflestad
60a9bee4ac Declare well support in ifs_tpfa module. Currently not implemented.
Update callers accordingly.
2012-03-20 13:39:34 +01:00
Atgeirr Flø Rasmussen
39e55a34cf Merged. 2012-03-20 12:12:21 +01:00
Atgeirr Flø Rasmussen
07c4938e00 Compensate for matrix adjustment in rock comp case. 2012-03-20 12:05:59 +01:00
Bård Skaflestad
433485c4f9 Solve(rock_comp): Refactor rock-compressibility diagonal term calculation. 2012-03-20 11:21:02 +01:00
Bård Skaflestad
049f02e1df solve(rock_comp): Replace manual index search with csrmatrix_elm_index(). 2012-03-19 13:55:21 +01:00
Atgeirr Flø Rasmussen
ed5cf7270c Implemented solve() with rock compressibility (untested). Struct init warning suppression. 2012-03-19 11:52:03 +01:00
Bård Skaflestad
e8712565a8 ifs_tpfa_assemble(): Coalesce external forces into single branch. 2012-03-16 14:30:13 +01:00
Bård Skaflestad
78687dc5c9 Refactor construction of driving forces in preparation of well support. 2012-03-16 11:59:51 +01:00
Bård Skaflestad
3dbd7e4599 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
83345b4e3a Align multi-line parameter lists and structure members.
No functional changes.
2012-03-16 11:06:01 +01:00
Bård Skaflestad
4378bf7192 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
27226eaacb 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
bc106cb286 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
7e74da8021 Account for explicit flux BCs during flux calculation. 2012-03-13 23:35:26 +01:00
Bård Skaflestad
81f3c31392 Account for compressed BC representation during flux calculation. 2012-03-13 23:28:43 +01:00
Bård Skaflestad
11671f0cad 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
47a3af5cfd Rename confusing variable to promote better understanding. 2012-03-13 14:48:09 +01:00
Bård Skaflestad
89aaf3dea2 Refactor transmissibility reference during Dirichlet BC assembly. 2012-03-13 14:43:56 +01:00
Bård Skaflestad
427a2e6712 Take gravity into effect when assembling Dirichlet boundary conditions. 2012-03-13 14:42:38 +01:00
Bård Skaflestad
5caa3eb3e8 Remove a useless explicit type conversion. 2012-03-12 09:59:30 +01:00
Bård Skaflestad
f06b5e3589 Move source term assembly out main loop. 2012-03-12 09:50:35 +01:00
Atgeirr Flø Rasmussen
38aaa867bb Fixed indexing bug in findSideFaces(). 2012-03-09 15:50:48 +01:00
Bård Skaflestad
4fc45dea82 Support variable number of physical grid dimensions (typically 2 or 3). 2012-03-09 08:56:28 +01:00
Bård Skaflestad
29fa476715 Use more traditional implementation of cartCoord(). 2012-03-09 00:50:44 +01:00
Bård Skaflestad
501a1d9a51 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
52cda7cbb9 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
Atgeirr Flø Rasmussen
c68ccff998 Handle flow_conditions_construct(0) correctly. 2012-03-08 15:24:50 +01:00
Atgeirr Flø Rasmussen
c27e881c1a Added methods pressureSide() and fluxSide(). 2012-03-08 13:48:26 +01:00
Bård Skaflestad
cb6d72cfd3 Remove disabled code. 2012-03-07 19:42:41 +01:00
Bård Skaflestad
8fd3a6e079 Don't #include flow_bc.h twice. 2012-03-07 19:40:35 +01:00
Bård Skaflestad
a8df219344 Merge from upstream. 2012-03-07 19:18:57 +01:00
Bård Skaflestad
7bc5ef229a 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
Atgeirr Flø Rasmussen
9a0c454687 IncompTpfa::solve() now accepts boundary conditions. 2012-03-07 09:32:56 +01:00
Atgeirr Flø Rasmussen
b37681be43 Made bc argument const. 2012-03-07 09:32:02 +01:00
Atgeirr Flø Rasmussen
649e9aa639 Added FlowBCManager class. 2012-03-07 09:18:44 +01:00
Bård Skaflestad
85144a9291 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
0a99364c27 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