Commit Graph
100 Commits
Author SHA1 Message Date
Atgeirr Flø Rasmussen a991eb55e3 Merge pull request #385 from atgeirr/polymorphism-for-blackoilmodel
Static polymorphism for black-oil model
2015-05-28 13:28:43 +02:00
Atgeirr Flø Rasmussen 3abb3497a5 Merge pull request #386 from akva2/use_config_mode
Use config mode
2015-05-27 12:32:06 +02:00
Atgeirr Flø Rasmussen bb4cb5acac Merge pull request #384 from blattms/parallel_adaptive_time_stepping
Activates the parallelism in the adaptive time stepping schemes.
2015-05-27 11:37:47 +02:00
Atgeirr Flø Rasmussen 4a4039e448 Introduce parenthesis to preserve old evaluation order.
While results would be equivalent, they would not be identical
to old results without this.
2015-05-26 16:50:49 +02:00
Atgeirr Flø Rasmussen 3246fd479d Renamed rq_.head to rq_.dh, since it is used for head differences.
Also moved multiplication with transmissibilities so that dh does not
include them (so it really is the head difference).
2015-05-26 16:33:00 +02:00
Atgeirr Flø Rasmussen 153c091aef Clean up in computeMassFlux(). 2015-05-26 16:16:27 +02:00
Atgeirr Flø Rasmussen d9c2a5bd5b Add members isSg_, isRs_ and isRv_.
This replaces local variables that were used in more
than one place, and initialised locally in the exact
same way depending only on primalVariable_.

