Commit Graph

861 Commits

Author SHA1 Message Date
André R. Brodtkorb
ab445a6d9a Added proper error checking and partial units 2015-08-10 08:50:26 +02:00
André R. Brodtkorb
ccf06c2c1c Added tests for computing the flo/wfr/gfr values based on the aqua/liquid/vapour flow rates 2015-08-10 08:50:26 +02:00
André R. Brodtkorb
3dfd9ad56d Added ADB version of bhp function 2015-08-10 08:50:25 +02:00
André R. Brodtkorb
0e3b951cd0 Added skeleton of interpolation using ADBs as input 2015-08-10 08:50:25 +02:00
André R. Brodtkorb
7b0132b110 Added linear extrapolation 2015-08-10 08:50:25 +02:00
André R. Brodtkorb
106467e889 Tabs to spaces 2015-08-10 08:50:25 +02:00
André R. Brodtkorb
67b55f873c Created tests for the VFPProperties class 2015-08-10 08:50:25 +02:00
André R. Brodtkorb
a54804c0cc Added initial version of VFPProperties 2015-08-10 08:50:25 +02:00
Robert Kloefkorn
9cf207f1fb DuneMatrix: remove hackery of defining private as protected. This issues has been
resolved in dune-2.4.
2015-08-07 12:08:06 +02:00
Joakim Hove
6a841cfa83 Added new 'false' argument to writeTimeStep() 2015-08-05 13:46:17 +02:00
chflo
077f3d8ea7 OPM-218: Fix for restart interval write 2015-08-02 22:36:50 +02:00
Robert Kloefkorn
affc64f346 SimulatorBase: avoid using update operator for bool. 2015-07-29 10:21:55 +02:00
Atgeirr Flø Rasmussen
e24cb27ad4 Merge pull request #420 from dr-robertk/PR/bug-fix-is-parallel-init
SimulatorBase[bugfix]: is_parallel_run_ was not initialized correctly.
2015-07-27 18:14:35 +02:00
Robert Kloefkorn
3ef2e883f8 SimulatorBase[bugfix]: is_parallel_run_ was not initialized when output_terminal was
false.
2015-07-27 13:08:36 +02:00
Markus Blatt
67d5a1f503 Prevents initializing std::shared_ptr from nullptr.
For g++-4.4 support for nullptr is not complete. Using it
to initialize an empty shared_ptr breaks compilation:

/home/mblatt/src/dune/opm/opm-autodiff/opm/autodiff/AutoDiffHelpers.hpp: In constructor ‘Opm::HelperOps::HelperOps(const Grid&, Opm::EclipseStateConstPtr)’:
/home/mblatt/src/dune/opm/opm-autodiff/opm/autodiff/AutoDiffHelpers.hpp:87: error: no match for ternary ‘operator?:’ in ‘(bool)eclState ? eclState->.Opm::EclipseState::getNNC() : nullptr’
/home/mblatt/src/dune/opm/opm-autodiff/opm/autodiff/AutoDiffHelpers.hpp:87: note: candidates are: operator?:(bool, const Opm::NNC* std::__shared_ptr<const Opm::NNC, (__gnu_cxx::_Lock_policy)2u>::*, const Opm::NNC* std::__shared_ptr<const Opm::NNC, (__gnu_cxx::_Lock_policy)2u>::*) <built-in>
/home/mblatt/src/dune/opm/opm-autodiff/opm/autodiff/AutoDiffHelpers.hpp:87: note:                 operator?:(bool, const Opm::NNC* std::__shared_ptr<const Opm::NNC, (__gnu_cxx::_Lock_policy)2u>::*, T*) <built-in>

Here no conversion to shared_ptr happens.

/home/mblatt/src/dune/opm/opm-autodiff/opm/autodiff/ImpesTPFAAD.cpp: In constructor ‘Opm::HelperOps::HelperOps(const Grid&, Opm::EclipseStateConstPtr) [with Grid = UnstructuredGrid]’:
/home/mblatt/src/dune/opm/opm-autodiff/opm/autodiff/ImpesTPFAAD.cpp:160: error: no matching function for call to ‘std::shared_ptr<const Opm::EclipseState>::shared_ptr(const dune_nullptr_t&)’
/usr/include/c++/4.4/bits/shared_ptr.h:1263: note: candidates are: std::shared_ptr<_Tp>::shared_ptr(std::shared_ptr<_Tp>&&) [with _Tp = const Opm::EclipseState]
/usr/include/c++/4.4/bits/shared_ptr.h:1238: note:                 std::shared_ptr<_Tp>::shared_ptr() [with _Tp = const Opm::EclipseState]
/usr/include/c++/4.4/bits/shared_ptr.h:1236: note:                 std::shared_ptr<const Opm::EclipseState>::shared_ptr(const std::shared_ptr<const Opm::EclipseState>&)

Here the DUNE's nullptr implementation is used with std::shared_ptr which are not
compatible.

