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
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
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
Atgeirr Flø Rasmussen
88fbe5e9b6
Ensure non-null model in constructor.
2015-11-13 15:08:00 +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
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
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
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
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
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
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
d29ee6967c
Also refactor getWellConvergence() like getConvergence().
2015-09-30 15:20:04 +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
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
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
Atgeirr Flø Rasmussen
097542a527
Whitespace fixes.
...
It turns out I accidentally used tabs for a while, this commit
fixes that for all touched files.
2015-09-07 13:00:41 +02:00
Atgeirr Flø Rasmussen
3c905845f9
Use std::vector instead of DiagonalMatrix.
...
This is because DiagonalMatrix lacks a swap() method.
2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
87f677af02
Fix bug in fastDiagSparseProduct().
2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
11a33b3017
Experiment with fast diagonal-sparse products.
2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
1f32594f79
Fix bug in prodDD(), add test.
2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
51dde7cec5
In collapseJacs(), avoid explicit zeros.
2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
dd52d444e7
Fix print() method.
2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
c795113ce3
Changes to make flow compile with AutoDiffMatrix.
2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
c712d0070d
Bugfixes for AutoDiffMatrix.
2015-09-07 12:58:51 +02:00
Atgeirr Flø Rasmussen
ffeaa5143d
Add more ops and methods to AutoDiffMatrix.
...
To make it possible to use it instead of Eigen::SparseMatrix in
a range of cases.
2015-09-07 12:58:51 +02:00
Atgeirr Flø Rasmussen
47e7dbe943
New implementation of AutoDiffMatrix, some tests.
...
Compiles and tests successfully, but test coverage very
limited. New approach based on relatively primitive
run-time switching instead of trying to use inheritance.
2015-09-07 12:58:51 +02:00
Atgeirr Flø Rasmussen
6a5a48e728
Work in progress on AutoDiffMatrix (not compiling).
2015-09-07 12:58:51 +02:00
Bård Skaflestad
63d34157ef
Merge pull request #462 from blattms/fix-build
...
Removes unused experimental header include to fix build.
2015-09-07 11:23:59 +02:00
Atgeirr Flø Rasmussen
b08f61362b
Merge pull request #461 from blattms/fixes-solve_welleq_initially-in-parallel
...
Fixes parallel runs with solve_welleq_initially
2015-09-07 11:14:46 +02:00
Markus Blatt
8ed72cdf9f
Remove unused experimental header include.
...
The include of ParallelRestrictedAdditiveSchwarz.hh was a left over
from some experiments and should not be here yet.
2015-09-07 10:48:34 +02:00
Atgeirr Flø Rasmussen
b77e306688
Merge pull request #460 from blattms/parallel-interleaved
...
Fix parallel flow_cp for the interleaved case
2015-09-07 10:09:16 +02:00
Markus Blatt
02120d14d1
Directly initialize variable with global value.
...
Previously we initialized a variable for a global
(i.e. sum over all processes) value with the local
value first and the overwrote it with the computed
global. This meant the name did not reflect the value
during the first initialization.
With this commit we fix this by using an additional
variable for the local value that is used to compute
the global one.
2015-09-07 09:50:36 +02:00
Atgeirr Flø Rasmussen
09e254d9a3
Merge pull request #458 from totto82/new_defaults
...
Change defaults
2015-09-07 08:49:36 +02:00