Commit Graph

1409 Commits

Author SHA1 Message Date
Bård Skaflestad
8b12d1506d Add MATLAB-compatible output of ADB::M values.
This is mostly intended as an interim aid in development.  Not enabled
if 'NDEBUG' is defined.
2013-05-03 23:45:13 +02:00
Bård Skaflestad
fc5a3f181e Use S_o=1 as initial condition.
This is the case in 'sim_simple.cpp', too.
2013-05-03 20:28:36 +02:00
Bård Skaflestad
9b65338461 Add MRST function for 'sim_simple' development 2013-05-03 20:21:37 +02:00
Bård Skaflestad
d0866c39b5 Implement first cut at upwind-mobility weighting for transport
Specifically,

  - Introduce a new class, UpwindSelector<Scalar> which provides a
    selection service (method select()) to pick out a quantity across
    an interface in the upwind direction.

    Method select() is implemented only for the case of no
    counter-current flow (i.e., no effects of gravity and/or capillary
    pressure).  The selector is affected through applying an explicit
    sparse matrix to each quantity.  This may be inefficient, but only
    measurements will tell.

  - Split function fluxFunc<ADB>() into two components,
    phaseMobility<ADB>() and fluxFunc<ADB>().  The former computes
    phase mobilities (per cell) for water and oil in a subset of the
    grid cells and the latter computes the flux function (for water,
    i.e., the first phase) based on a (2-) vector of phase
    mobilities--either per cell or per internal interface.

  - Compute explicit phase mobilities (per cell) in the non-linear
    loop before employing the upwind selector to pick out proper
    upwind mobilities per (internal) interface to define the quantity
    'fw_face' which was previously computed by an arithmetic average.
2013-05-03 17:48:33 +02:00
Bård Skaflestad
bd240a31cb Declare operator?() as 'const'.
None of operator+(), operator-(), operator*() or operator/() modify
their object.  These methods are thus naturally declared as 'const'.
2013-05-03 16:24:20 +02:00
Bård Skaflestad
0a43fe68dd Complete Addition tests. 2013-05-03 12:53:51 +02:00
Bård Skaflestad
d6cfe8ab6f Clarify diagnostic message in pressure solve.
Word missing in commit a95fbf0.
2013-05-03 12:39:24 +02:00
Bård Skaflestad
a95fbf0e8e Terminate process in case of factorisation/solution failure.
Provide moderately informative diagnostic message in this case.
2013-05-03 12:33:48 +02:00
Bård Skaflestad
dddb30b5a5 Use regularised Jacobian when solving pressure system. 2013-05-03 12:26:02 +02:00
Bård Skaflestad
cd9c9d5cde Don't require initialiser lists.
These were introduced into GCC as recently as edition 4.7 .  Ubuntu
10.04 LTS features GCC 4.4 only.
2013-05-03 11:28:08 +02:00
Bård Skaflestad
e4cbc2c7f2 Merge remote-tracking branch 'atgeirr/master' 2013-05-03 11:08:37 +02:00
Bård Skaflestad
4ffea931e3 Add test for addition of ADB::variable()s. 2013-05-03 11:08:06 +02:00
Atgeirr Flø Rasmussen
9deca26fae Merge remote-tracking branch 'bska/master' 2013-05-03 11:01:46 +02:00
Atgeirr Flø Rasmussen
7e240913a4 Now doing a single transport step as well. 2013-05-03 11:00:17 +02:00
Bård Skaflestad
9e55006229 Implement a custom comparator for Eigen::SparseMatrix<double>
Use it to simplify the 'FunctionInitialisation' test.
2013-05-03 10:46:46 +02:00
Bård Skaflestad
6794577301 Add stub test for ADB::operator+()
Doesn't actually test anything at the moment.
2013-05-02 18:00:36 +02:00
Bård Skaflestad
49396b6079 Don't include <iostream> in tester.
It is not needed and was only added for convenience during test
development.
2013-05-02 15:40:59 +02:00
Bård Skaflestad
b1b245ccab Don't include <iostream> in public header. 2013-05-02 15:16:48 +02:00
Bård Skaflestad
b6834de662 Don't rely on header pollution to provide <iostream> 2013-05-02 15:16:21 +02:00
Bård Skaflestad
2b5d49bea9 Merge remote-tracking branch 'atgeirr/master' 2013-05-02 14:48:33 +02:00
Bård Skaflestad
e15c389daf Rename typedef ADV -> ADB to reflect reality.
We're working with *Block*s here.
2013-05-02 13:57:05 +02:00
Atgeirr Flø Rasmussen
62e321d069 Moved topological matrix operators into separate struct. 2013-05-02 13:51:03 +02:00
Bård Skaflestad
567d3a80b3 Add various initialisation tests using Boost.Test . 2013-05-02 13:39:33 +02:00
Bård Skaflestad
36f2dd6403 Merge remote-tracking branch 'atgeirr/master' 2013-05-02 11:28:32 +02:00
Atgeirr Flø Rasmussen
9a9e6fb7b7 Fix slow setup of cdiff etc. Also add timing, make case 3d. 2013-05-02 11:27:02 +02:00
Atgeirr Flø Rasmussen
63aae9a232 Avoid unused variable warning in release build. 2013-05-02 11:26:06 +02:00
Bård Skaflestad
a496c2d668 Merge remote-tracking branch 'atgeirr/master' 2013-05-02 10:52:36 +02:00
Atgeirr Flø Rasmussen
42511ad2e3 Removed unused variables sw and so. 2013-05-02 09:27:58 +02:00
Atgeirr Flø Rasmussen
169557111d Simple simulator-like test program added.
So far it only computes a single pressure solution.
2013-05-02 08:51:36 +02:00
Bård Skaflestad
3c00b0528a Sort list of ignored executables for easy reference 2013-05-02 00:35:40 +02:00
Atgeirr Flø Rasmussen
8e7ae33724 Fixed wrong assert() in operator*(sparse matrix, AD block).
Also removed unnecessary debug output (that was wrong anyway).
2013-05-01 21:25:50 +02:00
Atgeirr Flø Rasmussen
f85e74bcff Added operator* that allows A*x for sparse A and x an AD object. 2013-05-01 09:05:53 +02:00
Atgeirr Flø Rasmussen
92f56f6d92 Removed variable index from ForwardBlock class.
Feature was in the way of having (for example) face variables depending on cell variables.
2013-05-01 09:03:56 +02:00
Bård Skaflestad
633de102c2 Fix misprint in operator*() chain rule. 2013-04-30 22:51:29 +02:00
Atgeirr Flø Rasmussen
30c8acfaf4 Updated ignore patterns. 2013-04-30 20:29:57 +02:00
Atgeirr Flø Rasmussen
d046b9e97a Completed simple block AD class. 2013-04-30 20:28:32 +02:00
Atgeirr Flø Rasmussen
d518b5c787 Initial work in progress on block AD class. 2013-04-30 16:15:40 +02:00
Atgeirr Flø Rasmussen
069e878b0e Completed basic version of AD vector class and test. 2013-04-30 16:15:00 +02:00
Bård Skaflestad
6ed2b129cb Implement constant() and variable() in terms of function()
Specifically,

  - A constant is a function with zero derivative
  - A variable is a function with unit derivative with respect to
    itself.
