Commit Graph

2339 Commits

Author SHA1 Message Date
Robert Kloefkorn
4df4c9147a fastSparseProduct.hpp --> fastSparseOperations.hpp 2016-02-16 10:25:57 +01:00
Robert Kloefkorn
743fad877a remove unused typedef. 2016-02-16 10:25:57 +01:00
Robert Kloefkorn
2eebf73e1a computeWellFlux: use operator -= when possible. 2016-02-16 10:25:57 +01:00
Robert Kloefkorn
98c49fd52f AutoDiffMatrix: use operator += to add matrices 2016-02-16 10:25:57 +01:00
Robert Kloefkorn
fadf5528e3 squash 2016-02-16 10:25:56 +01:00
Robert Kloefkorn
d5b6566e06 AutoDiffMatrix: use fastSparse{Add,Substract} when sparsisty patterns match. 2016-02-16 10:25:56 +01:00
Andreas Lauser
e775df6d23 fix the build
it broke because EclipseState::get*GridProperty() now returns a
pointer to a constant object.
2016-02-15 15:06:05 +01:00
Tor Harald Sandve
b02589316f Add support for MISC regions
- element wise power operator impemented in AutoDiffBlock
- TL parameters are given pr cell
2016-02-15 14:44:14 +01:00
Tor Harald Sandve
9328bd5af5 Support pvt and saturation regions in SolventPropsAdFromDeck 2016-02-15 10:07:47 +01:00
Robert Kloefkorn
530c0fe57f MatrixBlock: cleanup invert implementation to be less confusing. 2016-02-12 12:17:01 +01:00
Robert Kloefkorn
3aa8ed200f NewtonBlackoilInterleaved: increase maximal allowed iteration to 75. 2016-02-12 12:14:02 +01:00
Robert Kloefkorn
37e49a62c8 BlackoilModelBase: use single precision for solver when dt < 20 days. 2016-02-12 12:14:02 +01:00
Robert Kloefkorn
e3b578d685 NewtonIterationBlackoilInterleaved: single precision can be used whether UMFpack is
there or not.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
4111797822 BlackoilModelBase: added parameter singlePrecision and print residual to large at right
place.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
915177979c SimulatorBase: also show total time at each time step for performance comparison. 2016-02-12 12:14:02 +01:00
Robert Kloefkorn
82d508727f MatrixBlock: added function firstmatrixelement.
NewtonBlackoilInterleaved: some cleanup and variable naming.
2016-02-12 12:14:02 +01:00
Robert Kloefkorn
783f158c93 NewtonBlackoilInterleaved: anable the use of AMG preconditioner. 2016-02-12 12:14:02 +01:00
Robert Kloefkorn
31812bd2f9 NewtonBlackoilInterleaved: add solver option for single precision. 2016-02-12 12:14:02 +01:00
Robert Kloefkorn
37dc877074 CPRPreconditioner: extract creation of AMG into a function. 2016-02-12 12:14:02 +01:00
Atgeirr Flø Rasmussen
eb228835c2 Merge pull request #577 from totto82/solventMiscible
Add miscible effects to the solvent model
2016-02-12 11:21:56 +01:00
Tor Harald Sandve
0a30d912e8 Some more cleanup adressing PR comments. 2016-02-12 11:02:03 +01:00
Tor Harald Sandve
dee96db6b2 Cleaning and adding comments 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
c85f10046c Density and viscosity as inputs instead of computed in computeMassFlux
Density and viscosity are given as input instead of calculated inside
computeMassFlux. This allow for modifying the properties prior to
calling computeMassFlux which avoids code duplication in the solvent
implementation.
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
0745be3eba Various bugfixes in computing effective ToddLongstaff parameters
The most significant bug was in the computation of effective saturation
fraction for the gas phase. The current implementation differs from the
manual.
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
cf29eb9aa4 Adapt to changes in the TableContainer 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
a38964c641 Some cleaning 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
13117153a9 Use effective properties in the computation of well segment densities 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
beafccc038 Refactor the ToddLongstaffModel in separate function 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
b8e20917cc Add Todd and Longstaff model
Add method to calculateEffectiveProperties (viscosity and density)
using the Todd and Longstaff model.

The effective properties are stored in mu_eff_ and b_eff_ in the
BlackoilSolventModel and accessed using fluidReciprocFVF and
fluidViscosity
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
17554b4921 Add support for TLMIXPAR
Add support for Todd-Longstaff mixing paramters
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
38c8cd981e BUGFIX. Fix surfaceDensity calculations 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
1e64409f28 Scaling of relative permeability endpoints by the miscibility function 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
bcb0abd9c9 Fix well input and prepare for critical saturations 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
e448548d5a Some refactoring to avoid code duplication
computeMassFlux in BlackoilSolventModel_impl.hpp is refactored to avoid
code duplication
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
238e7c19f3 Add support for miscibilty in the relperms 2016-02-12 10:42:26 +01:00
Tor Harald Sandve
bbee43ef7a Refactor computeMassFlux in the SolventModel
The computeMassFlux in the solventModel is refactored to allow for
modification of relperms for all phases.
2016-02-12 10:42:26 +01:00
Tor Harald Sandve
3d2b7f23c0 Read MSFN and SOF2 and create accociated function
- makeAD() is added to avoid copying
2016-02-12 10:42:26 +01:00
Atgeirr Flø Rasmussen
3b294beb51 Merge pull request #575 from dr-robertk/PR/make-compile-with-current-master
DuneMatrix: adjust to changes in dune 3.0
2016-02-12 10:23:40 +01:00
Atgeirr Flø Rasmussen
885e3aa561 Merge pull request #576 from andlaus/opm-material_PVT
use the blackoil PVT classes from opm-material instead of the opm-core ones
2016-02-11 22:39:38 +01:00
Andreas Lauser
13d2f35493 BlackoilPropsAdFromDeck: fix a few typos
these definitively do not change the results.
2016-02-11 17:07:24 +01:00
Atgeirr Flø Rasmussen
a356a100f7 Fix minor issue with const POD requirements.
A user-defined default constructor is required in this situation
unless explicitly using the empty-brace-init syntax.

See discussion here:
http://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a
2016-02-11 16:17:17 +01:00
chflo
399b4f11c4 restart flow 2016-02-10 14:47:55 +01:00
Andreas Lauser
64c94aebc7 use the blackoil PVT classes from opm-material instead of the opm-core ones 2016-01-29 12:56:19 +01:00
Robert Kloefkorn
a000c5a0b1 DuneMatrix: adjust to changes in dune 3.0 2016-01-28 13:50:25 -07:00
Jørgen Kvalsvik
850f0884f1 Improve includes from opm-parser
Adopting to opm-parser PR#661, add previously missing includes.

OPM/opm-parser#661
2016-01-26 13:32:34 +01:00
Jørgen Kvalsvik
087710df7d Fixes includes wrt opm-parser PR-656
Several files stopped compiling due to relying on opm-parser headers doing
includes. From opm-parser PR-656 https://github.com/OPM/opm-parser/pull/656
this assumption is no longer valid.
2016-01-20 15:11:30 +01:00
Joakim Hove
b41f70cad0 Merge pull request #567 from joakim-hove/table-column
Table column
2016-01-08 15:29:21 +01:00
Atgeirr Flø Rasmussen
7e1af01ad7 Fix change in signature of extractPvtTableIndex() in solvent props. 2016-01-08 14:47:41 +01:00
Joakim Hove
24601480e3 Using new Table api. 2016-01-08 13:57:38 +01:00
Joakim Hove
833f5d053f Avoid using Deck.
Removed incorrect use of Deck for polymer and solvent properties.
2016-01-08 13:57:37 +01:00
chflo
41b928a190 OPM-163: Changed signature for method extractPvtTableIndex 2016-01-07 16:43:38 +01:00
Atgeirr Flø Rasmussen
2505183887 Improve threshold pressure mismatch error message. 2015-12-28 09:22:53 +01:00
Atgeirr Flø Rasmussen
6839b811f2 Make polymer solver use direct solver only.
The interleaved solver should work for this case, but does not currently.
2015-12-21 15:05:32 +01:00
Atgeirr Flø Rasmussen
8507427d83 Use correct syntax for logical not. 2015-12-21 14:55:33 +01:00
Atgeirr Flø Rasmussen
dc4274f4a2 Include nncs in threshold pressures.
This was left out when rebasing (it had been introduced in the flow etc. mains).

