Commit Graph

385 Commits

Author SHA1 Message Date
Andreas Lauser
9c78d5ef00 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:36:34 +02:00
Andreas Lauser
2b085e0062 fully implicit simulators: various cleanups
these are mostly stylistic: the function bodies of most new methods
have been moved to the _impl.hpp file and the Simulator classes are
now templated on the grid type, so it should be not too hard to switch
them to Dune::CpGrid.
2015-05-29 12:59:40 +02:00
Andreas Lauser
01555da823 remove the run() method from SimulatorFullyImplicitCompressiblePolymer
With this the simulator is basically done, but since
FullyImplicitCompressiblePolymerSolver has not yet been converted to
the NewtonSolver plus Model approach, the solver cannot be removed and
thus still contains quite a bit of copy-and-pasted code.
2015-05-28 13:56:07 +02:00
Andreas Lauser
d27fb2bc45 properly use the SimulatorBase class for SimulatorFullyImplicitBlackoilPolymer and SimulatorFullyImplicitCompressiblePolymer 2015-05-28 13:56:07 +02:00
Andreas Lauser
0f1a7a16d7 unify the run() methods and the constructors of the 2p-compressible and the flow_polymer with the one from flow 2015-05-28 13:56:07 +02:00
Andreas Lauser
a816ab9a0c start to use the SimulatorBase class for SimulatorFullyImplicitCompressiblePolymer
since SimulatorFullyImplicitCompressiblePolymer is now a template, the
opaque pointer stuff is also removed and the contents of the .cpp file
basically became _impl.hpp. for SimulatorFullyImplicitBlackoilPolymer,
the opaque pointer stuff was removed for the same reasons as for
SimulatorFullyImplicitBlackoil.

the actual unification of code is not yet done, but this patch points
out the direction of where this will go.

Also note that some synchronization with the ordinary blackoil
simulator (FLOW) was necessary to make it compile.

Finnally, the parser currently likes to throw an exception (also for
the opm-polymer master) when eating the opm-data polymer test
case. This prevented me from properly testing this patch:

```
and@heuristix:~/src/opm-polymer|simplify_simulator > ./bin/flow_polymer deck_filename=/home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA

================    Test program for fully implicit three-phase black-oil flow     ===============

---------------    Reading parameters     ---------------
deck_filename found at /, value is /home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA
output not found. Using default value 'true'.
output_dir not found. Using default value 'output'.
Program threw an exception: IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
terminate called after throwing an instance of 'std::runtime_error'
  what():  IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
Aborted
```
2015-05-28 13:56:07 +02:00
Atgeirr Flø Rasmussen
1d5a67f2cd Remove method computeResidualNorms(), use base version. 2015-05-26 17:10:16 +02:00
Atgeirr Flø Rasmussen
1dcffe4b18 Refactor computeMassFlux(). 2015-05-26 17:04:33 +02:00
Atgeirr Flø Rasmussen
2ddfe91504 Make computeMassFlux() more like the base class version. 2015-05-26 16:49:25 +02:00
Atgeirr Flø Rasmussen
9cc01245f1 Adapt to rq_.head -> rq_.dh renaming in opm-autodiff. 2015-05-26 16:43:06 +02:00
Atgeirr Flø Rasmussen
a42c982628 Refactor updateState() to not copy base version code. 2015-05-26 15:31:45 +02:00
Atgeirr Flø Rasmussen
272947c99c Use extraAddWellEq() to add well contrib to polymer equation.
This way of refactoring was chosen since the extra term depends
on a lot of context. Instead of recreating the context in the
polymer model (which would not reduce any complexity) the necessary
variables are passed to extraAddWellEq().
2015-05-26 14:04:35 +02:00
Atgeirr Flø Rasmussen
64da6ef184 Refactor computeAccum().
Extend base class version instead of copying.
2015-05-26 12:55:43 +02:00
Atgeirr Flø Rasmussen
c9c19d9253 Fix error and warning in assert() statements. 2015-05-26 12:08:30 +02:00
Atgeirr Flø Rasmussen
2cd5b672bf Only deal with concentration if has_polymer_ is true. 2015-05-26 12:06:17 +02:00
Atgeirr Flø Rasmussen
2539fb935d Refactor variableState().
Use base case where possible instead of copying it.
2015-05-26 11:49:10 +02:00
Atgeirr Flø Rasmussen
da98f18f80 Use base class version of parameter accessors. 2015-05-26 02:00:46 +02:00
Atgeirr Flø Rasmussen
f2e5177594 Remove functions that are identical in BlackoilModelBase.
Also refactor some functions that are different to call the
base version and then do additional processing. However this
process has not been carried out on all methods at this point.
2015-05-26 01:46:34 +02:00
Atgeirr Flø Rasmussen
26484e91a5 Transform BlackoilPolymerModel to inherit BlackoilModelBase.
The class still contains surplus implementations though.
2015-05-26 00:12:37 +02:00
Atgeirr Flø Rasmussen
5c1e314cbb Fix the same bug for the MPI case.
Note: not actually tested with MPI, written blindly!
2015-05-25 00:10:11 +02:00
Atgeirr Flø Rasmussen
5f6027ba01 Bugfix: we compute no well flux residual for polymer, do not try to use. 2015-05-25 00:06:17 +02:00
Atgeirr Flø Rasmussen
82da34ddd3 Merge pull request #109 from atgeirr/refactor-solver
Start refactor fully implicit polymer solver
2015-05-22 12:41:01 +02:00
Atgeirr Flø Rasmussen
59bd1391a8 Update polymer solver with convergence features from opm-autodiff.
Original patches by Tor Harald Sandve and Markus Blatt.
2015-05-21 16:29:01 +02:00
Atgeirr Flø Rasmussen
d7de9894e0 Follow minor API changes in opm-autodiff. 2015-05-21 09:50:54 +02:00
Atgeirr Flø Rasmussen
c700b2124d Merge pull request #110 from qilicun/fix_polyinflow
Fix error: When the injector is not the first of wells, opm should work well
2015-05-20 11:12:43 +02:00
Liu Ming
641113bfa8 remove the debug information. 2015-05-20 15:06:00 +08:00
Liu Ming
f66921612c Output well name when wells can't find in WPOLYMER keyword. 2015-05-20 14:57:26 +08:00
Atgeirr Flø Rasmussen
b7ef3b7f57 Minor changes to make BlackoilPolymerModel more like BlackoilModel.
No behaviour changes, only renaming etc. to reduce the diff.
2015-05-20 08:48:54 +02:00
Liu Ming
f8baad5d91 Fix error: When the injector is not the first of wells, opm should work well. 2015-05-20 12:35:04 +08:00
Atgeirr Flø Rasmussen
6984ca52e4 Update docs. 2015-05-19 21:36:40 +02:00
Atgeirr Flø Rasmussen
65e7a934a9 Make BlackoilPolymerModel usable with NewtonSolver from opm-autodiff. 2015-05-19 21:29:14 +02:00
Atgeirr Flø Rasmussen
300f236cef Copied FullyImplicitBlackoilPolymerSolver to BlackoilPolymerModel. 2015-05-19 14:40:38 +02:00
Kai Bao
a3efd688f4 Update addWellEq() to match the opm-autodiff. 2015-05-08 14:30:00 +02:00
Kai Bao
110dde2bb5 updating updateWellControls()
modified to no longer update primary variables, and moved to earlier
in assemble()
2015-05-08 12:50:17 +02:00
Kai Bao
b46dcc3b76 refactoring computeMassFlux().
To match the opm-autodiff implementation that only handles one phase
each time.