2013-04-30 13:41:13 +02:00
Bård Skaflestad
70996fb195 Remove two instances of EOL whitespace. 2013-04-30 13:35:34 +02:00
Bård Skaflestad
86eb29b4c3 variable(): Avoid memory overhead of identity constructor. 2013-04-30 12:48:02 +02:00
Bård Skaflestad
c276592ca5 Don't #include <iostream>. It's not needed. 2013-04-30 12:37:08 +02:00
Bård Skaflestad
06d2c078fa Use documented include statements for Eigen 2013-04-30 12:36:43 +02:00
Bård Skaflestad
134b9b1a7f Readjust whitespace to original conventions. 2013-04-30 11:52:03 +02:00
Atgeirr Flø Rasmussen
e2d8b77ec5 Initial vector AD type experimentation. 2013-04-30 11:48:04 +02:00
Atgeirr Flø Rasmussen
0bf693e8c0 Merge remote-tracking branch 'bska/master' 2013-04-30 11:07:13 +02:00
Atgeirr Flø Rasmussen
42cdfa27a0 Use named constructor pattern.
Made AutoDiff::Forward constructor private.
Added static methods constant(), variable(x) and function(x, dx).
2013-04-30 11:05:59 +02:00
Bård Skaflestad
6319c428a3 Don't return values from update operators.
Statements like

   a = b += c

make no sense
2013-04-30 10:47:00 +02:00
Bård Skaflestad
0ff3b721ee Rename members to better reflect purpose.
Specifically,

  - x_  -> val_
  - dx_ -> der_
2013-04-30 09:25:37 +02:00
Bård Skaflestad
e17447d6cd Add further test cases
- Polynomials (including mixed mode arithmetic)
  - Cosines (including mixed mode arithmethic)
  - Square roots (including mixed mode arithmetic)
2013-04-30 00:08:02 +02:00