Commit Graph

196 Commits

Author SHA1 Message Date
Bård Skaflestad
8bab9f9ff8 Merge remote-tracking branch 'atgeirr/fully-implicit' into fully-implicit 2013-06-03 00:16:04 +02:00
Bård Skaflestad
a67ca87fd3 Encapsulate DUMP contents in "do { ... } while (0)"
This makes the macro more function-like and easier to read.
2013-06-03 00:15:40 +02:00
Atgeirr Flø Rasmussen
0376cb0fff Initialize and update qs primary variable. 2013-06-02 23:50:21 +02:00
Atgeirr Flø Rasmussen
b23e622a61 Remove accidentally added file. 2013-06-02 08:59:00 +02:00
Atgeirr Flø Rasmussen
765ce23c3e Work in progress on well flux equations. 2013-06-02 08:58:30 +02:00
Atgeirr Flø Rasmussen
74a5e10f7b Renames variables dtpv->pvdt and Rs->rs. 2013-06-02 08:19:21 +02:00
Atgeirr Flø Rasmussen
adf291a30c Work in progress on well flux equations. 2013-06-02 08:17:13 +02:00
Bård Skaflestad
2606d94935 Merge remote-tracking branch 'atgeirr/fully-implicit' into fully-implicit 2013-05-31 16:07:12 +02:00
Bård Skaflestad
7a44eb8254 Remove blank lines at EOF 2013-05-31 16:07:03 +02:00
Atgeirr Flø Rasmussen
9a3bad000a Do not evaluate properties at well perforation pressures.
Always use quantities derived from cell properties.
2013-05-31 16:03:00 +02:00
Atgeirr Flø Rasmussen
adbbebeeea Properly compute well pressure differentials.
Properly here means using a simple algorithm like
in CompressibleTpfa and ImpesTPFAAD.
2013-05-31 15:02:03 +02:00
Atgeirr Flø Rasmussen
514c48aa31 Use DUMP macro in useful places. 2013-05-31 15:01:28 +02:00
Atgeirr Flø Rasmussen
d49be41cae Corrected fluidDensity() function to account for dissolved gas. 2013-05-31 14:59:56 +02:00
Atgeirr Flø Rasmussen
59e36f72b3 Add DUMP macro for debugging. 2013-05-31 14:59:24 +02:00
Atgeirr Flø Rasmussen
526b4d26e3 Actually initialize densities_ member. 2013-05-31 14:57:04 +02:00
Bård Skaflestad
bac1a3a364 Add a couple of debugging aids to assist in FIBO development. 2013-05-30 18:43:11 +02:00
Bård Skaflestad
d23a1c3066 Coalesce two adjacent '!NDEBUG' sections into one. 2013-05-30 17:56:49 +02:00
Atgeirr Flø Rasmussen
932660a18c New updateState() method, changes to fluid interfaces.
- updateState() is a new method that modifies the state object after solution,
   this was formerly done in solveJacobianSystem().
 - Implemented Appleyard chop (not verified yet) for handling variable switching.
 - Added rs as input to fluid interfaces to include rs-derivatives.
2013-05-30 14:43:32 +02:00
Atgeirr Flø Rasmussen
62d0ad85b8 Use BlackoilPropsAdFromDeck in fully implicit simulator. 2013-05-27 22:28:17 +02:00
Atgeirr Flø Rasmussen
e3f39504f4 Fixed error in include guard macros.
Header file started life as a copy of another header, but include
guard macro was not changed. Time to go for #pragma once?
2013-05-27 22:26:52 +02:00
Atgeirr Flø Rasmussen
f26207d430 Fixes in BlackoilPropsAdFromDeck. Now compiles. 2013-05-27 22:01:20 +02:00
Atgeirr Flø Rasmussen
a6dba405dd Merge remote-tracking branch 'totto82/newfluid' into fully-implicit 2013-05-27 15:46:22 +02:00
Tor Harald Sandve
1cf1e3383b Add new interface to BlackoilPropsAdFromDeck
-- not finished --
2013-05-27 14:55:32 +02:00
Atgeirr Flø Rasmussen
2c206e0cd4 Finished initial attempt at miscibility support.
Not yet tested. Also, no way to initialize gas-oil ratio yet.
2013-05-27 11:32:35 +02:00
Atgeirr Flø Rasmussen
cbb7b07496 Added method fluidRsMax(), added rs as a primary variable.
Also increased amount of whitespace between methods for readability.
2013-05-27 10:29:04 +02:00
Atgeirr Flø Rasmussen
5f4167d800 New interface methods rsMax() in BlackoilPropsAdInterface.
Notes:
 - Interface was already present, just disabled.
 - Class BlackoilPropsAd cannot properly implement rsMax() with derivatives,
   and implements only a throw statement.
