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