Now they are updated once when primalVariable_ has changed,
simplifying the code for variableState() and updateState().
2015-05-26 14:38:25 +02:00
Atgeirr Flø Rasmussen 6e5fac16d1 Add extraAddWellEq() hook in addWellEq().
This allows extended models to add functionality to the well treatment.
2015-05-26 14:07:08 +02:00
Atgeirr Flø Rasmussen 614afad74b Add Next enum member for later extension. 2015-05-26 11:41:54 +02:00
Atgeirr Flø Rasmussen 52d035940e Fix vector sizing bug. 2015-05-26 11:41:34 +02:00
Atgeirr Flø Rasmussen 143b213f53 Make method calls in variableState() polymorphic.
Achieved by using asImpl().
2015-05-26 11:19:52 +02:00
Atgeirr Flø Rasmussen 9aaf428f29 Refactor variableState().
Has been split into multiple methods to give more flexibility
to extended models.
2015-05-26 11:16:21 +02:00
Atgeirr Flø Rasmussen 1cc4b28c05 Removed declaration of unused method. 2015-05-26 01:57:16 +02:00
Atgeirr Flø Rasmussen eb962aafa9 Use asImpl() pattern for static polymorphism.
Not yet applied to all method calls, but only ones needed for
polymer solver after initial refactoring.
2015-05-26 01:48:45 +02:00
Atgeirr Flø Rasmussen 74784522ea Remove commented-out code. 2015-05-26 01:29:26 +02:00
Atgeirr Flø Rasmussen 7088304214 Remove unused overload of computePressures(). 2015-05-26 01:19:37 +02:00
Atgeirr Flø Rasmussen 85436c4890 Move mass balance equations to separate function.
Note that well contributions are added on later in addWellEq() as before.
2015-05-26 00:31:50 +02:00
Atgeirr Flø Rasmussen c2f4397bcf Remove unused constantState() method. 2015-05-26 00:08:33 +02:00
Atgeirr Flø Rasmussen 0d7fa1a82c Using ReservoirState and WellState consistently.
This means that for extended models the functions in BlackoilModelBase will
be compiled with the types used by those models and not BlackoilState and
WellStateFullyImplicitBlackoil (which are specified by BlackoilModel).
2015-05-25 23:49:09 +02:00
Atgeirr Flø Rasmussen 1cc5643d14 Moved enums to a separate file. 2015-05-25 23:06:03 +02:00
Atgeirr Flø Rasmussen 940853f9e5 Moved SolutionState to ModelTraits.
Also extracting existing private class and renamed it DefaultBlackoilSolutionState.
2015-05-25 00:46:28 +02:00
Atgeirr Flø Rasmussen 8f198986fd Remove unneeded file. 2015-05-24 20:09:39 +02:00
Atgeirr Flø Rasmussen 05bb1e4f42 Use the Curiously Recurring Template Pattern for BlackoilModel. 2015-05-24 17:36:29 +02:00
Atgeirr Flø Rasmussen 92ab1d7974 Use separate files for model parameter struct. 2015-05-24 17:33:06 +02:00
Atgeirr Flø Rasmussen 620ef2a3dd Create BlackoilModelBase class.
The class is identical to BlackoilModel class at this stage, but
since it was renamed from FullyImplicitBlackoilSolver it keeps the
commit history better.
2015-05-24 09:59:40 +02:00
Atgeirr Flø Rasmussen 1d2ef11ec7 Merge pull request #381 from atgeirr/refactor-solver
Start refactoring the FullyImplicitBlackoilSolver class
2015-05-22 12:40:49 +02:00
Atgeirr Flø Rasmussen d08c44c53b Follow changes to FullyImplicitBlackoilSolver
Original patch by Markus Blatt (@blattms).
2015-05-21 11:42:15 +02:00
Atgeirr Flø Rasmussen 5cebc1c047 Rename debugging macros to avoid potential collisions. 2015-05-21 10:43:04 +02:00
Atgeirr Flø Rasmussen 1e6ecb173f Rename terminalOutput() -> terminalOutputEnabled(). 2015-05-21 10:43:04 +02:00
Atgeirr Flø Rasmussen cf3719d707 Add more iteration report methods to NewtonSolver. 2015-05-21 10:43:04 +02:00
Atgeirr Flø Rasmussen 603b9657a1 Use plural for parameter class names. 2015-05-21 10:43:04 +02:00
Atgeirr Flø Rasmussen 270a7c59fb Add afterStep() hook to NewtonSolver::step().
Also implement (noop) afterStep() for BlackoilModel, and
make the hooks take non-const versions of the state data.
2015-05-21 10:43:04 +02:00
Atgeirr Flø Rasmussen f89297255f Rename FullyImplicitSolver -> NewtonSolver. 2015-05-21 10:43:04 +02:00
Atgeirr Flø Rasmussen 82827f56c0 Doc fixes and improvements. 2015-05-21 10:43:03 +02:00
Atgeirr Flø Rasmussen 5c3e79da38 Improve comments in step(). 2015-05-21 10:43:03 +02:00
Atgeirr Flø Rasmussen 2a967a321c Cleanup FullyImplicitSolver. 2015-05-21 10:43:03 +02:00
Atgeirr Flø Rasmussen 2e7e6c6344 Split functionality between model and solver.
The step() method and everything to do with relaxation and oscillation
detection is now in the FullyImplicitSolver class.
2015-05-21 10:43:03 +02:00
Atgeirr Flø Rasmussen 24ab95122d Made BlackoilModel contain all of the old solver class, now the
idea is to make the FullyImplicitSolver class grow instead.
2015-05-21 10:43:03 +02:00
Atgeirr Flø Rasmussen 7829addb99 Use new solver and model class instead of old solver class. 2015-05-21 10:43:03 +02:00
Atgeirr Flø Rasmussen f8ef6d389a Added new solver and model classes.
Solver is initially a copy of the blackoil solver class, and the
class BlackoilModel is empty.
2015-05-21 10:43:03 +02:00
Atgeirr Flø Rasmussen 53bff816c8 Merge pull request #382 from blattms/fix-parallel-communication-whole-system
Fix parallel communication  for whole system
2015-05-21 10:36:35 +02:00
Atgeirr Flø Rasmussen 052cf09495 Merge pull request #378 from blattms/less-verbose-parallel-runs
Prevent printing stats on more than 1 process for CPR.
2015-05-15 15:38:55 +02:00
Atgeirr Flø Rasmussen 3375e1d312 Merge pull request #376 from blattms/debug-parallel-amg-cpr
Fixes convergence issues with the parallel CPR
2015-05-15 15:38:38 +02:00
Atgeirr Flø Rasmussen 9c6a8a942b Merge pull request #379 from blattms/remove-dead-residualNorm
Removes unused residualNorm method.
2015-05-12 20:27:32 +02:00
Atgeirr Flø Rasmussen db06fa48f5 Merge pull request #374 from babrodtk/throw_causes_core_dumped
Changed throw in main() to return EXIT_FAILURE
2015-05-06 12:41:39 +02:00
Atgeirr Flø Rasmussen 3cc02b4a3c Merge pull request #375 from totto82/tol_welleq
Check scaled well residuals for convergence
2015-05-06 12:40:50 +02:00
Atgeirr Flø Rasmussen abba4bbc21 Merge pull request #373 from babrodtk/80_column_flow_header
Reformated flow header to fit 80 columns
2015-05-05 17:32:21 +02:00
Atgeirr Flø Rasmussen 862abf6ac7 Merge pull request #371 from totto82/modify_welleq
Modify welleq
2015-05-05 11:54:15 +02:00
Atgeirr Flø Rasmussen 208b227ea8 Merge pull request #370 from blattms/fixes-comparison-warning
Prevent unsigned vs. signed int comparison warning
2015-04-30 16:54:19 +02:00
Atgeirr Flø Rasmussen 1ea9ca4453 Merge pull request #369 from blattms/pass-parallel-info-to-amg
[bugfix] Pass parallel information to AMG preconditioner within CPR.
2015-04-30 16:53:17 +02:00
Atgeirr Flø Rasmussen 8e95bf9996 Merge pull request #368 from blattms/fix-distribution-parallel-cpr
[bugfix] Use full set of processes to determine whether to redistribute ...
2015-04-30 14:23:28 +02:00
Atgeirr Flø Rasmussen 39cfc3058f Merge pull request #364 from dr-robertk/PR/backup-restore-fix
BlackoilOutputWriter: fix restore when last step is selected.
2015-04-27 09:56:40 +02:00
Atgeirr Flø Rasmussen 4b7440ad78 Merge pull request #363 from dr-robertk/PR/max_residual_allowed
FullyImplicitBlockOil: increase max_allowed_residual to 1e7.
2015-04-23 15:17:33 +02:00
Atgeirr Flø Rasmussen f007bf561c Modify default solver parameters.
These should work well for both Norne and the SPE cases.
2015-04-21 12:40:21 +02:00
Atgeirr Flø Rasmussen 2eb06d6d6c Use more appropriate end-of-sim timing output. 2015-04-21 10:42:40 +02:00
Atgeirr Flø Rasmussen b088caba03 Merge pull request #359 from dr-robertk/PR/throw-linearsolverproblem
std::runtime_error --> LinearSolverProblem.
2015-04-17 09:07:15 +02:00
Atgeirr Flø Rasmussen 572feeb7e7 Merge pull request #360 from akva2/update_debian_packaging
update debian packaging
2015-04-17 08:53:35 +02:00
Atgeirr Flø Rasmussen e44ef09212 Accept single deck filename as command line argument.
Any argument that is not handled by the parameter parser will
be assumed to be a deck filename. Only one is accepted, and if
given, it will override any deck_filename=<something> on the
command line or in parameter files.

