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
b430b7bcb5
Now running with rock compressibility (testing in progress). Multiple changes.
...
- TransportModelTwophase no longer takes pore volume in constructor, but in
the solve() and solveGravity() calls.
- Residual function uses compressibility term (not yet for gravity residual).
- spu_2p now takes a new parameter "init_p_bar", and ReservoirState class
accepts initial pressure as a constructor argument.
- Moved parts of initialization around, since pore volume now depends on
state (pressure).
2012-03-20 12:11:08 +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
Atgeirr Flø Rasmussen
227d3e7d3c
Added computePorevolume() overload taking rock compressibility into account.
2012-03-20 10:31:32 +01:00
Atgeirr Flø Rasmussen
a4a92b9bd9
Fixed const correctness issue in RockCompressibility class.
2012-03-20 10:29:43 +01:00
Atgeirr Flø Rasmussen
8f6af3ba19
Added RockCompressibility::isActive() method.
2012-03-20 10:15:33 +01:00
Atgeirr Flø Rasmussen
f40d0ad8de
Documented computePhaseMobilities().
2012-03-20 10:13:27 +01:00
Atgeirr Flø Rasmussen
bc0173a56b
Merge.
2012-03-19 14:35:37 +01:00
Atgeirr Flø Rasmussen
983b55049f
Fixed and documented constructor taking ParameterGroup.
2012-03-19 14:35:13 +01:00
Atgeirr Flø Rasmussen
e239c1d209
Added constructor taking parameters to RockCompressibility.
2012-03-19 14:30:44 +01:00
Atgeirr Flø Rasmussen
3f683e607e
Added RockCompressibility class.
2012-03-19 13:55:26 +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
f3ce1369c4
Merge from upstream.
2012-03-16 20:35:52 +01:00
Bård Skaflestad
e8712565a8
ifs_tpfa_assemble(): Coalesce external forces into single branch.
2012-03-16 14:30:13 +01:00
Atgeirr Flø Rasmussen
75b6e1fc97
Fixed bugs and changed interface for Gauss-Seidel segregation solver.
2012-03-16 13:41:10 +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
Atgeirr Flø Rasmussen
a02089eabb
Merge.
2012-03-16 08:33:35 +01:00
Atgeirr Flø Rasmussen
6e916914d6
Added experimental Gauss-Seidel segregation solver. Not yet functioning.
2012-03-16 08:33:00 +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
Atgeirr Flø Rasmussen
5a47b3b075
Fix doc typo.
2012-03-14 13:46:21 +01:00
Atgeirr Flø Rasmussen
d98b83bd3d
Moved Watercut class to miscUtilities.hpp.
2012-03-14 12:47:01 +01:00
Atgeirr Flø Rasmussen
08e12d7be1
Added wellsToSrc() function. Use forward declarations in header.
2012-03-14 09:51:08 +01:00
Bård Skaflestad
e93ae04452
Merge from upstream.
2012-03-14 00:00:15 +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
Atgeirr Flø Rasmussen
f72fdf1914
Added computeSaturatedVol() and computeInjectedProduced() functions.
2012-03-13 15:56:52 +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
29ba859a80
Re-implement computeTotalMobilityOmega() in terms of computePhaseMobilities().
2012-03-12 16:18:02 +01:00
Bård Skaflestad
c4f803fedd
Re-implement computeTotalMobility() in terms of computePhaseMobilities().
2012-03-12 16:09:26 +01:00
Bård Skaflestad
2ac5157148
Add utility for calculating all phase mobilities.
2012-03-12 16:03:29 +01:00
Atgeirr Flø Rasmussen
dfa5bda17d
Changed some function signatures to take const UnstructuredGrid& instead of ptr.
2012-03-12 13:44:05 +01:00
Atgeirr Flø Rasmussen
03200bbf37
Added computeTransportSource() function. Handling bdy fluxes in spu_2p.
2012-03-12 13:00:48 +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
Atgeirr Flø Rasmussen
8ac62545cf
Added default constructor.
2012-03-09 14:25:52 +01:00
Atgeirr Flø Rasmussen
100108b5ad
Added computeAverageSat() function.
2012-03-09 11:44:21 +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
9263fa1f08
Issue warning instead of throwing if input requests compressible effects.
2012-03-08 15:25:36 +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
Atgeirr Flø Rasmussen
00e87d36b9
Changed forward declaration of 'class UnstructuredGrid' to 'struct UnstructuredGrid'.
2012-03-08 12:28:22 +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
Atgeirr Flø Rasmussen
e3a3a1306b
Minor typo fix.
2012-03-07 09:15:34 +01:00
Bård Skaflestad
8ca51c0ca4
Merge from upstream.
2012-03-07 01:18:55 +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
Atgeirr Flø Rasmussen
36cf536d4d
Merge.
2012-03-06 22:55:59 +01:00
Atgeirr Flø Rasmussen
828b5232e5
Added (commented out) experimental code.
...
Experiment consists of trying to solve first in cells where all upstream
cells have been updated. Did not seem to change much.
2012-03-06 22:55:47 +01:00
Bård Skaflestad
5cf474cf25
Merge from upstream.
2012-03-06 21:41:33 +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
Xavier Raynaud
22a34c70b4
Minor bug.
2012-03-06 15:58:30 +01:00
Atgeirr Flø Rasmussen
939ddd8fe6
Fix minor typo.
2012-03-06 15:10:21 +01:00
Bård Skaflestad
0d5431aaba
Start encapsulating ifs_tpfa driving forces into a managing structure.
2012-03-06 14:00:34 +01:00
Atgeirr Flø Rasmussen
afe5c06ceb
Added WellsManager class (untested).
2012-03-06 13:59:51 +01:00
Kjetil Olsen Lye
d1e8525c4d
merge
2012-02-27 17:47:55 +01:00
Kjetil Olsen Lye
c06401ef5b
Fixed some warnings
2012-02-27 17:46:06 +01:00
Bård Skaflestad
a0598eae4a
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
f4df7aa1bd
Don't assume that num_phases==2 when calculating total mobility.
2012-02-27 10:07:00 +01:00
Atgeirr Flø Rasmussen
b058678235
Moved simulator utility functions to opm/core/utility/miscUtilities.hpp.
...
We want to avoid having hundreds of files with a single function, therefore
these functions have been lumped together. With time, a more sophisticated
organization of such free functions may be in order.
2012-02-26 21:05:19 +01:00
Atgeirr Flø Rasmussen
85daef9b5b
Added experimental code guarded by EXPERIMENT_GAUSS_SEIDEL #define.
2012-02-26 00:30:36 +01:00
Atgeirr Flø Rasmussen
3312aad6f5
Adding data for experiments, left alone if unused.
2012-02-26 00:29:39 +01:00
Atgeirr Flø Rasmussen
9667d09fe0
Added more inactive experimental code.
2012-02-25 22:39:01 +01:00
Atgeirr Flø Rasmussen
8c16722b84
Removed copied text accidentally left in.
2012-02-21 22:02:16 +01:00
Atgeirr Flø Rasmussen
9ed9f8b288
Fixed class comments, LinearSolverUmfpack::solve() properly returns a report.
2012-02-21 21:54:46 +01:00
Atgeirr Flø Rasmussen
87723a08a0
IncompTpfa now takes a linear solver as a constructor argument.
2012-02-21 21:45:04 +01:00
Atgeirr Flø Rasmussen
e52cae02ac
Made the solve() methods const.
2012-02-21 21:36:09 +01:00
Atgeirr Flø Rasmussen
8f8baa62c8
Using LinearSolverUmfpack for the linear solver.
2012-02-21 21:32:11 +01:00
Atgeirr Flø Rasmussen
3cb3d69d90
Added LinearSolverInterface and two subclasses, using Umfpack and Istl.
2012-02-21 21:27:15 +01:00
Atgeirr Flø Rasmussen
22bf83dda7
Bugfix: must always initialize gpress_omegaweighted_, even if no gravity.
2012-02-20 17:05:28 +01:00
Atgeirr Flø Rasmussen
2aac2255b5
Ensuring gravity feature is used consistently.
2012-02-20 13:39:40 +01:00
Atgeirr Flø Rasmussen
e5a7157bc3
Added class IncompTpfa.
2012-02-20 13:23:01 +01:00
Atgeirr Flø Rasmussen
f9fd79dbcb
Moved writeVtkData() functions to utility/, added a test program.
2012-02-19 21:24:59 +01:00
Atgeirr Flø Rasmussen
16378af014
Added tol and maxit arguments. Using Incomp*::satRange() for initial s-bracket.
2012-02-17 14:17:16 +01:00
Atgeirr Flø Rasmussen
9901d20721
Added satRange() method to Incomp* classes and Saturation* classes.
...
So far not yet added to BlackoilPropertiesInterface.
2012-02-17 14:15:25 +01:00
Atgeirr Flø Rasmussen
75731efa9a
Added lots of (inactive) experimental code.
...
The code attempts to improve #iterations in the Gauss-Seidel-like
multicell solver by improving ordering. In general, experiment failed
to improve #iterations, except for one: totally random order was the
best (for the 100x100 case tried)!
2012-02-17 09:39:45 +01:00
Atgeirr Flø Rasmussen
b5eb8543aa
Added compute_sequence_graph(), which also returns the upwind graph.
2012-02-17 09:29:56 +01:00