This also fixes a bug: the nnc thresholds should be inserted at the end of the
vector to be consistent with the operators, not at the beginning.
2015-12-21 11:12:55 +01:00
Atgeirr Flø Rasmussen
78dbb79ea4 Fix compile error for in-class member init.
Reported by Kai Bao.
2015-12-21 11:12:01 +01:00
Atgeirr Flø Rasmussen
bfcbd09488 Create and use FlowMainPolymer class. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
b420cccfc3 Add warning about simulating without WPOLYMER.
Warning was in the main() of flow_polymer.cpp,
but will disappear from there after refactoring.
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
b156ce0b55 Create and use FlowMainSolvent class. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
39900761a8 Transform FlowMain to use CRTP.
Main content is now in FlowMainBase, which takes Implementation as
a template parameter. FlowMain inherits from FlowMainBase with itself
as Implementation template parameter. Only the createSimulator() method
is implemented in FlowMain (as opposed to in FlowMainBase). All subclasses
must implement createSimulator().
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
bb49ddbfc4 Improve comments. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4d31a99f5b Moved content of warnIfUnusedParams() into runSimulator(). 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4711fd3dfe Complete refactoring of FlowMain. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
7a536570dc Split out readDeckInput() method. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4fae28f3d3 Split out setupOutput() method. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
64eef0609a Split out setupParameters() method. 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
966ace2c53 Split out printStartupMessage() method. 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
c1bd7670c6 Refine OpenMP number-of-threads output.
Now each MPI rank will report, making it easier to see how
MPI and OpenMP interacts w.r.t. processes and threads.
2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
f7c96b4fc5 Split out function setupParallelism(). 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
e3ceac44a6 Renamed flowMain.hpp -> FlowMain.hpp. 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
abf5443f33 Replace flowMain() function with FlowMain class. 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
b10b028aa1 Documented flowMain(). 2015-12-14 16:11:35 +01:00
Atgeirr Flø Rasmussen
29d18261c6 Make multisegment flow variants use flowMain(). 2015-12-14 16:11:35 +01:00
Atgeirr Flø Rasmussen
f02fd71404 Use Simulator::ReservoirState in flowMain(). 2015-12-14 16:11:06 +01:00
Atgeirr Flø Rasmussen
51a03e6212 Extract content of flow main() to separate template function.
The function is templated on grid and simulator class, so this allows
flow and flow_mpi to be implemented without any macro tricks, instead
simply including and using different grid types.
2015-12-14 16:07:47 +01:00
Atgeirr Flø Rasmussen
af980ed93c Creates GridInit template class. 2015-12-14 16:07:46 +01:00
Atgeirr Flø Rasmussen
e74a36d939 Silence int vs. size_t warnings. 2015-12-14 15:55:30 +01:00
Tor Harald Sandve
dbdc42f599 Fix typo in BlackoilPropsAdFromDeck 2015-12-14 12:27:57 +01:00
Atgeirr Flø Rasmussen
bd82e5ade9 Merge pull request #554 from totto82/nnc_thpress
NNC and threshold pressure
2015-12-14 11:33:30 +01:00
Tor Harald Sandve
afbf5ff366 Add code to use the pinchProcessor
MinpvfillProps is only called if OPMFIL is true, while
the pinchProcessor is only called if OPMFIL is false.

Currently opmfil is hardcoded to true i.e.
The pinchProcessor is never called and the minpvfillProps is always
called.
2015-12-14 11:14:46 +01:00
Atgeirr Flø Rasmussen
d30147abfd Merge pull request #555 from totto82/residualSaturations
Add methods for critial gas and gas in oil saturations
2015-12-11 13:08:54 +01:00
Tor Harald Sandve
4b66b0874e Add methods for critial gas and gas in oil saturations
Methods that returns the scaled critical gas (SGCR) saturation and the
scaled critical gas in oil saturation (SOGCR) is added to
BlackoilPropsAdFromDeck and BlackoilPropsAdInterface

A test is added in test_boprops_ad and fluid.data is modified to make
the test non trivial.
2015-12-11 12:53:54 +01:00
Atgeirr Flø Rasmussen
73a26fb8dd Merge pull request #558 from totto82/powerAD
Add power operator to AutoDiffBlock
2015-12-11 09:49:25 +01:00
Tor Harald Sanve
650fef5bc2 Add power operator to AutoDiffBlock 2015-12-10 10:30:28 +01:00
Markus Blatt
afc3ad3522 Guard access of well variable with asImpl().localWellsActive()
Since PR #541 the arrays cq_s, mob_perfcells, and b_perfcells are
empty if there are no wells in the domain of the process. This
caused segementation faults at various places where we compute
on the wells. With this commit we now guard this places using
asImpl().localWellsActive() and only using the array if the call
returns true.
2015-12-09 15:18:03 +01:00
Tor Harald Sanve
6883db77cf Adapt to changes in the NNC class 2015-12-08 13:05:44 +01:00
Tor Harald Sandve
153365f4d0 Adapt to changes in the NNC class 2015-12-08 13:03:15 +01:00
Tor Harald Sandve
e3393c5ee9 Handle combination of threshold_pressure and nnc
The nncs threshold pressures are calculated and appended to the face
threshold pressures
2015-12-08 11:03:05 +01:00
Tor Harald Sandve
99ddc46318 Store the nncs in geoprops 2015-12-08 10:38:58 +01:00
Tor Harald Sandve
298442c281 Cleanup after rebase
- cleanup of some rebase mess
- Added comments
- Use the maxDp for the NNCs
- remove misplaced break in the pinchprocessor
2015-12-08 09:50:07 +01:00
Tor Harald Sandve
5b1f249f96 Calculate thresholdPressures for the NNCs 2015-12-08 09:25:35 +01:00
Atgeirr Flø Rasmussen
ffc91bc35e Remove unnecessary EclipseState argument from run(). 2015-12-07 13:40:06 +01:00
Atgeirr Flø Rasmussen
e54f7ed2d7 Use warning suppression headers. 2015-12-07 13:40:06 +01:00
Arne Morten Kvarving
8808642708 Import examples/ and opm/ from opm-polymer w/ history 2015-12-07 10:45:34 +01:00
dr-robertk
bd8586b477 Merge pull request #541 from GitPaean/support_segment_well_rebased
Support multi-segment wells
2015-12-02 11:18:33 -07:00
Atgeirr Flø Rasmussen
241da90531 Merge pull request #547 from blattms/parallel-ilu
Parallel overlapping ILU0
2015-12-02 11:47:13 +01:00
Markus Blatt
cb9d566ec2 Added braces to one-line for loop. 2015-12-02 11:29:38 +01:00
Markus Blatt
99c1b988a7 Fixed typo "consistent consistent" -> consistent. 2015-12-01 15:13:22 +01:00
Markus Blatt
0da66bf45b Removed more dead and code that was already commented out. 2015-12-01 15:11:27 +01:00
Markus Blatt
fd78f1c0b9 Moved includes to \*.cpp file. 2015-12-01 14:56:29 +01:00
Markus Blatt
4adf8487ea Uses more speaking names for template parameter and adds more documentation. 2015-12-01 14:49:07 +01:00
Markus Blatt
e05e3fa478 Removes code that was commented out. 2015-12-01 14:48:35 +01:00
Markus Blatt
0fdd27267b Adds empty lines around namespaces and comment about the end of a namespace. 2015-12-01 14:47:28 +01:00
Markus Blatt
dc1d7c526f Moved ParallelOverlappingILU0 to its own file. 2015-12-01 14:41:06 +01:00
Atgeirr Flø Rasmussen
7edd081175 Silence some warnings. 2015-12-01 13:36:08 +01:00
Kai Bao
5a23406d9e naming M to Matrix for better readability in WellMultiSegment 2015-12-01 10:44:05 +01:00
Kai Bao
f7782c30b7 fixing compilation due to update of master. 2015-12-01 00:06:46 +01:00
Kai Bao
38a9dbd9ff parallel running for flow_mutlisegment
SPE9 can be run in parallel now.
2015-12-01 00:06:46 +01:00
Kai Bao
4c73f3c01c refactoring the init() of WellStateMultiSegment
to handle better when nw = 0
2015-12-01 00:06:46 +01:00
Kai Bao
0022bb8465 adding one missing #pragma line resulting from rebasing conflicts. 2015-12-01 00:06:46 +01:00
Kai Bao
8116424f6d documenting the class WellMultiSegment 2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
57511641e2 Remove unused data members. 2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
a40d93a170 Comment out changes to residual output. 2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
c825b599e5 Remove unused include. 2015-12-01 00:06:46 +01:00
Kai Bao
bcc97b44d8 refactoring the construction of WellMultiSegment
for better readability.
2015-12-01 00:06:46 +01:00
Kai Bao
c946749c73 addressing some old comments in WellMultiSegment 2015-12-01 00:06:46 +01:00
Kai Bao
a684c390f5 cleaning up SimulatorFullyImplicitBlackoilMultiSegment_impl 2015-12-01 00:06:46 +01:00
Kai Bao
31061c8331 cleaning up function computeWellConnectionPressures() for ms wells. 2015-12-01 00:06:46 +01:00
Kai Bao
cfa5faab4e cleaning up comments in BlackoilMultiSegmentModel_impl 2015-12-01 00:06:46 +01:00
Kai Bao
f90b96abf6 removing the use of wops_ from the BlackoilModelBase in ms well
Also some cleaning up of comments in BlackoilMultiSegmentModel
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
61cccfebf8 Refactor updatState() to use numWellVars().
This allows us to use the base version of updateState().
2015-12-01 00:06:45 +01:00
Kai Bao
df30546841 not handling SHUT wells when generating wells_multisegment
it fixed the 7th time step running for Norne.
2015-12-01 00:06:45 +01:00
Kai Bao
9114b56e9b cleaning up comments in WellMultiSegment and WellStateMultiSegment 2015-12-01 00:06:45 +01:00
Kai Bao
edf3c9b08c optimizing the addWellControlEq() for ms wells. 2015-12-01 00:06:45 +01:00
Kai Bao
fcd31d74ac restoring the original wellstate when solveWelleq fails. 2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
233a275191 Made the solveWellEq() method return if it converged.
Also use this to avoid updating if not converged in the
multi-segment version.
2015-12-01 00:06:45 +01:00
Kai Bao
b6ede37ca3 WIP for fixing the solveWellEq running for ms wells.
refactoring needs to be done to finish it.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
2055c94269 Implement solveWellEq() for multisegment model.
Note that this initial version has only been tested on regular wells!
2015-12-01 00:06:45 +01:00
Kai Bao
57d796ca68 not extracting the mob and b inside computeWellFlux() ms wells 2015-12-01 00:06:45 +01:00
Kai Bao
4b9064a0f8 optimizing the function computeSegmentPressuresDelta()
Further optimization is possible by introducing new variable for the
model to avoid recomputation.
2015-12-01 00:06:45 +01:00
Kai Bao
79b9039ba1 fixing computeWellFlux() to recover the mutli-segment running. 2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
693f5c791b Refactor computeWellFlux().
Now much faster, avoiding repeated use of subset() etc. by
vectorization of code.
2015-12-01 00:06:45 +01:00
Kai Bao
80723fee12 adding more operators to ms well ops
p2w w2p s2w w2s
2015-12-01 00:06:45 +01:00
Kai Bao
0c28bf5a75 recovering compilation and running after merging master. 2015-12-01 00:06:45 +01:00
Kai Bao
5a0efdba30 adding comments for addWellFluxEq() 2015-12-01 00:06:45 +01:00
Kai Bao
8ae74d5a47 optimizing addWellFluxEq() based on ms well ops 2015-12-01 00:06:45 +01:00
Kai Bao
55e4206c0b adding s2s_inlets and s2s_outlets to ms well ops.
and also fix the s2p and p2s implementation.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
5b43018862 Fix ms well ops implementation. 2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
bbf86dcd4a Add wops_ms_ member. 2015-12-01 00:06:45 +01:00
Kai Bao
9ee2d92f3f recovering the compilation from the updated master branch. 2015-12-01 00:06:45 +01:00
Kai Bao
c3b4088448 recovering the compilation after updating opm-parser. 2015-12-01 00:06:45 +01:00
Kai Bao
c8fbb0b80d clearning up some comments and debugging output 2015-12-01 00:06:45 +01:00
Kai Bao
b1fdda00af calculating the pressure difference between segments and perforations. 2015-12-01 00:06:45 +01:00
Kai Bao
31f71dd6f7 calculating the depth difference between segments and perforations 2015-12-01 00:06:45 +01:00
Kai Bao
658ad0a400 calculation of pressure difference between perofration and cells
remained to be verified.