2013-05-27 10:26:41 +02:00
Atgeirr Flø Rasmussen
78fa581417 Fix some bugs: referring to the wrong phase in two places. 2013-05-27 00:24:38 +02:00
Atgeirr Flø Rasmussen
09c4362e3c Added solveJacobianSystem() method, finished step().
Code is now functionally complete apart from lacking miscibility,
not writing to all promised output variables and not writing the
promised output to disk. Initial testing has been unsuccessful,
so there are bugs in the code.
2013-05-26 11:49:44 +02:00
Atgeirr Flø Rasmussen
1d4af250ac Add well contributions to mass balance residuals. 2013-05-26 09:52:58 +02:00
Atgeirr Flø Rasmussen
8a740eeab4 Merge remote-tracking branch 'bska/fully-implicit' into fully-implicit 2013-05-25 10:50:00 +02:00
Atgeirr Flø Rasmussen
b88dfd6af2 Added assembly of well equations.
This has not been tested.
Well contributions to mass balance equations are not done yet.
2013-05-25 10:47:22 +02:00
Atgeirr Flø Rasmussen
2ebd58fad2 Added bhp as a primary variable.
Changed interface of constantState() and variableState() to also
take a WellState as input. Some comments added with minor layout
changes.
2013-05-24 23:20:15 +02:00
Atgeirr Flø Rasmussen
dfbf8dd80e Commented the assemble() function. 2013-05-24 22:30:54 +02:00
Atgeirr Flø Rasmussen
9894fdc2d4 Renamed residual_.reservoir -> residual_.mass_balance.
Also initialize in initializer list, eliminating the need for
the allocateResidual() method.
2013-05-24 22:16:06 +02:00
Bård Skaflestad
7432ca215f Include <cassert> for assert() macro. 2013-05-24 22:04:58 +02:00
Bård Skaflestad
eee8c27346 Merge remote-tracking branch 'atgeirr/fully-implicit' into fully-implicit 2013-05-24 21:49:27 +02:00
Atgeirr Flø Rasmussen
a3be33a312 Merge remote-tracking branch 'bska/fully-implicit' into fully-implicit 2013-05-24 21:46:11 +02:00
Atgeirr Flø Rasmussen
dc83ecb18e Merge remote-tracking branch 'bska/fully-implicit' into fully-implicit 2013-05-24 21:11:41 +02:00
Bård Skaflestad
2dffbb3a70 Add gather/scatter support for wells 2013-05-24 17:22:35 +02:00
Atgeirr Flø Rasmussen
cd42d4af34 Added missing dereference operator. 2013-05-24 16:07:27 +02:00
Bård Skaflestad
747badaea8 Merge remote-tracking branch 'atgeirr/fully-implicit' into fully-implicit 2013-05-24 15:56:23 +02:00
Atgeirr Flø Rasmussen
fa02639dbf Use Span. 2013-05-24 15:38:31 +02:00
Atgeirr Flø Rasmussen
535a1fd272 Added Span. 2013-05-24 15:38:19 +02:00
Bård Skaflestad
c5ad446a0a Include well support in FIBOSolver interface.
Update callers accordingly.
2013-05-24 15:27:19 +02:00
Bård Skaflestad
520a6a0a11 Merge remote-tracking branch 'atgeirr/fully-implicit' into fully-implicit 2013-05-24 12:24:42 +02:00
Atgeirr Flø Rasmussen
a94f1921dd Added simulator class for fully implicit blackoil. 2013-05-24 11:40:58 +02:00
Bård Skaflestad
3a31a1a61f Implement residualNorm() for reservoir part.
This is a prerequisite to having a working Newton loop.