FYI:
The parameter parser handles arguments of the following types:
    key=value (note no space around = or in strings)
    parameterfile.xml
    parameterfile.param
2015-04-14 13:37:25 +02:00
Atgeirr Flø Rasmussen c4655d7c00 Modify startup message, include version number. 2015-04-14 13:31:39 +02:00
Atgeirr Flø Rasmussen 22391ad144 Provide nicer startup message that includes opm-project URL. 2015-04-14 12:53:34 +02:00
Atgeirr Flø Rasmussen 2d50f4850f Merge pull request #354 from akva2/fix_i386
fixed: use size_t and not unsigned long
2015-04-14 12:29:10 +02:00
Atgeirr Flø Rasmussen 6589b8d7a1 Merge pull request #352 from atgeirr/bugfix-after-PR335
Use generic function instead of UnstructuredGrid interface.
2015-04-13 10:38:42 +02:00
Atgeirr Flø Rasmussen f82df94d2e Use generic function instead of UnstructuredGrid interface. 2015-04-13 10:37:23 +02:00
Atgeirr Flø Rasmussen e2a920b1fe Merge pull request #335 from totto82/minpv-fill
Use average NTG values for merged cells due to MINPV algorithm
2015-04-13 10:20:36 +02:00
Atgeirr Flø Rasmussen 88d72be556 Update Eigen requirements.
Manually imported from opm-autodiff.
2015-04-10 15:25:34 +02:00
Atgeirr Flø Rasmussen 07063063cf Merge pull request #348 from dr-robertk/PR/make-compile-with-dune2.2
CPRPreconditioner: make compile with DUNE 2.2.
2015-04-08 16:26:22 +02:00
Atgeirr Flø Rasmussen 2b1c9ae719 Merge pull request #346 from atgeirr/fix-output
Fix convergence table labels (water, oil swapped).
2015-04-08 13:35:16 +02:00
Atgeirr Flø Rasmussen 78ea73fa0a Fix convergence table labels (water, oil swapped). 2015-04-08 13:33:42 +02:00
Atgeirr Flø Rasmussen 2ce8abcdb8 Merge pull request #345 from dr-robertk/PR/fix-uninitialized-parameter
NewtonIterationBlackoilCPR: fix uninitialized parameter
2015-04-08 12:37:41 +02:00
Atgeirr Flø Rasmussen 72ec98f94b Merge pull request #343 from atgeirr/fix-flow-cp
Bugfix: distribute only if comm size is strictly > 1.
2015-04-08 10:18:30 +02:00
Atgeirr Flø Rasmussen 656e5de331 Bugfix: distribute only if comm size is strictly > 1. 2015-04-08 10:16:25 +02:00
Atgeirr Flø Rasmussen 62d3f37b1d Merge pull request #342 from dr-robertk/PR/some-improvemnts-on-solvers
More parameter for solvers.
2015-03-31 18:00:40 +02:00
Atgeirr Flø Rasmussen 170dbb58eb Merge pull request #341 from andlaus/use_EclipseState_for_summary_units
Revert "also pass the deck to the output writer"
2015-03-31 17:45:17 +02:00
Atgeirr Flø Rasmussen 05bee313d3 Merge pull request #339 from andlaus/use_deck_units_for_summary_output
also pass the deck to the output writer
2015-03-27 12:30:20 +01:00
Atgeirr Flø Rasmussen 061e1bcbd7 Merge pull request #324 from andlaus/implement_temperature_dependent_density
Implement temperature dependent density
2015-03-26 15:10:28 +01:00
Atgeirr Flø Rasmussen c524be454a Merge pull request #338 from flikka/add-output-header-file
Added SimulatorFullyImplicitBlackoilOutput.hpp to public headers, now us...
2015-03-25 12:54:03 +01:00
Atgeirr Flø Rasmussen 059bfaf036 Fix error in test for vertcatCollapseJacs(). 2015-03-24 15:05:05 +01:00
Atgeirr Flø Rasmussen 9af3296aa9 Add test for vertcatCollapseJacs().
The test case is non-trivial in that it concatenates elements with a mix of
empty() and non-empty jacobian vectors.
2015-03-24 09:50:34 +01:00
Atgeirr Flø Rasmussen eb9b62697e Make vertcatCollapseJacs() handle constants properly.
With this, any or all of the input vector element may have
an empty jacobian vector. Any element with a non-empty
jacobian vector must still have the same block pattern.
2015-03-24 09:48:31 +01:00
Atgeirr Flø Rasmussen 085c279a0a Use vertcatCollapseJacs() for improved performance. 2015-03-20 11:19:42 +01:00
Atgeirr Flø Rasmussen 07258f0249 Add function vertcatCollapsJacs(). 2015-03-20 11:19:42 +01:00
Atgeirr Flø Rasmussen ad3da1d946 Re-add copying overload of AutoDiffBlock::function(). 2015-03-19 11:46:48 +01:00
Atgeirr Flø Rasmussen 0a76af1b14 Include <utility> for std::move(). 2015-03-17 09:46:15 +01:00
Atgeirr Flø Rasmussen f0ba4a5797 Use swap() and move() to reduce copying in formEllipticSystem(). 2015-03-16 14:22:32 +01:00
Atgeirr Flø Rasmussen 5ff65b40e1 Fix bug added when adapting to new API.
Avoid using invalidated 'jacs', make copy.
2015-03-16 14:22:32 +01:00
Atgeirr Flø Rasmussen a4a3505fae Remove unused method computeRelPermWells(). 2015-03-16 14:22:32 +01:00
Atgeirr Flø Rasmussen 04b255a03f Make more use of move semantics in AD code.
This makes some API changes to AutoDiffBlock.
 - Add overload for the constant() constructor taking rvalue ref.
 - Add overload for the variable() constructor taking rvalue ref.
 - Make the function() constructor *require* rvalue refs.
 - Add a swap() function.