The calculation is explicit, should be performed only once at the
begining of the time step.
2015-12-01 00:06:45 +01:00
Kai Bao
f3b885dc0d removing several member variables not useful
they are related to the presure correction caclulations.
2015-12-01 00:06:45 +01:00
Kai Bao
9f218ef1a3 adding segmentDiameter() to WellMultiSegment 2015-12-01 00:06:45 +01:00
Kai Bao
b9e5518b51 adding compPressureDrop() member function for WellMultiSegment 2015-12-01 00:06:45 +01:00
Kai Bao
5e64da6f8e calculating the viscosity of the fluid in segments 2015-12-01 00:06:45 +01:00
Kai Bao
93a86019af calculating the mass flow rate for the segments. 2015-12-01 00:06:45 +01:00
Kai Bao
3b3ac203d9 change the name of computeSegmentDensitiesAndCompVolumeDt
to computeSegmentFluidProperties to include calculation of more fluid mixture in the segments.
2015-12-01 00:06:45 +01:00
Kai Bao
8bde14d7ce applying the volume effects to the well flux equation.
The effects on the result are really tiny, which makes the real
verfication not easy. It did not bring anything bad for the current
working case though.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
9dea3c6b57 Fix typo in variable name. 2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
81e9c25b10 Made methods const in multi-segment model as well. 2015-12-01 00:06:45 +01:00
Kai Bao
95eb44e530 calculating the surface volume of component in segment
For convinience, we calculate and store the surface volume by dt
instead.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
e82828527c Make some methods const.
The methods are: computeWellFlux(), updatePerfPhaseRatesAndPressures()
and extractWellPerfProperties().
2015-12-01 00:06:45 +01:00
Kai Bao
847ae2ef8c adding segment volume / dt to BlackoilMultiSegmentModel
to handle the wellbore volume effects.
2015-12-01 00:06:45 +01:00
Kai Bao
d5f917d1ac computing the density of segment mixture and pressure drop earlier
the density of segmetn mixture will be used in the well flux
calculation.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
ba7b3e728c Minor improvements in computeSegmentDensities().
Mainly improving comments, deleting unused code and moving some variable
definitions closer to where they are used.
2015-12-01 00:06:45 +01:00
Kai Bao
6190d002dd adding the hydrostatic drop effects in segment pressure equation.
Verified with current working case.
2015-12-01 00:06:45 +01:00
Kai Bao
92c5927f30 fixing a typo bug in addWellControlEq
verified with a case with a simple horizontal multi-segment well.
2015-12-01 00:06:45 +01:00
Kai Bao
50938effc4 output the well equation residual. 2015-12-01 00:06:45 +01:00
Kai Bao
a44de6bb1d changing p2s_gather to p2s mappling in well flux equation. 2015-12-01 00:06:45 +01:00
Kai Bao
19caace288 unifying the well flux equaions for multi-segment and non-segment wells
verified with non-segment wells.
2015-12-01 00:06:45 +01:00
Kai Bao
7d11b49732 re-organizing the output.
no functional change.
2015-12-01 00:06:44 +01:00
Kai Bao
885dfedc91 adding the pressure drop between segments
remains to be verfied and apply to the pressure equations for segments
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
702cd3170a Remove unused code and fix a few warnings. 2015-12-01 00:06:44 +01:00
Kai Bao
b7b5672c86 deleting the old unused computeSegmentDensities()
which is a first version, whose implementation should not be used
anymore.
2015-12-01 00:06:44 +01:00
Kai Bao
617e4c1786 fixing one bug in computeSegmentDensities()
the flux rate for the producing well are negtive. NotEqualZero should
used for selector instead of GreaterZero.
2015-12-01 00:06:44 +01:00
Kai Bao
f3ce4dc530 finishing computeSegmentDensities()
the results remain to be verified.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
4dd8536afa Make multi-segment model use Base::addWellContribution...() method.
Also make assemble() more similar to base version, using the
extractWellPerfProperties() member from Base.

To do this it was necessary to change the well_cells member of the
WellOps to be correct for the multi-segment wells (since they may
have different perforation order for some wells).
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
44f36c45cf Add well_cells to WellOps to avoid recreating. 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
b2787e24e7 Use value() in argument to make Selector constructor compile. 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
920eeed3b2 Improve assemble() with new method extractWellPerfProperties(). 2015-12-01 00:06:44 +01:00
Kai Bao
d79536b0dd adding the function computeSegmentDensities()
Not verified yet.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
653e55d7db Make assemble() more similar to base version. 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
e6a81fca83 Make convergence methods work for multi-segment wells.
The convergenceReduction() method no longer takes a number-of-wells argument,
instead it infers the number of well fluxes to check from the size of the
well_flux_eq member of the residual.