This is a forward-port of commit 604f866.
2013-05-24 11:38:17 +02:00
Atgeirr Flø Rasmussen
e367f08732 Moved implementation to .cpp file. 2013-05-24 11:14:05 +02:00
Atgeirr Flø Rasmussen
3d008c033d Class FullyImplicitBlackoilSolver is no longer a template. 2013-05-24 11:00:55 +02:00
Atgeirr Flø Rasmussen
f916153747 Added (empty) implementation file. 2013-05-24 10:52:49 +02:00
Atgeirr Flø Rasmussen
57a3bd2113 Renamed ImplicitBOStep -> FullyImplicitBlackoilSolver. 2013-05-24 10:49:59 +02:00
Atgeirr Flø Rasmussen
6f55996441 Merge branch 'master' into fully-implicit 2013-05-24 10:40:35 +02:00
Atgeirr Flø Rasmussen
394a851b41 Clarify some variables' purposes. 2013-05-24 10:39:10 +02:00
Atgeirr Flø Rasmussen
9277e10552 Temporarily ignore viscosity derivatives. 2013-05-24 10:38:23 +02:00
Atgeirr Flø Rasmussen
8afdef61b6 Merge remote-tracking branch 'bska/master' 2013-05-24 09:06:50 +02:00
Atgeirr Flø Rasmussen
542b7eb03d Removed qs from the set of primary variables. 2013-05-24 08:14:43 +02:00
Bård Skaflestad
12e4557b08 Add first cut at fully implicit system assembly.
Compile-tested only.

At this point, we only include reservoir effects--i.e., we don't
consider wells.
2013-05-23 18:28:50 +02:00
Bård Skaflestad
0c9cd6b901 Expose PhaseUsage to clients
This is likely to be a hack, but it does facilitate creating the fully
implicit solver for arbitrary two- and three-phase fluid systems.
2013-05-23 18:26:25 +02:00
Bård Skaflestad
2621283f1d Add operator+=
This simplifies updating residuals.
2013-05-23 18:24:37 +02:00
Atgeirr Flø Rasmussen
07fbdf7608 Fix initialization issue with gpot_. 2013-05-23 16:39:15 +02:00
Atgeirr Flø Rasmussen
70ebd21cfd Moved some calculations to computeExplicitData() method. 2013-05-23 15:08:21 +02:00
Atgeirr Flø Rasmussen
e5bd6547ae Add gravity() method. 2013-05-23 14:48:34 +02:00
Bård Skaflestad
e2b5586b31 Merge remote-tracking branch 'atgeirr/master' 2013-05-23 13:25:20 +02:00
Atgeirr Flø Rasmussen
d171f043e5 Added simulator class and program using ImpesTPFAAD.
This copies similar code from opm-core and replaces
CompressibleTpfa with ImpesTPFAAD. Produces same results
for initial simple test cases.
2013-05-22 22:53:40 +02:00
Atgeirr Flø Rasmussen
52dc5799cc Now computeFluxes() also sets well quantities.
Namely well_state.perfRates() and well_state.perfPress().
In the process, some overloads of fluid methods were added to
take V arrays instead of ADB arrays.