The remaining changes in this commit are follow-ups especially
to the third change (adding std::move in many places), and
some removal of unnecessary block pattern arguments from calls to
the constant() static method.
2015-03-16 14:22:32 +01:00
Atgeirr Flø Rasmussen 635f3db814 Use references in computeRelperm(). 2015-03-16 14:22:32 +01:00
Atgeirr Flø Rasmussen 5d5ab267d2 Use std::move() in variableState(). 2015-03-16 14:22:31 +01:00
Atgeirr Flø Rasmussen f6b28b0f66 Add helper computeGasPress(), use to improve performance.
This avoids excessive calling of constantState().
2015-03-09 10:56:35 +01:00
Atgeirr Flø Rasmussen ec9f5c1634 Move initial term computation to assemble(). 2015-03-09 10:56:35 +01:00
Atgeirr Flø Rasmussen 8f91296974 Eliminate extra computePressure() calls.
The function still gets called more than necessary,
but that is due to its use in variableState() and that
constantState() calls variableState().
2015-03-09 10:56:35 +01:00
Atgeirr Flø Rasmussen 818b653c15 Removed extra overload of relperm(). 2015-03-09 09:40:30 +01:00
Atgeirr Flø Rasmussen a347e35304 Removing extra overloads of rsSat() and rvSat().
Also a few minor fixes to docs and indentation while in the area.
2015-03-09 09:40:30 +01:00
Atgeirr Flø Rasmussen 64769f1062 Merge pull request #332 from atgeirr/fix-compile-error
Fix compile error instroduced by merging #275.
2015-03-09 09:39:02 +01:00
Atgeirr Flø Rasmussen ae31c034b6 Fix compile error instroduced by merging #275.
Moved output directory code near top again, changed rank query
to use Dune::MPIHelper instead of the grid.
2015-03-09 09:37:16 +01:00
Atgeirr Flø Rasmussen 17117e7a0e Avoid storing return value in reference.
Normally this is OK for by-value returns, but here the right hand side
was changed to call ADB::value(), which returns by reference.
2015-03-05 16:07:04 +01:00
Atgeirr Flø Rasmussen 17b2a0e726 Merge pull request #327 from atgeirr/simplify-props
Simplify properties
2015-03-05 14:01:41 +01:00
Atgeirr Flø Rasmussen d9d3554cb7 Merge pull request #328 from dr-robertk/PR/tolerance-wells
Output Newton and Lienar solver iterations
2015-03-05 11:32:47 +01:00
Atgeirr Flø Rasmussen 4be1671b4f Merge pull request #326 from dr-robertk/PR/tolerances-as-parameters
Allow tolerances to be set in parameter files.
2015-03-03 14:39:08 +01:00