Commit Graph

828 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
f0db1974cf Merge pull request #409 from andlaus/use_fluidstates_for_satfuncs
adapt to the opm-core API change in the SaturationFunctionsFromDeck to always use non-uniform tables
2015-07-01 12:58:13 +02:00
Robert Kloefkorn
5b51a5b7b1 Merge remote-tracking branch 'upstream/master' into PR/merge-flow-and-flow_cp 2015-06-30 13:39:03 +02:00
Andreas Lauser
78f7097798 adapt to the opm-core API change in the SaturationFunctionsFromDeck to always use non-uniform tables 2015-06-26 15:32:10 +02:00
Atgeirr Flø Rasmussen
c96a33124c Refactor addWellEq().
The method has been split in three parts:
        computeWellFlux(const SolutionState& state,
                        const std::vector<ADB>& mob_perfcells,
                        const std::vector<ADB>& b_perfcells,
                        V& aliveWells,
                        std::vector<ADB>& cq_s);

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

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

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

Finally, it makes it easier to create derived models with custom behaviour.
2015-06-22 11:34:10 +02:00
Atgeirr Flø Rasmussen
ae6caaac61 Move parallel overload into HAVE_MPI block. 2015-06-19 14:06:27 +02:00
Atgeirr Flø Rasmussen
f3623270cc Fix case in include statement. 2015-06-19 13:35:36 +02:00
Atgeirr Flø Rasmussen
700ce9e13d Move forming interleaved matrix to own function/ 2015-06-19 11:33:30 +02:00
Atgeirr Flø Rasmussen
5e513642d7 Add paralell preconditioner, enable parallel case. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
a3d115ff22 Add (disabled) parallel version.
Disabled because the constructPreconditionerAndSolve() method does
not have a way currently to construct a parallel preconditioner.
2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
5476b7a6ac Clean up headers, copyright. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
ca74b18784 Add missing include. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
4eb77bebb4 Further cleanup: includes, copyright, whitespace. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
9e28857933 Remove functions that were moved to NewtonIterationUtilities. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
c8cae85ea2 Move functions needed by several NewtonIteration-classes to separate file. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
d86de7bb79 Only use pressure jacobian to form sparsity pattern.
Also clean up by eliminating commented-out debugging code.
2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
8cbce1bfdf Working interleaved solver implemented. 2015-06-19 10:53:32 +02:00
Atgeirr Flø Rasmussen
8af1ea1e42 Add (disabled) experimental part, not changing the A matrix.
This seems to cause a significant increase in iterations and failures,
which is why it is disabled for now.
2015-06-19 10:53:32 +02:00
Atgeirr Flø Rasmussen
63285bf6f9 Remove usage of CPRPreconditioner. 2015-06-19 10:53:32 +02:00
Atgeirr Flø Rasmussen
5d0f654443 Add class NewtonIterationBlackoilInterleaved.
Initially it is just a copy of the NewtonIterationBlackoilCPR class.
Also, add use_interleaved parameter to use the class.
2015-06-19 10:53:32 +02:00
Atgeirr Flø Rasmussen
dd945a5d5e Add more parameters to addWellContributionToMassBalanceEq.
Also: - call using asImpl(),
      - remove extraAddWellEq().