Polymer equation is handled with the water phase together, since it
effects the water phase.
2015-05-08 10:07:49 +02:00
Kai Bao
3bd0ff1885 Removing unused block patterns and using std::move. 2015-05-08 09:06:05 +02:00
Kai Bao
b754d77810 change transMult() and poroMult() to match autodiff. 2015-05-07 13:27:39 +02:00
Kai Bao
06d2534b3d emove unused method computeRelPermWells() 2015-05-07 13:15:24 +02:00
Kai Bao
0f65fd52f0 Changing computeRelPerm() and and computePressures() to match autodiff. 2015-05-07 13:11:14 +02:00
Kai Bao
1d112f9ec9 No longer throw on solver failure 2015-05-07 13:05:23 +02:00
Kai Bao
d5577f634d Changing the default parameters for SolverParameter
To be more consistent with the OPM-autodiff.

And also min_iter_ was added.
2015-05-07 12:47:05 +02:00
Liu Ming
d791888430 Merge remote-tracking branch 'remotes/opm/master' into updates
Conflicts:
	opm/polymer/fullyimplicit/FullyImplicitBlackoilPolymerSolver_impl.hpp
2015-03-24 16:56:19 +08:00
Liu Ming
0d0ff9d961 use std::move(), solving conflicts. 2015-03-24 16:41:32 +08:00
Liu Ming
b4d834508c Updates FIBOPOLYMER simulator based on flow simulator.
Rename sim_poly_fibo_ad to flow_polymer.
2015-03-24 15:07:25 +08:00
Atgeirr Flø Rasmussen
aff268dbdb Adapt to API change for AutoDiffBlock class. 2015-03-16 16:49:12 +01:00
Atgeirr Flø Rasmussen
9d56234602 Follow API change in BlackoilPropsAdInterface. 2015-03-09 09:56:55 +01:00
Atgeirr Flø Rasmussen
22f8fd2271 Adapt to API change in WellsManager. 2015-02-17 13:53:01 +01:00
Liu Ming
74332085dc change PolymerInflow constructor interface due to commit 6628941c9c9d781db9ec8e3ac05a3a8dc49dcf21 in opm-parser. 2015-01-27 12:24:26 +08:00
Liu Ming
6a3bfba846 Adapte to FIBO wellstate API changes in opm-autodiff. 2015-01-19 11:29:32 +08:00
Liu Ming
f9892f20d7 Add rough conversation testing for polymer equation. 2014-12-09 10:33:20 +08:00