Simultaneously, coarsened tolerances a bit. Still hardcoded, though.
2013-05-22 22:51:14 +02:00
Atgeirr Flø Rasmussen
3e8bb53730 Moved implementation of class ImpesTPFAAD to separate file.
Also cleaned up header usage in ImpesTPFAAD.hpp, making some
new inclusions necessary in test program.
2013-05-22 15:49:55 +02:00
Atgeirr Flø Rasmussen
abc23b8009 ImpesTPFAAD is no longer a template class. 2013-05-22 15:27:16 +02:00
Atgeirr Flø Rasmussen
e86aa3324c Moved DerivedGeology class to GeoProps.hpp.
Also, it is no longer a template (but its constructor is).
2013-05-22 15:16:24 +02:00
Bård Skaflestad
04e48cf615 Merge remote-tracking branch 'atgeirr/master' 2013-05-22 13:00:03 +02:00
Bård Skaflestad
6d0202d529 collapseJacs(): Don't assume column-major ordering
The 'InnerIterator' is ordering agnostic, so there is no need to
assume that the Jacobians are stored in a particular ordering.
2013-05-22 11:26:49 +02:00
Atgeirr Flø Rasmussen
8cc16466a9 Make ImpesTPFAAD use abstract fluid interface instead of template.
Follow-up changes to test program. Also while there, input correct
number of perforations to add_well() calls.
2013-05-22 11:13:14 +02:00
Atgeirr Flø Rasmussen
27cd7cf19e Added abstract class BlackoilPropsAdInterface.
Also made BlackoilPropsAd (the class wrapping opm-core BlackoilPropertiesInterface)
inherit from it.
2013-05-22 10:56:14 +02:00
Atgeirr Flø Rasmussen
f2f83fee32 Remove unused experimental AD class. 2013-05-22 08:39:09 +02:00
Atgeirr Flø Rasmussen
89bd40f81e Removed unused experiment with armadillo replacing Eigen. 2013-05-22 08:34:06 +02:00
Atgeirr Flø Rasmussen
edc08c0679 Now accepts both BHP and SURFACE_RATE wells. 2013-05-22 00:09:57 +02:00
Atgeirr Flø Rasmussen
c8bde19a01 Use all eqns for residual evaluations.
Use new wellRates() member of WellState.
2013-05-21 23:26:55 +02:00
Atgeirr Flø Rasmussen
8938459f7b Added well equations.
Residuals are not yet used for loop control.
2013-05-21 15:42:35 +02:00
Atgeirr Flø Rasmussen
3929688756 Added utilitied collapseJacs() and vertcat().
The utilities are not optimized for speed, but make it easy
to construct a linear system from all the jacobian blocks.
2013-05-21 15:40:45 +02:00
Atgeirr Flø Rasmussen
bd1af1f53a Make float accuracy fix the main path. Remove alternative path. 2013-05-21 13:54:28 +02:00
Atgeirr Flø Rasmussen
a147ff93d0 Can now solve with bhp-controlled wells.
Simple initial code. Assumes that well_state.bhp() contains
well bhp targets, does not check control structures.
2013-05-21 09:33:52 +02:00
Atgeirr Flø Rasmussen
4d794b79dc Added Selector class.
Used to choose element-by-element between two (potentially AD) vectors,
depending on signs of elements of a third vector. Simple and not optimized.
2013-05-21 09:29:51 +02:00
Atgeirr Flø Rasmussen
defae7b96d Moved UpwindSelector out of anonymous namespace. 2013-05-21 09:28:54 +02:00
Atgeirr Flø Rasmussen
a301477655 Remove more unused code. 2013-05-20 23:42:12 +02:00
Atgeirr Flø Rasmussen
aea69d328b Clean out dead uncommented code. 2013-05-20 23:09:06 +02:00
Atgeirr Flø Rasmussen
f822cb4739 Test case working again with new fluid. 2013-05-16 16:31:05 +02:00
Atgeirr Flø Rasmussen
cc1f8ed21a Refactored ImpesTPFAAD to use BlackoilPropsAd interface.
Not yet tested, but compiles and runs. Stops on error message
due to lack of viscosity derivatives.
2013-05-16 16:05:47 +02:00
Atgeirr Flø Rasmussen
f6c6ee0fa0 Fixes in computeFluxes().
- Give AD variables the correct block pattern (although as we
   change fluid interface they will not need to be ad types).
 - Make sure 'flux' is only on inner faces.
 - Copy full fluxes to state.faceflux().
2013-05-16 14:46:54 +02:00
Atgeirr Flø Rasmussen
84d163e9fa Bugfix: convert array to matrix type for matrix multiply. 2013-05-16 14:44:16 +02:00
Bård Skaflestad
0063799e86 Merge remote-tracking branch 'atgeirr/master' 2013-05-16 10:29:19 +02:00
Bård Skaflestad
c8fb7169aa Move rel-perm and viscosity calculations closer to use
This is an aesthetic change, only.
2013-05-16 09:58:34 +02:00
Atgeirr Flø Rasmussen
c20a67aa1b Merge remote-tracking branch 'bska/master' 2013-05-16 09:55:11 +02:00
Bård Skaflestad
fa2e02a579 The 'pflux' is really the hydraulic head.
Rename variable accordingly.
2013-05-16 09:51:34 +02:00
Bård Skaflestad
ef354792cd Implement first cut at Darcy (total) flux calculation.
This is compile-tested only.
2013-05-16 09:48:56 +02:00
Bård Skaflestad
24204cf33e Merge remote-tracking branch 'atgeirr/master' 2013-05-15 16:10:54 +02:00
Bård Skaflestad
e0c85a2fdb Adapt to CMake-based build system.
Specifically,

  - #include <config.h> where appropriate (all .cpp files)
  - Adjust include statements to account for sub-directory locations
    of .hpp files.
2013-05-15 16:10:20 +02:00
Bård Skaflestad
9309024d1e First partitioning into source/examples/tests
Reorganisations are likely.
2013-05-15 10:35:39 +02:00