After this, a custom getConvergence() method is no longer required for the
multi-segment well model.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
1c4f4c646d Add asImpl() to some method calls.
This enables those methods (mostly well related) to be used polymorphically.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
ae512d5c83 Update location of ErrorMacros.hpp header in includes. 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
9e664abe6e Add a TODO comment to updateWellControls(). 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
fce7247da5 Update the SolutionState's qs and bhp members.
This way they can be used instead of repeatedly extracting the top segment data,
which also could make it possible to use more of the existing implementation.
2015-12-01 00:06:44 +01:00
Kai Bao
433d76cd86 adding the related grid cell for each segment.
This concept can be removed in the future.
2015-12-01 00:06:44 +01:00
Kai Bao
98fe7f19c5 not trying to find outlet segment for top segment 2015-12-01 00:06:44 +01:00
Kai Bao
4854bae4cd using s2s_outlet mapping in the pressure equation. 2015-12-01 00:06:44 +01:00
Kai Bao
1b6453c6ba introducing new mapping s2s_outlet
from a segment to its outlet segment
2015-12-01 00:06:44 +01:00
Kai Bao
317cbb0af8 changing the mapping s2s_outlet to s2s_inlets
to better refect the real meaning of the mapping.
2015-12-01 00:06:44 +01:00
Kai Bao
cb3f54b618 the pressure fluctuation only apply for non-segmented well.
to recover previous residual history when running with only
non-segmented wells.
2015-12-01 00:06:44 +01:00
Kai Bao
be293962b6 changing the perforation pressure initialization
to make it slightly different from the pressure of the perforation cell
to avoid NaN for cqt_is.

anotehr way can be initialized them related to the bhp of the well.
some tests will be performed in the future.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
9c1c87a040 Remember to initialize the data members. 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
f2c812fb3a Made WellStateMultiSegment use inheritance properly.
Use base class' data members (via public methods),
also change method names to match existing ones.
2015-12-01 00:06:44 +01:00
Kai Bao
cc2d40a1a8 handling aliveWells when adding control equations
to recover the SPE9 running.
2015-12-01 00:06:44 +01:00
Kai Bao
4fe0ae4a58 correcting the index of phase rate of the top segment
When handling the rate control equations.
2015-12-01 00:06:44 +01:00
Kai Bao
70e1ccb736 using the first cell of the well to initialize bhp
instead of using the the first cell of all the wells in
WellStateMultiSegment
2015-12-01 00:06:44 +01:00
Kai Bao
9b5b5198b2 update the currentControls from prevState
when initializing WellStateMultiSegment
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
7aa2672a14 Add TODO comment. 2015-12-01 00:06:44 +01:00
Kai Bao
504dc45de2 some information output
for debugging puropose.
2015-12-01 00:06:44 +01:00
Kai Bao
2b4922a986 updating pressure and phase rates for top segments in updateWellControls 2015-12-01 00:06:44 +01:00
Kai Bao
70d6d253fe correcting bugs when initializing the WellState by copying prevState 2015-12-01 00:06:44 +01:00
Kai Bao
0a3cbe0c1e upating the segment pressure in updateWellState.
The running of the first time step is okay.
2015-12-01 00:06:44 +01:00
Kai Bao
8c522ccc34 correcting a bug in pressure initialization in WellStateMultiSegment
for the pressure of top segment and peforations.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
5d5ae7d271 Further silencing of warnings. 2015-12-01 00:06:44 +01:00
Kai Bao
247ae11fc3 fixing the compilation. 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
15fd5dad47 Suppress warnings in the multisegment well code. 2015-12-01 00:06:44 +01:00
Kai Bao
d7900d4fe8 updating the pressure of perforations.
only for usual wells now.

for multisegment wells, need to solve the the pressure difference calculation
first.
2015-12-01 00:06:44 +01:00
Kai Bao
2f0818df79 adding a public member function for the top segment index. 2015-12-01 00:06:44 +01:00
Kai Bao
052b61e672 indexing the location of top segments in WellStateMultiSegment
it is better to be in the global well class if we decide to have it
later.
2015-12-01 00:06:44 +01:00
Kai Bao
f7951ef018 correcting the well control equation (rate control) 2015-12-01 00:06:44 +01:00
Kai Bao
cf766b5c3e fixing warnings related to mutlie segment wells. 2015-12-01 00:06:44 +01:00
Kai Bao
09f8da0324 fixing compilation and running after rebasing. 2015-12-01 00:06:44 +01:00
Kai Bao
ca5dd0dca4 WIP debugging. 2015-12-01 00:06:44 +01:00
Kai Bao
0fee0059a6 outputing the well information after updateWellState
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
3bce63ed64 correcting the bhp value when calculating connection pressure 2015-12-01 00:06:43 +01:00
Kai Bao
72af213835 outputing the wellMap information.
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
5379467b4c adding temperature for WellStateMultiSegment
it is not used though
2015-12-01 00:06:43 +01:00
Kai Bao
895e04b6fa outputing all the information of the WellStateMultiSegment
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
4feee98457 correcting the mapping matrix in WellMultiSegment
correcting the calculation of s2s_gather
2015-12-01 00:06:43 +01:00
Kai Bao
34d72a774a correcting some initialization for WellMultiSegment 2015-12-01 00:06:43 +01:00
Kai Bao
33c979b772 outputing all the information related to multisegment wells
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao
709c030b10 adding public member function WellMultiSegment::inletSegments() 2015-12-01 00:06:43 +01:00
Kai Bao
3eae01de18 pure cleaning up in WellStateMultiSegment 2015-12-01 00:06:43 +01:00
Kai Bao
9526b5a9b1 WIP for addWellControlEq
P_n - P_n-1  = 0;
This is not making sense. remains to be corrected later.

It can run with NaN or too large solutions.
2015-12-01 00:06:43 +01:00
Kai Bao
d8634e41e5 some commenting. 2015-12-01 00:06:43 +01:00
Kai Bao
a137db6d37 using segment rates instead of well rates in addWellControlEq 2015-12-01 00:06:43 +01:00
Kai Bao
3b40a8d5b3 adding computeSegmentDensities for BlackoilMultiSegmentModel
cacluating the density of fluid mixture in segment, which is very
important for the pressure drop calculation for multi-segment wells.

This version is based on \sigma(q_s * dens_s) / \sigma(q_s * B).
More sophiscate techniques will be required to take into consideration
of the segment pressure and also the rs rv.
2015-12-01 00:06:43 +01:00
Kai Bao
bfe77db26f adding p2s_average to the wellOps for WellMultiSegment
this mapping calculate the averaged perforation properties to their
related segments
2015-12-01 00:06:43 +01:00
Kai Bao
487f90ee88 small comments 2015-12-01 00:06:43 +01:00
Kai Bao
45e89c5d28 adding convergenceReduction for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
62b6e69de8 adding updateWellState to BlackoilMultiSegmentModel
no THP treament.
2015-12-01 00:06:43 +01:00
Kai Bao
f496646182 adding updateState() for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
2e74b7cbaf WIP version for addWellControlEq()
not figuring out how to calculate the density of the mixuture.
2015-12-01 00:06:43 +01:00
Kai Bao
747a295122 adding addWellContributionToMassBalanceEq to BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
f087ac14e8 adding addWellFluxEq to BlackoilMultiSegmentModel
while it causes segmentation fault.
Will check after adding well control equations
2015-12-01 00:06:43 +01:00
Kai Bao
9ccba2b0eb adding a mapping from segments to their outlet segments
All the mapping related to the WellMultiSegment remained to be verfied.
2015-12-01 00:06:43 +01:00
Kai Bao
2e155c70de WIP on addWellFluxEq(). 2015-12-01 00:06:43 +01:00
Kai Bao
befc152071 adding Zero values for well_perforatoin_cell_pressure_diffs_
Trying to let the code run through first.

And for the current cases, they should be zeros.
2015-12-01 00:06:43 +01:00
Kai Bao
c1683c0c11 correcting the well mapping for WellMultiSegment
p2s_gather should be s2s_gather * p2s instead of s2s_gather * s2p