We fix this by using the emptry constructor of std::shared_ptr to create a nullptr.
2015-07-23 15:33:45 +02:00
Atgeirr Flø Rasmussen
de2a52bbda Fixed Eigen array dimensions must be respected in resize(). 2015-07-15 13:26:34 +02:00
Bård Skaflestad
c5ae85e480 Merge pull request #415 from atgeirr/fix-nnctreatment
Fix nnc treatment
2015-07-13 22:09:10 +02:00
Atgeirr Flø Rasmussen
61b1a67140 Bugfix: do not call method on pointer that can be null. 2015-07-13 11:24:21 +02:00
Atgeirr Flø Rasmussen
eda6899571 Simplify rhs of conditional. 2015-07-13 11:23:56 +02:00
Robert Kloefkorn
752f80572e GridHelpers: added specialization for PolyhedralGrid. 2015-07-10 14:16:43 +02:00
Tor Harald Sandve
ab872b15e3 Remove old constructor
Pass Null pointer as default argument for the EclipseState to enable all
users to use the new constructor.
2015-07-10 10:30:29 +02:00
Tor Harald Sandve
662849637c Change size_t to int to avoid comparison warnings
and add some white spaces
2015-07-10 05:08:04 +02:00
Tor Harald Sandve
f1e91b8b87 Use the gridhelpers to make it run with cp-grid 2015-07-09 12:18:52 +02:00
Tor Harald Sandve
065b2f595c Add support for NNC in the simulator
1) NNC are added the grad, div and average operators
2) NNC are added the upwindSelector
3) NNC transmissibilities are added to the face transmissibilities
2015-07-09 12:15:59 +02:00
Atgeirr Flø Rasmussen
41eefa188f Removed unneeded Opm:: qualifier, and reindent. 2015-07-09 13:45:15 +02:00
Atgeirr Flø Rasmussen
c64222ce33 Avoid unused argument warning. 2015-07-09 13:37:20 +02:00
Robert Kloefkorn
db36dd6f43 GeoProps: initialize scaledFaceNormal with zero. 2015-07-08 13:46:03 +02:00
Robert Kloefkorn
3c1bf1a669 GeoProps: avoid complications if dune is not found. 2015-07-08 13:18:52 +02:00
Robert Kloefkorn
bdb30ec023 GeoProps: fix the use_local_perm implementation for flow_cp. The problem that the
faceNormals are scaled differently remains.
2015-07-08 13:15:00 +02:00
Bård Skaflestad
8cd014f937 Merge pull request #408 from atgeirr/performance-opt
Performance enhancements and simplifications for BlackoilModelBase
2015-07-01 14:41:50 +02:00
Atgeirr Flø Rasmussen
f0db1974cf Merge pull request #409 from andlaus/use_fluidstates_for_satfuncs
adapt to the opm-core API change in the SaturationFunctionsFromDeck to always use non-uniform tables
2015-07-01 12:58:13 +02:00
Robert Kloefkorn
5b51a5b7b1 Merge remote-tracking branch 'upstream/master' into PR/merge-flow-and-flow_cp 2015-06-30 13:39:03 +02:00
Atgeirr Flø Rasmussen
98dfe892f5 Undo the order changes in commit 1524a1.
This is done to eliminate changes in simulation results.
2015-06-29 16:44:10 +02:00
Andreas Lauser
78f7097798 adapt to the opm-core API change in the SaturationFunctionsFromDeck to always use non-uniform tables 2015-06-26 15:32:10 +02:00
Atgeirr Flø Rasmussen
4cb8556f42 Simplify fluid interfaces, reuse formation volume factor.
The simplifications are:
 - Do not pass cell indices to fluidViscosity(), fluidReciprocFVF().
 - Pass b (reciprocal f.v.f.) to fluidDensity() instead of pressure etc.

This saves one call to fluidReciprocFVF(), that is removed from
fluidDensity(). Instead the previously stored quantity is passed
to fluidDensity() as an argument.
2015-06-24 10:22:23 +02:00
Atgeirr Flø Rasmussen
1524a10e31 Change order of computation to reduce overhead. 2015-06-24 10:06:40 +02:00
Atgeirr Flø Rasmussen
c96a33124c Refactor addWellEq().
The method has been split in three parts:
        computeWellFlux(const SolutionState& state,
                        const std::vector<ADB>& mob_perfcells,
                        const std::vector<ADB>& b_perfcells,
                        V& aliveWells,
                        std::vector<ADB>& cq_s);

        void
        updatePerfPhaseRatesAndPressures(const std::vector<ADB>& cq_s,
                                         const SolutionState& state,
                                         WellState& xw);

        void
        addWellFluxEq(const std::vector<ADB>& cq_s,
                      const SolutionState& state);

This reduces the function length, although most of the content of addWellEq()
now is in computeWellFlux(), so that function is still quite long. It also
allows us to use smaller sets of function arguments, which makes methods easier
to understand.

Finally, it makes it easier to create derived models with custom behaviour.
2015-06-22 11:34:10 +02:00
Atgeirr Flø Rasmussen
ae6caaac61 Move parallel overload into HAVE_MPI block. 2015-06-19 14:06:27 +02:00
Atgeirr Flø Rasmussen
f3623270cc Fix case in include statement. 2015-06-19 13:35:36 +02:00
Atgeirr Flø Rasmussen
700ce9e13d Move forming interleaved matrix to own function/ 2015-06-19 11:33:30 +02:00
Atgeirr Flø Rasmussen
5e513642d7 Add paralell preconditioner, enable parallel case. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
a3d115ff22 Add (disabled) parallel version.
Disabled because the constructPreconditionerAndSolve() method does
not have a way currently to construct a parallel preconditioner.
2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
5476b7a6ac Clean up headers, copyright. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
ca74b18784 Add missing include. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
4eb77bebb4 Further cleanup: includes, copyright, whitespace. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
9e28857933 Remove functions that were moved to NewtonIterationUtilities. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
c8cae85ea2 Move functions needed by several NewtonIteration-classes to separate file. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
d86de7bb79 Only use pressure jacobian to form sparsity pattern.
Also clean up by eliminating commented-out debugging code.
2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
8cbce1bfdf Working interleaved solver implemented. 2015-06-19 10:53:32 +02:00
Atgeirr Flø Rasmussen
8af1ea1e42 Add (disabled) experimental part, not changing the A matrix.
This seems to cause a significant increase in iterations and failures,
which is why it is disabled for now.
2015-06-19 10:53:32 +02:00