2015-06-18 14:25:53 +02:00
Robert Kloefkorn
10725c0b70 Merged main program for flow and flow_cp to avoid code duplication. 2015-06-17 13:00:37 +02:00
Kai Bao
0366037fca cleaning up to remove 'unused' warnings 2015-06-17 09:49:11 +02:00
Kai Bao
20746f65dc assert the number of the well equations. 2015-06-16 17:03:53 +02:00
Kai Bao
f2089f5a1b avoiding creating dx_V unnecessarily
by using dx.array() in function solveWellEq().
2015-06-16 17:03:53 +02:00
Kai Bao
919286d700 removing repeated code by using do_while
in function solveWellEq().
2015-06-16 17:03:53 +02:00
Kai Bao
f8e35535fc using lower case for solve_wellEq_initially_ 2015-06-16 17:03:53 +02:00
Kai Bao
0f123a8890 correcting typo in 'to large' 2015-06-16 17:03:53 +02:00
Kai Bao
6f388f5b6d correcting the indentation in updateWellState() 2015-06-16 17:03:53 +02:00
Kai Bao
7e9014f155 changing dx to dwells in defination of updateWellState 2015-06-16 17:03:53 +02:00
Kai Bao
285d777937 removing the unused dqs and dbhp
in function updateState
2015-06-16 17:03:53 +02:00
Kai Bao
043d542e29 check wellsActive() before handling well equations in assemble() 2015-06-16 17:03:53 +02:00
Kai Bao
079c3a467f adding a space after comma between function agruments 2015-06-16 17:03:53 +02:00
Kai Bao
ce7ca517cd 5 blank lines between functions in BlackoilModelBase_impl 2015-06-16 17:03:52 +02:00
Kai Bao
df5bd78d0c change the '2' to 'To' in addWellContribution2MassBalanceEqi 2015-06-16 17:03:52 +02:00
Kai Bao
14dbc9e7be removing s from the name of function variableWellStateIndices() 2015-06-16 17:03:52 +02:00
Tor Harald Sandve
8a166ebbd6 Add option for solving the wellEq seperatly
The well equations is solved seperatly in order to provide more accurate
initinal values to the reservoir model.
2015-06-16 17:03:52 +02:00
Tor Harald Sandve
86922e45e6 Seperate wells stuff from the reservoir stuff
The seperation is done in order to better accommodate solving the well
equation seperatly.
2015-06-16 17:03:52 +02:00
Atgeirr Flø Rasmussen
512d18a669 Create solver and model parameters only once. 2015-06-01 13:07:45 +02:00
Atgeirr Flø Rasmussen
af9a5992a3 Merge pull request #389 from andlaus/simplify_simulator
Simplify simulator
2015-05-29 15:46:38 +02:00
Atgeirr Flø Rasmussen
9b30e2e0d7 Use unique_ptr instead of shared and raw pointers. 2015-05-29 14:57:49 +02:00
Atgeirr Flø Rasmussen
2bec485184 Fix a few warnings. 2015-05-29 14:57:30 +02:00
Andreas Lauser
496c32d2a6 do not use std::shared_ptr where it is deemed inappropriate by the maintainers
note that I don't agree with this change and will assume no
responsibility if something goes down the gutter.
2015-05-29 14:34:47 +02:00
Andreas Lauser
5666df807b some stylistic changes
in particular, where to put empty lines and spaces. Also added a
copyright statement for myself to a few files and added a comment. the
new comment was requested by [at]bska, the rest was requested by
[at]atgeirr.
2015-05-29 12:35:56 +02:00
Atgeirr Flø Rasmussen
3c7a79c16a Fix unsigned/signed comparison warning. 2015-05-28 14:07:25 +02:00
Andreas Lauser
553f32e6cf SimulatorBase: move the new method bodies from the .hpp to the _impl.hpp file 2015-05-28 13:55:54 +02:00
Andreas Lauser
662cd9791e SimulatorBase: only care about the solver in the run() method
this is necessary because some older simulations only provide the
full-fledged solver class but no physical model.

(also, this allows to use something else than the standard newton
solver.)
2015-05-28 13:55:54 +02:00
Andreas Lauser
a154c8394d Simulator, Model: add everthing which is required by the polymer simulators
basically, this adds some hooks to the SimulatorBase class and the
model and introduces a few types to the SimulatorTraits.
2015-05-28 13:55:54 +02:00
Andreas Lauser
45fb80f547 SimulatorBase: remove the opaque pointer pattern
because the class is (and will stay) a template and for templates the
benefits of the opaque pointer pattern go from "small" to "zero".
2015-05-28 13:55:53 +02:00
Andreas Lauser
3eec9f3432 introduce a "SimulatorBase" class
so, far it is just a copy of the old "SimulatorFullyImplicitBlackoil"
class (which became a simple forward to the base class). The intention
is to unify the common simulator code in this class to avoid excessive
copy-and-pasting.
2015-05-28 13:55:53 +02:00
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