The mapping generation needs further investigation.
2015-12-01 00:06:43 +01:00
Kai Bao
5aa258fdd6 correcting a bug in computeWellFlux in BlackoilMultiSegmentModel
it should be segment rates instead of well rates.
2015-12-01 00:06:43 +01:00
Kai Bao
02b187e14c friend class BlackoilModelBas in BlackoilMultiSegmentModel
and adding asImp() when using variableWellStateInitials and
variableWellStateInitials.
2015-12-01 00:06:43 +01:00
Kai Bao
eb73b64e3d using Base::perfPhaseRates() and Base::currentControls() WellStateMultiSegment
so that WellStateMultiSegment can use the WellDensitySegmented.
which also implies that WellStateMultiSegment needs a big refactoring
later.
2015-12-01 00:06:43 +01:00
Kai Bao
d61e6b8a56 correcting a bug in the initialization of the WellStateMultiSegment
a_ = a_ to initialize some member variables cause later segmentation
fault.
2015-12-01 00:06:43 +01:00
Kai Bao
b3afd115ff WIP updatePerfPhaseRatesAndPressures for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
3cc8a09a65 WIP computeWellFlux() for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
788440b6e0 WIP version of computeWellConnectionPressures() for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
9776559a21 adding updateWellControls to BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
dd432c6400 cleaning up and fixing the compilation. 2015-12-01 00:06:43 +01:00
Kai Bao
5f543ea15e pure cleaning up. 2015-12-01 00:06:43 +01:00
Kai Bao
b154779a44 adding variableStateExtractWellsVars() for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
01a5de4c4c adding variableWellStateInitials to BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
c4f7ef3a47 adding makeConstantState() to BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao
42c19e174b adding segment phase rates to the SolutionState. 2015-12-01 00:06:43 +01:00
Kai Bao
40f245deef adding prepareStep() for the BlackoilMultiSegmentModel
Have not added the wellbore volume related part.
2015-12-01 00:06:43 +01:00
Kai Bao
cdb2b92bb6 correcting a bug when generate s2p mapping. 2015-12-01 00:06:43 +01:00
Kai Bao
f0b363baa5 adding wells_multisegment_ member for multisegment model
and also updating the createSolver() function.
2015-12-01 00:06:43 +01:00
Kai Bao
00d9a57cc2 listing the function prototype need to update. 2015-12-01 00:06:43 +01:00
Kai Bao
da6d88707c correcting a typo in the name of WellMultiSegmentConstPtr 2015-12-01 00:06:43 +01:00
Kai Bao
ca253cebc3 adding the variable for pressure correction.
for both perforation and segments.
2015-12-01 00:06:43 +01:00
Kai Bao
fbe0c19032 some cleaning up. 2015-12-01 00:06:43 +01:00
Kai Bao
a9ad791d2b changing init function of WellStateMultiSegment to use ConstPtr
the compilation is fixed.
2015-12-01 00:06:42 +01:00
Kai Bao
ac0fdda48b A WIP version BlackoilMultiSegmentModel
and also a Simulator Class and example for multisegment wells.
2015-12-01 00:06:42 +01:00
Kai Bao
76be27a64c recovering BlackoilModelBase BlackoilModelBase_impl
to be the same with the master branch.
The multisegment part should be in a new model.
2015-12-01 00:06:42 +01:00
Kai Bao
b49d06f35c changing naming in WellStateMultiSegment
to be more consistent with WellState.
2015-12-01 00:06:42 +01:00
Kai Bao
d2728fbfc6 chaning the naming of the member functions of WellStateMultiSegment
segPressures   -> segPress
perfPressures  -> perPress
to keep consist with the WellState
2015-12-01 00:06:42 +01:00
Kai Bao
1788f5c1b3 changing ADB::M to be Eigen::SparseMatrix<double> 2015-12-01 00:06:42 +01:00
Kai Bao
07709c52c6 a wIP version. 2015-12-01 00:06:42 +01:00
Kai Bao
62bdd301d3 one version of the class WellMultiSegment. 2015-12-01 00:06:42 +01:00
Kai Bao
60dd7743c3 WIP of the WellMultiSegment and WellStateMultiSegment 2015-12-01 00:06:42 +01:00
Atgeirr Flø Rasmussen
88280c1207 Move boost include inside warning-suppressed block. 2015-11-30 14:15:19 +01:00
Atgeirr Flø Rasmussen
226e414380 Merge pull request #542 from andlaus/implement_MULTFLT_in_SCHEDULE_section
implement abililty to change the geology during the simulation run
2015-11-27 13:39:32 +01:00
Atgeirr Flø Rasmussen
315862ddd4 Merge pull request #545 from atgeirr/fix-min-iter
Honor the min_iter parameter.
2015-11-27 10:19:26 +01:00
Andreas Lauser
976d38bf37 implement abililty to change the geology during the simulation run
i.e. it now supports stuff like MULTFLT in the schedule
section. Possibly, the MPI-parallel code paths need some fixes. (but
if the geology is not changed during the simulation, the parallel code
will do the same as before.)

the most fundamental change of this patch is that the
reference/pointer to the DerivedGeology object is made
non-constant. IMO that's okay, though, becase the geology can no
longer assumed to be constant over the whole simulation run.
2015-11-26 13:35:33 +01:00
Andreas Lauser
e0a1abba09 adapt to the "mutable geology" changes from opm-autodiff 2015-11-26 12:20:15 +01:00
Tor Harald Sandve
67eadc30e5 Adapt to changes in EclipseGrids
getCellCenter() in EclipseGrid no longer returns
tuble<double,double,double> but array<double,3>
This simplifies its usage.

Variable name is changed from cellCentroid to cellCenter to emphasize a
difference between the value in the unstructured grid and in EclispeGrid
2015-11-25 15:15:22 +01:00
Atgeirr Flø Rasmussen
99fd5e977f Remove assert() that is now wrong due to minIter() treatment. 2015-11-25 11:08:10 +01:00
Markus Blatt
ea187da888 Honor transmissibilities when loadbalancing 2015-11-25 08:43:46 +00:00
Markus Blatt
dd77556252 Added restricted parallel schwarz and overlapping ILU0 preconditioner 2015-11-25 08:43:46 +00:00
Atgeirr Flø Rasmussen
9275070bad Honor the min_iter parameter.
This also required the minIter() accessor to be made public,
so made all of the remaining accessors public.
2015-11-24 16:09:01 +01:00
Tor Harald Sandve
2a13275943 Use cell depth calculated directly from the corners of the cell 2015-11-24 10:20:12 +01:00
Tor Harald Sandve
aeb8807d89 Use cell centroid from EclipseGrid
The cell center in EclipseGrid is computed based on averaging the
corners of the cells as in Eclipse and not computing the centroid of the
cell as in the unstructured grid in opm.
2015-11-24 10:20:12 +01:00
Atgeirr Flø Rasmussen
a06892a070 Add asImpl() to method calls.
This is needed by derived models.
2015-11-19 14:39:49 +01:00
Bård Skaflestad
022bd6b8fe Merge pull request #536 from atgeirr/refactor-nonlinear
Refactor nonlinear solver
2015-11-18 11:47:43 +01:00
Atgeirr Flø Rasmussen
e3a5e1682d Adapt to refactored/renamed NonlinearSolver (was NewtonSolver). 2015-11-18 10:19:32 +01:00
Markus Blatt
5449047682 Splits a very long line. 2015-11-13 15:52:01 +01:00
Markus Blatt
8148c37d57 Improved documentation 2015-11-13 15:46:45 +01:00
Markus Blatt
980928bfa9 Fix boolean in specialization.
The default implementation is the parallel version. Therefore the boolean
in the specialization (sequential run) needs to be false.
2015-11-13 15:46:34 +01:00
Markus Blatt
f8715e31e7 Calculate parallel averages in RateConverter.
Previously, local averages were calculated and used in the
well equations. With this commit we add versions of defineState and
calcAverages that take into account the parallel domain decomposition
and calculate correct averages.

Function  calcAverages has a boolean template parameter
indicating whether this is a parallel run. Additionally we introduce
AverageIncrementCalculator with the same boolean template parameter.
In a parallel run we check whether the cell is owned by the process and
only in this case return an increment bigger than zero. In a sequential run
(no MPI or just one process -> empty boost::any parameter) no overhead is
introduced.
2015-11-13 15:46:34 +01:00
Andreas Lauser
7e05127c48 thresholdPressures(): move the code which calculates the maximum gravity corrected pressure difference between EQLNUM regions to its own function
requested by [at]atgeirr
2015-11-13 15:36:50 +01:00
Andreas Lauser
77893e415e thresholdPressures(): split several long lines
as requested by [at]atgeirr
2015-11-13 15:13:28 +01:00
Andreas Lauser
f13e7fd300 thresholdPressures(): constify all local variables which can be made constant
I have doubts if this will change anything in the binaries (and in my
personal opinion, these 'const's look quite ugly and are sometimes a
(small) annoyance when debugging), but I don't mind using the coding
style used by most of the rest of opm-core here.
2015-11-13 15:13:15 +01:00
Atgeirr Flø Rasmussen
88fbe5e9b6 Ensure non-null model in constructor. 2015-11-13 15:08:00 +01:00
Atgeirr Flø Rasmussen
b918f20771 Add model() and relativeChange() methods. 2015-11-13 13:58:41 +01:00
Atgeirr Flø Rasmussen
bbf1862023 Update for new surfaceDensity() interface. 2015-11-13 13:30:01 +01:00
Atgeirr Flø Rasmussen
b2bf88e689 Silence warning about missing initializer. 2015-11-13 13:29:32 +01:00
Atgeirr Flø Rasmussen
2a0051655c Merge pull request #520 from totto82/surface_dens
Support for non-constant surface densities
2015-11-13 11:40:30 +01:00
Atgeirr Flø Rasmussen
87330984aa Adapt to renaming of class. 2015-11-12 17:55:13 +01:00
Atgeirr Flø Rasmussen
29a1a891d2 Make nonlinearIteration() the only interface to the model.
This means that details such as calling assemble(), solveJacobianSystem(),
updateState() etc. are now left to the model class. This will make it easier
to create new model classes with different behaviour (such as sequential models).
2015-11-12 17:47:18 +01:00
Atgeirr Flø Rasmussen
7c21a630e5 Rename NewtonSolver -> NonlinearSolver. 2015-11-12 17:42:47 +01:00
Atgeirr Flø Rasmussen
ea8eab6e66 Silence unused argument warning. 2015-11-12 17:38:07 +01:00
Robert Kloefkorn
ab12d95273 relativeChange: brackets for if statement. 2015-11-10 10:07:57 -07:00
Robert Kloefkorn
ebf61ed1bd added docu. 2015-11-10 10:05:06 -07:00
Robert Kloefkorn
31aa0544e7 computeTimeError --> relativeChange. 2015-11-10 10:00:04 -07:00
Robert Kloefkorn
77f9977ca8 BlackOilModelBase: revision of adaptive time stepping such that time error is computed
by model.
2015-11-10 09:53:25 -07:00
Tor Harald Sandve
a47c9add9b Change interface of surfaceDensity()
Add phaseIdx as input and return array of n density values for the
phase. And adapt the usage accordingly.
2015-11-10 14:54:49 +01:00
Atgeirr Flø Rasmussen
5977590e70 Bugfix for scalar AutoDiff class.
Missing chain-rule usage in Scalar/AD operator.
2015-11-10 13:37:36 +01:00
Tor Harald Sandve
a46b64adcd Support for non constant surface densities
The surface density function returns one value pr cell to allow for non
constant surface densities.
2015-11-10 12:49:19 +01:00
Andreas Lauser
3ccc0b5aa0 THPRES: only update the threshold pressure between regions if the saturation of the upstream cell is larger than the residual saturation
before it was 0. Again, thanks to [at]totto82 for the suggestion.
2015-11-05 15:39:29 +01:00
Andreas Lauser
df9a927c5b THPRES: change the sign of the gravity correction
we're correcting the pressure at the cell center depths to get the
pressure at the face depth, not the other way around. This is
confusing...

