Commit Graph

368 Commits

Author SHA1 Message Date
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