thanks to [at]totto82 for discovering this.
2015-11-05 12:29:19 +01:00
Andreas Lauser
028cd32f11 fix a compressed vs logically Cartesian cell index bug
PVTNUM is for logically Cartesian indices, but was accessed by
compressed ones.
2015-11-05 12:29:19 +01:00
Andreas Lauser
6d86e9bd20 implement determining the threshold pressure from the initial condition
This needs to be done if a equilibration region transition is
mentioned by the THPRES keyword, but no value is given for this record
in the third item. (it seems that this is used quite frequently.)

Also, the approach taken by this patch also does not collide with the
restart machinery as far as I can see. This is because the initial
condition is applied by the simulator before the state at the restart
time is loaded. (I interpreted the code that way, but I could be
wrong, could anyone verify this?)

since it is pretty elaborate to calculate initial condition, this
patch is pretty messy. I also do not know if Eclipse does include
capillary pressure in this calculation or not (this patch does). Huge
kudos go to [at]totto82 for reviewing, testing and debugging this.
2015-11-05 12:29:19 +01:00
Markus Blatt
e729c26b26 Only specialize distributeGridAndData for CpGrid if MPI is found. 2015-10-30 13:23:52 +01:00
dr-robertk
c5c50391d0 Merge pull request #525 from blattms/adapt_flow_solvent-to_redistribute_interface_change
Adapts flow_solvent to change in redistribution interface.
2015-10-29 16:38:10 +01:00
Markus Blatt
113949190b Removes unused typedef 2015-10-29 16:35:58 +01:00
Markus Blatt
1916c8d35a Prevent copying the porevolume when checking for convergence.
As it is just used to compute the tempV value there is no need to
copy it to a new vector. With commit we use a reference to
geo.poreVolume() instead to prevent the copy.
2015-10-29 16:12:54 +01:00
Atgeirr Flø Rasmussen
ef41a0db02 Merge pull request #522 from dr-robertk/PR/paralleldebugoutput-wells-init
ParallelDebugOutput: initialize wells with current report step number.
2015-10-28 21:14:38 +01:00
Robert Kloefkorn
9d5df94080 ParallelDebugOutput: remove warning and cleanup. 2015-10-28 19:03:37 +01:00
Robert Kloefkorn
e30688fb85 ParallelDebugOutput: initialize wells with current report step number. 2015-10-28 19:03:37 +01:00
Markus Blatt
f167d321aa Added some spaces around parenthesis. 2015-10-28 16:44:14 +01:00
Markus Blatt
134b47a5e2 Fixes SaturationPropsFromDeck handling during redistribution.
It needs a material law manager that works on the processes local
grid partition. Therfore copying the one from the global representation
does not work. Instead we now create an new SaturationPropsFromDeck and
initialize it with the local material law manager.
2015-10-28 16:44:14 +01:00
Markus Blatt
4526cce41b Setup a distributed material law manager and copy values.
Since the refactoring to using opm-material a material law  manager for
the global grid was used. This meant that the properties used for
elements of the local grid were wrong. With this commit we set up a
manager that is based on the local grid only.
2015-10-28 16:39:47 +01:00
Atgeirr Flø Rasmussen
8e5c9b77ea Merge pull request #518 from blattms/communicate-rock-properties
Communicate rock properties, too.
2015-10-28 16:36:38 +01:00
Markus Blatt
6ee021f0c6 Fixed indentation. 2015-10-28 16:26:45 +01:00
Markus Blatt
c17af8efe6 Update and improve documentation. 2015-10-28 16:23:07 +01:00
Markus Blatt
f447cf648a fix compilation of flow_solvent. 2015-10-27 17:13:01 +01:00
Markus Blatt
e555cd45f1 Correctly compute the scaling factor for the equations in parallel.
When running parallel one cannot use Eigen::Array::mean() for this
as the it is just a local part of the complete array. With this commit
we correctly compute the number of global cells in the grid and use this
together with a parallel reduction to compute a global mean value.
2015-10-27 01:58:16 +01:00
Markus Blatt
87e02a1059 Communicate rock properties, too.
Somehow I was mislead by the name rock properties that the data stored in
them is not associated to grid cells, but to rock regions. With this commit
we determine the porosity and permeability by communication.
2015-10-26 10:49:35 +01:00
Kai Bao
0936917610 removing some white spaces. 2015-10-24 13:23:25 +02:00
Kai Bao
2b5f7c2b5c correcting the typo when reading PLYROCK table.
PlymaxTable was used instead.
2015-10-24 13:19:36 +02:00
dr-robertk
fe1ba16e40 Merge pull request #511 from blattms/prevent-processing-wells-null-pointer-fixed
Cater for wells null pointer
2015-10-23 16:23:13 +02:00
dr-robertk
4490f07f9f Merge pull request #512 from blattms/remove-superfluous-wellmap
Removes superfluous wellMap_ member from WellStateFullyImplicitBlackoil
2015-10-23 15:14:56 +02:00
Atgeirr Flø Rasmussen
0ffcaeb9f0 Merge pull request #513 from atgeirr/add-moduleversion
Add moduleVersion() utility and update dune.version.
2015-10-23 13:10:38 +02:00
Atgeirr Flø Rasmussen
bb7530edc3 Add and use moduleVersion() utility. 2015-10-23 11:25:06 +02:00
Markus Blatt
975ac0dc37 Removes superfluous wellMap_ member from WellStateFullyImplicitBlackoil.hpp
There is a using `BaseType::wellMap` directive that redirects all the
well map accesses to the base class. In consequence the local wellMap_
is alway empty and just makes debugging harder. Therefore it is
removed in this commit.
2015-10-23 10:47:14 +02:00
Markus Blatt
ba9f227a5b Cater for wells null pointer
In the rare occasion that there are no wells int the model the wells_ pointer in
BlackoilModelBase class is a null pointer. Therefore we need to test whether it is
null and only process well information if it is not.

This problem was reintroduced with PR #460 and gets fixed by this
one. No we can run the equilibrium examples without wells again.
Sorry for the inconvenience.
2015-10-22 16:28:18 +02:00
Bård Skaflestad
cfc1350717 Merge pull request #500 from blattms/removed-superfluous-ptr-during-redistribution
Remove unnecessary shared_ptr for geology and black oil properties during redistribution.
2015-10-22 15:27:40 +02:00
Markus Blatt
f5e34e01ca Remove unnecessary shared_ptr for geology and black oil properties. 2015-10-22 15:24:25 +02:00
Atgeirr Flø Rasmussen
98a3d1675a Merge pull request #454 from babrodtk/openpm_experiment
Parallel assembly (partial)
2015-10-19 15:32:50 +02:00
Tor Harald Sandve
16140c54fc Update comment
Cases with wells with no flow where crossflow is banned is handled in
the parser by shutting these wells. They will never be seen by the
simulator.
2015-10-19 08:17:52 +02:00
Tor Harald Sandve
1772a8c257 Handle allowCrossFlow flags from the input deck 2015-10-19 08:15:21 +02:00
Tor Harald Sandve
3f089b10d8 Add support for banning crossflow in the well equations 2015-10-19 08:15:21 +02:00
paean
956b8fc633 silencing a shadowing warning related to shrate. 2015-10-19 07:53:27 +02:00
Andreas Lauser
651bd91482 use the error macros from opm-common 2015-10-12 15:24:59 +02:00
Atgeirr Flø Rasmussen
df668cc5e7 Merge pull request #497 from andlaus/error_macros_to_opm_common
Error macros to opm common
2015-10-12 13:31:54 +02:00
Atgeirr Flø Rasmussen
6170542e2f Fix compile warning and error message. 2015-10-09 13:49:00 +02:00
Robert Kloefkorn
4d121dccf4 NewtonIterationBlackoilInterleavedImpl: cleanup. 2015-10-09 13:39:02 +02:00
Robert Kloefkorn
476a09e0d6 NewtonIterationBlackoilInterleaved: print "...to cover np = 0" 2015-10-09 12:12:50 +02:00
Robert Kloefkorn
ac034bd80e NewtonIterationBlackoilInterleaved: fix docu. 2015-10-09 12:06:29 +02:00
Robert Kloefkorn
885aedb1e8 NewtonIterationBlackoilInterleaved: make parameter a struct to avoid multi reading. 2015-10-09 12:03:58 +02:00
Robert Kloefkorn
28902065cf NewtonIterationBlackoilInterleavedImpl: silence warnings about unused and shadowed
variables.
2015-10-08 15:54:21 +02:00
Robert Kloefkorn
d93a1a5b63 NewtonIterationBlackoilInterleaved: replace switch-case statement by proper template
recursion.
2015-10-08 15:54:21 +02:00
Robert Kloefkorn
884edadbd6 NewtonIterationBlackoilInterleaved: remove old docu. 2015-10-08 15:54:21 +02:00
Robert Kloefkorn
6304e44242 NewtonIterationBlackoilInterleeaved: remove unused headers. 2015-10-08 15:54:21 +02:00
Robert Kloefkorn
c485e3fdc7 NewtonBlackølInterationInterleaved: NewtonBlackølInterationInterleavedImpl implements
the Iteration for a fixed number of cell variabled which is then used by the
NewtonBlackølInterationInterleaved class via a switch-case over the actually existing
numbers.
2015-10-08 15:54:21 +02:00
Atgeirr Flø Rasmussen
9be05f4206 Undo changes to NewtonIterationsBlackoilInterleaved. 2015-10-08 15:11:50 +02:00
Andreas Lauser
72b0cb2c3e use the error macros from opm-common 2015-10-08 12:08:28 +02:00
Andreas Lauser
13fd63e2b3 use the error macros from opm-common 2015-10-08 11:42:15 +02:00
Atgeirr Flø Rasmussen
9e3d360b5b Silence warnings (shadowing and unused argument). 2015-10-07 10:07:45 +02:00
Joakim Hove
76f674b16b Updated path to warning suppression header. 2015-10-06 12:11:49 +02:00
Tor Harald Sandve
dff77afff7 Use getConvergence and convergenceReduction from base 2015-10-06 11:04:34 +02:00
Tor Harald Sandve
56d6a1f54e Add missed parentheses from the rebase process 2015-10-06 10:51:20 +02:00
Tor Harald Sandve
83bcd24108 Fill vector with zeros as constructed 2015-10-06 10:40:18 +02:00
Tor Harald Sandve
60a6451a6f Fix typo 2015-10-06 10:40:18 +02:00
Tor Harald Sandve
8b8ca200d6 Use implemented computeWellConnectionPressures() 2015-10-06 10:40:18 +02:00
Tor Harald Sandve
6106d560ba Compute matbal_scale for the solvent model
The material balance scaling is extended to the solvent model
The gas value is used as default and an updateEquationsScaling() method
is added.

Minor modifications is done to the BlackoilModelBase.hpp and
BlackoilModelBase_impl.hpp in order to re-use code from the base case.
2015-10-06 10:40:18 +02:00
Tor Harald Sandve
fb9e21d695 Add a local version of computeWellConnectionPressures()
Solvent is accounted for in the calculations of well connection
pressures by adjusting the surface_density and the b-factor

TODO: Restructuring to avoid code duplication with
BlackoilModelBase_impl
2015-10-06 10:38:36 +02:00
Tor Harald Sandve
7bdd91d78f Allow for different surface densities in well perforations
The surface density input in well_perforation_densities() in
WellDensitySegmented.hpp is changed from one value pr. phase to one
value pr phase and perforation. This allow for different densities in
different perforation. The test is changed accordingly.
2015-10-06 10:38:36 +02:00
Tor Harald Sandve
23f4f48df5 Initialize well solvent fraction
The well solvent fraction is set to zero as default.
2015-10-06 10:38:36 +02:00
Tor Harald Sandve
18613b9c7b Make flow_solvent run when SOLVENT is not specified 2015-10-06 10:38:36 +02:00
Tor Harald Sandve
c9b6db6c7e Use a weighted sum of the b-factors of gas and solvent
A weighted sum of the b-factors of gas and solvent is used in the well
equation.
2015-10-06 10:33:17 +02:00
Tor Harald Sandve
08ce231869 Recalculate gas fluxes
The gas fluxes must be recalculated along with the mobilities after the
gasRelPermMultiplier is applied
2015-10-06 10:33:17 +02:00
Tor Harald Sandve
853e1f0dc1 Use ADB for solvent fraction 2015-10-06 10:33:17 +02:00
Atgeirr Flø Rasmussen
0054c90e45 Merge pull request #146 from atgeirr/refactor-getconvergence
Refactor getConvergence()
2015-10-06 10:27:39 +02:00
Atgeirr Flø Rasmussen
64c5b29b87 Merge pull request #492 from atgeirr/refactor-convergence-report
Refactor convergence reduction and report
2015-10-06 10:03:37 +02:00
Joakim Hove
1a0358d85a Using TableContainer. 2015-10-04 09:00:01 +02:00
Joakim Hove
a9a42e82be Changed Table code to use TableContainer 2015-10-04 07:45:58 +02:00
babrodtk
1d6f12e870 Added OMP pragmas 2015-10-02 10:37:08 +02:00
babrodtk
654e4a81bf Fixed errors from rebasing 2015-10-02 10:33:55 +02:00
babrodtk
7f9175e046 Created named constructor for identity matrices 2015-10-02 10:22:05 +02:00
babrodtk
4073abeafb Added documentation for AutoDiffMatrix 2015-10-02 10:21:28 +02:00
Atgeirr Flø Rasmussen
39a0766b8c Refactor MPI version of convergenceReduction(). 2015-10-01 11:05:35 +02:00
Atgeirr Flø Rasmussen
058e4326ca Remove unused functions. 2015-10-01 10:47:13 +02:00
Atgeirr Flø Rasmussen
d29ee6967c Also refactor getWellConvergence() like getConvergence(). 2015-09-30 15:20:04 +02:00
Atgeirr Flø Rasmussen
b885c8e454 Add "Polymer" material and disable custom getConvergence(). 2015-09-30 14:49:15 +02:00
Atgeirr Flø Rasmussen
dcb78877eb Separate phase and material concepts. 2015-09-30 14:44:50 +02:00
Atgeirr Flø Rasmussen
01f7e48693 Implement numPhases() by phase_name_.size().
This makes it easier for derived models to add a phase.
2015-09-30 13:46:57 +02:00
Atgeirr Flø Rasmussen
67ac59288d Make numPhases() calls use asImpl(). 2015-09-30 13:28:08 +02:00
Atgeirr Flø Rasmussen
3d86b9b619 Refactor getWellConvergence() similar to getConvergence(). 2015-09-30 13:28:08 +02:00
Atgeirr Flø Rasmussen
6a0964851c Make convergence checks and output work with active phases. 2015-09-30 13:28:08 +02:00
Atgeirr Flø Rasmussen
4f72bfdbcf Added phaseName() method. 2015-09-30 13:28:08 +02:00
Atgeirr Flø Rasmussen
aac34009e1 Use active and not canonical phases in getConvergence() etc. 2015-09-30 13:28:08 +02:00
Atgeirr Flø Rasmussen
57deb18dc4 Merge pull request #484 from dr-robertk/PR/Parallel-output-only-in-parallel-runs
ParallelDebugOutput: only use parallel output when mpi size > 1.
2015-09-30 09:42:28 +02:00
Markus Blatt
d7e6886f4b Return 0 as hydrostatic correction for unperforated cells.
There might be wells without any perforations. It it happens
to be the last well will supscript over the bounds. In other
cases we actually return the correction for the next well.

Not sure whether returning 0 makes any sense, though.
2015-09-24 14:47:45 +02:00
Bård Skaflestad
a333755a2b Merge pull request #481 from babrodtk/faster-form-interleaved
Faster form interleaved
2015-09-24 09:19:54 +02:00
babrodtk
85cfd9768e Fixed whitespace issue 2015-09-24 08:47:27 +02:00
Robert Kloefkorn
36ca75c4b7 ParallelDebugOutput: fix bug in creation of local to global map on I/O rank. 2015-09-21 16:48:57 +02:00
Robert Kloefkorn
299b0aa3cf ParallelDebugOutput: fix initialization of wells for the I/O rank. 2015-09-21 14:05:35 +02:00
Robert Kloefkorn
04ec4eb2bf ParallelDebugOutput: disable wells, seems to not work after latest changes in opm-core. 2015-09-21 12:52:37 +02:00
Robert Kloefkorn
f63487ad0f ParallelDebugOutput: initialize globalIndex in serial run too. 2015-09-21 12:42:41 +02:00
Robert Kloefkorn
dacb4013ed ParallelDebugOutput: only use parallel output when mpi size > 1. 2015-09-21 12:24:07 +02:00
babrodtk
206dbd3b56 Updated documentation 2015-09-21 08:28:57 +02:00
babrodtk
a58dcce654 Minor changes to how the interleaved system is built 2015-09-17 16:00:44 +02:00
Atgeirr Flø Rasmussen
1f6d957cd4 Change the way the interleaved matrix is built.
Note that this implementation may not be robust since the getSparse()
method throws if the AutoDiffMatrix is not of general sparse type (S),
2015-09-17 15:59:56 +02:00
Atgeirr Flø Rasmussen
2d4c10d919 Silence unused argument warning. 2015-09-17 14:56:59 +02:00
Robert Kloefkorn
e8fad08d81 ParallelDebugOutput: workaround for ancient gcc bug. 2015-09-16 14:59:37 +02:00
Robert Kloefkorn
c32749b129 SolverFullyImpl: avoid multiple output of redundant information in parallel. 2015-09-16 14:36:28 +02:00
Robert Kloefkorn
c3568a64d6 BlackoilOutput: make matlab output work in parallel. 2015-09-16 13:05:23 +02:00
Robert Kloefkorn
0696dbc1bb ParallelDebugOutput: remove warnings due to unused variables. 2015-09-16 13:05:00 +02:00
Robert Kloefkorn
dd4f362aa4 WellStateFullyImplicitBlackoil: call init of base class first. 2015-09-16 12:40:14 +02:00
Robert Kloefkorn
7c175a816a Output: only create ParallelDebugOutput when output is enabled in general. 2015-09-16 09:48:22 +02:00
Robert Kloefkorn
326faa99d7 ParallelDebugOutput: make the output in ecl format work in parallel by communicating
to an io rank and then proceed with serial output.
2015-09-16 09:48:22 +02:00
Bård Skaflestad
a94fe3ed4f Chase API update of opm-core's RegionMapping
In the process, generalise the notion of region properties.  We
introduce a new helper class

    Details::RegionAttributes<RegionId, Attributes>

that provides lookup from a RegionId, typically an int, to a
user-defined set of Attributes--in this case pressure and
temperature.

While here, mark 'SurfaceToReservoirVoidage::calcCoeff()' as 'const'
because it doesn't need to modify any internal state and refactor
the implementation to eliminate repeated calculations of

    ADB::constant(X)
2015-09-14 19:21:54 +02:00
Atgeirr Flø Rasmussen
85993f4eb0 Silence some more warnings. 2015-09-14 17:23:20 +02:00
Atgeirr Flø Rasmussen
23c28201a5 Update for changes in SaturationPropsFromDeck. 2015-09-14 15:05:32 +02:00
Atgeirr Flø Rasmussen
c19df37af5 Merge pull request #466 from blattms/fix-MatrixBlockError-on-some-processes
Introduces parallel exception handling for ILU0 preconditioner.
2015-09-14 08:19:03 +02:00
Markus Blatt
32b8ed654e Prevent memory leaks in case SeqILU0 throws an exception. 2015-09-08 14:38:29 +02:00
Markus Blatt
3c1498ce92 Only construct SeqILU0 in try block.
The rest is not needed and this simplyfies code.
2015-09-08 12:06:03 +02:00
Markus Blatt
2d50408b5f Catch and process exception during ILU0 in parallel for CPR, too. 2015-09-08 12:05:27 +02:00
Markus Blatt
c97f125b56 Include rank into error message. 2015-09-08 11:48:06 +02:00
Markus Blatt
315251da2c Fix typo wether->whether. 2015-09-08 11:44:46 +02:00
Markus Blatt
de8c638308 Put space around braces where it seems approppriate. 2015-09-08 11:15:46 +02:00
Kai Bao
a3872a4bbd chaning std::arrary to std::vector for more flexibility 2015-09-08 11:13:44 +02:00
Kai Bao
49d6cfb188 renaming tempB to temp_b to adress the comment. 2015-09-08 10:57:19 +02:00
Kai Bao
b1b9c171b3 update scaling factors for mass balance equations. 2015-09-08 10:57:18 +02:00
Atgeirr Flø Rasmussen
b324606084 Update to work with AutoDiffBlock::M now being AutoDiffMatrix. 2015-09-08 09:57:17 +02:00
Markus Blatt
ccac548420 Introduces parallel exception handling for ILU0 preconditioner.
When running Norne with the interleaved solver sometimes exceptions
(diagonal matrix block is not invertible) occur for some rows in the
ILU decomposition. In a parallel run this means that some, but not all
processes will see the exceptions. This leads to a classic deadlock.

With this commit we catch the exception during the setup of the preconditioner,
determine with the other processes whether there were any exceptions, and
in this case all the processes will throw an exception.

Currently this limited to Dune::MatrixBlockError, but we could extend this.
2015-09-08 09:46:35 +02:00
Atgeirr Flø Rasmussen
6c00cddb35 Whitespace fix.
Made as a separate commit in order to make the next commit diff understandable.
2015-09-08 09:36:42 +02:00
babrodtk
83c3d51ae0 Removed need for delegating constructors 2015-09-07 15:33:46 +02:00
babrodtk
38865cac31 Cleaned up comments 2015-09-07 13:01:31 +02:00
babrodtk
4c82e9abc7 Fixed bug in diagonal*vector product 2015-09-07 13:01:31 +02:00
babrodtk
9855d7340f Minor performance updates 2015-09-07 13:01:31 +02:00
babrodtk
466f1947a3 Fixed Eigen 3.3 compatibility 2015-09-07 13:01:31 +02:00
babrodtk
395c12a2d5 Refactoring to more readable names 2015-09-07 13:00:41 +02:00
babrodtk
0a2b898b33 Minor reformulations 2015-09-07 13:00:41 +02:00
babrodtk
2f83f9268e Found the culprit 2015-09-07 13:00:41 +02:00
babrodtk
3a3e9d9e4a Reverted more changes 2015-09-07 13:00:41 +02:00
babrodtk
8d82d9f89e Reverted some changes 2015-09-07 13:00:41 +02:00
babrodtk
d57adc6ed4 Removed use of static memory 2015-09-07 13:00:41 +02:00
babrodtk
36f0e7531f Minor changes 2015-09-07 13:00:41 +02:00
babrodtk
a30d6586a3 Made fastSparseProduct std::move-friendly 2015-09-07 13:00:41 +02:00
babrodtk
0b1f993588 Implemented statically allocated memory for SparseMatrix 2015-09-07 13:00:41 +02:00
babrodtk
df1d0f795d Added the use of boost::any 2015-09-07 13:00:41 +02:00
babrodtk
624790e7e3 Added comment 2015-09-07 13:00:41 +02:00
babrodtk
c713a8bebc Renamed functions 2015-09-07 13:00:41 +02:00
babrodtk
cbdb95d61b Removed opm statements which did not belong there 2015-09-07 13:00:41 +02:00
babrodtk
acd58f5272 Fixed commented out functions and some warnings 2015-09-07 13:00:41 +02:00
babrodtk
6a6a1d5280 Fixed warnings 2015-09-07 13:00:41 +02:00
babrodtk
95e9ca6d2a Fixed SolventPropsAdFromDeck.cpp 2015-09-07 13:00:41 +02:00
Atgeirr Flø Rasmussen
73170c4281 Add forgotten constructor delegation. 2015-09-07 13:00:41 +02:00
babrodtk
51b85276ec Fixed TransportSolverThophaseAd.cpp 2015-09-07 13:00:41 +02:00
babrodtk
6deb3e2c4a Fixed IpmesTPFAAD.cpp 2015-09-07 13:00:41 +02:00
babrodtk
3a9a153c22 Fixed test_block 2015-09-07 13:00:41 +02:00
Atgeirr Flø Rasmussen
61c352ca3b Add move constructor and assignment to AutoDiffMatrix.
This is necessary, and done using swap(), since (current version)
Eigen::SparseMatrix does not support move semantics.
2015-09-07 13:00:41 +02:00