Markus Blatt
8d3eac81a5
[OpenCL] Fixes out of bounds read in reordering code in ILU0.
...
rowPerColor only has size numColors!
2020-08-05 21:22:01 +02:00
Markus Blatt
c28a12636a
Also free memory allocated with CUDA also with CUDA
...
With multisegment wells we allocate WellContributions::hx and hy with
`CudaMallocHost`. Yet we tried to deallocate them with
`delete[]`. This caused segementation faults e.g. for
model1/MSW_MODEL_1. Now we use `CudaFreeHost` for freeing if we used
CUDA.
Closes #2719
2020-08-04 12:54:27 +02:00
Markus Blatt
13ff454e56
Remove unused variable groups from BlackoilWellModel::wellsToState.
...
Alternatively it could be marked as [[maybe_unused]] if it will be
used sometime in the future.
2020-07-21 11:35:43 +02:00
Markus Blatt
f37fa8bbd9
Prevent unused variable warnings without CUDA in WellContributions.
2020-07-21 11:24:19 +02:00
Markus Blatt
59064b4ac2
Prevent warning about shadowing dim_wells and dim.
2020-07-10 13:40:38 +02:00
Markus Blatt
efd3aeb290
Catch exceptions by const reference to prevent warnings.
...
e.g. gcc issued: "warning: catching polymorphic type ‘class cl::Error’ by value [-Wcatch-value=]"
2020-07-10 13:40:38 +02:00
Markus Blatt
faaee51d09
Merge pull request #2682 from Tongdongq/openclSolver
...
Added openclSolver
2020-07-10 13:38:32 +02:00
T.D. (Tongdong) Qiu
5971a7ae9e
Split WellContributions into .cpp and .cu
2020-07-10 11:13:55 +02:00
Tongdongq
f90bb85960
Merge pull request #1 from blattms/openCLSolver-g++-8.3
...
include missing header for OpenCLSolver with g++-8.3
2020-07-09 09:25:08 +02:00
Bård Skaflestad
47d4a5087f
Merge pull request #2698 from totto82/applyPVTWsalt
...
Pass the salt concentration to the water PVT
2020-07-08 09:32:51 +02:00
T.D. (Tongdong) Qiu
af02fc3924
Added try-catch around the linear solve
2020-07-07 16:07:42 +02:00
T.D. (Tongdong) Qiu
0b20762e59
Clarified parameter help print and chosen OpenCL platform and device
2020-07-07 14:26:02 +02:00
T.D. (Tongdong) Qiu
ab49f60eca
Added opencl.hpp to define variables and import opencl
...
Added opencl.cpp to get OpenCL error strings
2020-07-07 13:46:47 +02:00
Markus Blatt
7a571c98db
include missing header for OpenCLSolver with g++-8.3
...
Without I got compilation errors.
2020-07-07 11:10:19 +02:00
T.D. (Tongdong) Qiu
478e2ee971
Improved rowsPerColor usage
2020-07-07 11:00:38 +02:00
T.D. (Tongdong) Qiu
5aa8dda487
Changed default parallel strategy to GRAPH_COLORING
2020-07-06 13:56:27 +02:00
T.D. (Tongdong) Qiu
4c037b0998
Removed unused test kernels
2020-07-06 13:56:27 +02:00
T.D. (Tongdong) Qiu
a164a57220
Added memory management to BlockedMatrix
2020-07-06 13:55:50 +02:00
T.D. (Tongdong) Qiu
779a713330
Simplified BdaSolverStatus
2020-07-06 13:40:44 +02:00
T.D. (Tongdong) Qiu
833ea8ae72
Added templated blockinversion for C-style arrays
2020-07-06 13:40:44 +02:00
T.D. (Tongdong) Qiu
bb622449b6
Changed platformID and deviceID to commandline parameter. Make sure Flow exits cleanly upon invalid platform- or deviceID.
2020-07-06 13:38:57 +02:00
Tom Hogervorst
c8eb14aaac
Graph coloring now uses CSC-format version of input pattern as well.
2020-07-06 13:29:30 +02:00
Tom Hogervorst
38c58bffae
Renamed functions to all used Camel case, and renamed parameters to better represent what is stored in them.
...
Fixed mistake of using wrong sparsity pattern data to call canBeStarted function, and removed nnzValues of CSCmat, which were never used.
2020-07-06 13:18:46 +02:00
T.D. (Tongdong) Qiu
7f8faa018b
Replaced timing function with Dune::Timer
2020-07-06 11:22:11 +02:00
T.D. (Tongdong) Qiu
845563c37b
Replaced hardcoded constant with template
2020-07-06 11:20:43 +02:00
Joakim Hove
b9b1e734cb
Add data::GroupValues member to RestartValue
2020-07-04 10:06:03 +02:00
Tor Harald Sandve
fdf0f1ed27
SALTVD and BDENSITY is not implemented
2020-07-02 13:49:05 +02:00
Tor Harald Sandve
88ee892fdf
pass the saltConcentration to the waterPVT
2020-07-02 13:44:01 +02:00
Bård Skaflestad
5bb4321824
Simulator Group Data: Chase Upstream API Update
...
This commit makes the 'groupData()' function return a
map<string, Opm::data::GroupData>
object instead of a
map<string, Opm::data::GroupConstraints>
object. The 'GroupData' structure adds a level of indirection to
the current per-group summary quantities that are directly assigned
by the simulator. While here, also move the assignment of the
current group constraints/control values out to a separate helper
to reduce the body of the per-group loop in 'groupData()'.
This is in preparation of adding support for reporting group-level
production/injection guiderates (Gx[IP]GR) to the summary file.
2020-07-01 22:52:26 +02:00
Bård Skaflestad
8e20e0957f
Don't Name Type that does not Exist in Sequential Configurations
...
This commit makes the constructor PressureInverseOperator that
accepts a Dune::OwnerOverlapCopyCommunication<> object contingent on
having MPI. The type does not exist otherwise.
2020-07-01 21:52:57 +02:00
Markus Blatt
c01e6d14f7
Merge pull request #2694 from atgeirr/flexible-wellop
...
Allow well operators with FlexibleSolver.
2020-07-01 20:30:44 +02:00
Atgeirr Flø Rasmussen
f2395f6d94
Merge pull request #2695 from totto82/addBrineOutput
...
Add brine to output
2020-07-01 11:46:23 +02:00
Atgeirr Flø Rasmussen
a66260fe87
Merge pull request #2684 from totto82/convertUsingPriviousRates
...
use rates from previous time-step in the guiderate conversion
2020-07-01 11:04:22 +02:00
Tor Harald Sandve
6a7e816368
Add brine to output
2020-06-30 14:15:54 +02:00
Atgeirr Flø Rasmussen
c94eec872f
Allow well operators with FlexibleSolver.
2020-06-30 12:33:57 +02:00
Tor Harald Sandve
fce0ba6759
Add oil water brine specialization
2020-06-30 10:41:28 +02:00
Bård Skaflestad
6d644da88e
Merge pull request #2688 from akva2/add_spe1_thermal_watvisc_reg_test
...
Add spe1 thermal watvisc reg test
2020-06-26 23:59:53 +02:00
Arne Morten Kvarving
e31062aa4e
add missing license header
2020-06-26 09:49:01 +02:00
T.D. (Tongdong) Qiu
8913e1d057
Make sure OpenCL can be used without CUDA
2020-06-25 18:44:49 +02:00
T.D. (Tongdong) Qiu
b7f47c9787
Clarified preprocessor macros
2020-06-25 15:01:23 +02:00
T.D. (Tongdong) Qiu
c76630687d
Removed config.h in header files
2020-06-25 14:49:41 +02:00
T.D. (Tongdong) Qiu
0471da3815
Rewritten Graph Coloring
2020-06-25 14:42:35 +02:00
T.D. (Tongdong) Qiu
ca83a8f53c
Removed unused headers
2020-06-25 13:12:12 +02:00
T.D. (Tongdong) Qiu
4ad234bf55
Changed some ints to unsigned
2020-06-25 12:29:20 +02:00
T.D. (Tongdong) Qiu
b692b66d3a
Added block_size templates to BlockedMatrix and Reorder functions
2020-06-25 11:51:41 +02:00
Atgeirr Flø Rasmussen
c59f4f7118
Make ghost-last feature available in PreconditionerFactory.
2020-06-25 10:56:11 +02:00
Atgeirr Flø Rasmussen
c2c79f0903
Move well operators to separate file.
...
Also introduce new class WellModelAsLinearOperator making a well model
into an actual Dune::LinearOperator, this prevents the TypeTag dependent
type from leaking into the type of the WellModelMatrixAdapter instantiation.
As a side benefit, the adapter classes can now adapt (i.e. combine with a
matrix operator) any linear operator.
2020-06-25 10:13:12 +02:00
T.D. (Tongdong) Qiu
8f9fa15ecd
Fixed warnings, mostly shadowed parameters
2020-06-25 09:40:20 +02:00
T.D. (Tongdong) Qiu
98ddf47b44
Added block_size template to BdaSolvers and BILU0
2020-06-25 09:39:55 +02:00
Atgeirr Flø Rasmussen
7a69db02de
Merge pull request #2685 from blattms/fix-owner-cells-not-first
...
Alternative fix running in parallel with --owner-cells-first=false
2020-06-25 00:29:58 +02:00
T.D. (Tongdong) Qiu
2a48f5f63f
Simplified usage of BdaSolver::second() for timing
2020-06-24 19:48:50 +02:00
T.D. (Tongdong) Qiu
3dc368b0b4
Added block_size templates to the BdaBridge. Removed unused gpu_mode variable
2020-06-24 16:46:04 +02:00
Atgeirr Flø Rasmussen
d3efb01e89
Merge pull request #2645 from hakonhagland/refac_fullyimpl
...
Refactor run() in `SimulatorFullyImplicitBlackoilEbos.hpp`
2020-06-24 16:35:09 +02:00
T.D. (Tongdong) Qiu
26133c4fd7
Fixed type of gpu_mode when HAVE_CUDA is false
2020-06-24 15:55:03 +02:00
Markus Blatt
27c9ed5c85
Consistently use ISTLSolverEbos::getMatrix to get correct matrix.
2020-06-24 15:37:43 +02:00
Markus Blatt
27ace20378
[bugfix] remove redundant copyjacToNoGhost in ISTLSolverEbos::solve
...
It uses a null pointer and make flow segfault. The copying is already
done in ISTLSolverEbos::prepare.
2020-06-24 15:25:24 +02:00
Tor Harald Sandve
a99254f917
clean up based on review
2020-06-24 09:48:09 +02:00
Tor Harald Sandve
8e3c124b23
use rates from privious time-step in the guiderate conversion to reduce oscilation
2020-06-24 09:38:18 +02:00
T.D. (Tongdong) Qiu
e4417fdc01
Set default value for use_gpu, using Dune would segfault because of the unitialized value
2020-06-23 18:20:10 +02:00
T.D. (Tongdong) Qiu
b9e4bd3a95
Updated HAVE_XX guards. Replaced string == compare with .compare()
2020-06-23 18:19:33 +02:00
Håkon Hægland
23505cf5c9
Fixed up minor issues from review of PR #2645
...
Renamed some functions, and checked the return value from runStep().
2020-06-23 12:14:07 +02:00
Tor Harald Sandve
39e23c4d41
store polymer rates for output
2020-06-23 12:01:34 +02:00
Håkon Hægland
e8a4065192
Refactor SimulatorFullyImplicitBlackoilEbos.hpp
...
A resubmission of commit bb20804
in PR #2403 and PR #2442 to work with the
current master.
Continues the work in #2619 and #2631 to refactor main simulation loop in
flow to work with the Python bindings.
The run() method in SimulatorFullyImplicitBlackoilEbos.hpp is refactored
in preparation for the implementation of a Python step() function in a
later commit. Currently run() is called from runSimulatorInitOrRun() in
FlowMainEbos.hpp using the runSimulatorRunCallback_(). Later, there
will be other callbacks like runSimulatorStepInitCallback_(), and
runSimulatorStepCallback_(), that will need to call different parts of
the code in run(). The run() function is thus refactored into run(),
runInit(), runStep(), and runLastStep(). Also, some of the local
variables in run() have to be made persistent between calls to
runStep(), this applies to variables report, solverTimer, totalTimer,
and adaptiveTimeStepping, which are made private class variables.
2020-06-23 11:50:57 +02:00
T.D. (Tongdong) Qiu
39df7c9381
Updated comments, fixed shadowed declaration warnings
2020-06-23 11:30:15 +02:00
T.D. (Tongdong) Qiu
f974a5f6db
Added openclSolver
...
Usage: --gpu-mode=[cusparse|opencl|none] on command line
2020-06-22 18:26:49 +02:00
Atgeirr Flø Rasmussen
c58456faae
Add missing include.
2020-06-20 16:28:59 +02:00
Atgeirr Flø Rasmussen
427eac5132
Use macro for instantiations, and clean up includes.
2020-06-19 16:37:43 +02:00
Atgeirr Flø Rasmussen
fb99dd6fee
Use unique_ptr rather than shared_ptr.
2020-06-19 16:03:46 +02:00
Atgeirr Flø Rasmussen
226697ec6f
Merge pull request #2679 from akva2/janitoring
...
make parseSuccess dependent on MPI
2020-06-19 15:10:38 +02:00
Atgeirr Flø Rasmussen
5105b80e50
Merge pull request #2667 from atgeirr/flexible-solver-separate-compile-unit
...
Use explicit instantiation for FlexibleSolver to reduce compile times.
2020-06-19 15:03:30 +02:00
Atgeirr Flø Rasmussen
faddef0321
Do not instantiate things requiring MPI when HAVE_MPI is false.
2020-06-19 10:01:16 +02:00
Arne Morten Kvarving
41e7201c73
make parseSuccess dependent on MPI
...
avoids unused warnings when building without
2020-06-19 09:46:21 +02:00
Joakim Hove
5484264854
Add actionState argument also for non MPI branch
2020-06-19 05:21:05 +02:00
Joakim Hove
d89a2e5eb7
Merge pull request #2674 from joakim-hove/use-action-state
...
Add Action::State member to EclPropblem and pass it to io/ActionX
2020-06-18 18:39:08 +02:00
Atgeirr Flø Rasmussen
dcd5d21415
Split constructor to reduce instantiation.
...
Without the split, certain combinations with Dune::Amg::SequentialInformation
as template argument for Comm needlessly get instantiated.
2020-06-18 08:28:20 +02:00
Atgeirr Flø Rasmussen
3784ab9d77
Amended copyrights and made the _impl.hpp a proper header file.
2020-06-17 21:07:13 +02:00
Atgeirr Flø Rasmussen
f24b2cd708
Split instantiation files to enable parallel build.
2020-06-17 13:03:57 +02:00
Joakim Hove
b52366926a
Add Action::State member to EclPropblem and pass it to io/ActionX
2020-06-17 12:25:03 +02:00
Atgeirr Flø Rasmussen
2dc2e053d1
Change order of constructor arguments.
...
This allows simplification, and having just two constructors.
2020-06-17 09:31:19 +02:00
Tor Harald Sandve
43d434d42e
trivial clean up
2020-06-17 08:39:19 +02:00
Tor Harald Sandve
e9d040a284
Fix upwining for friction, acceleration, valve and SIGD for MSW
...
Note 1:
The rate vectors used for the pressure equation now contains derivatives wrt to the upwind segment for fractions.
To make sure derivatives wrt. to different segmens gets mixed we disregard the derivatives for the properties (density, viscosity) evaluated at the upwind segment.
Note 2:
A factor 2 is added to the velocity head term similar as in the friction term
Note 3:
A sign change is added to the acceleration term for massrates > 0. Is this correct. It seems like the reference simulator does this.
2020-06-17 08:39:19 +02:00
Atgeirr Flø Rasmussen
a6d186551b
Use explicit instantiation for FlexibleSolver to reduce compile times.
2020-06-17 07:43:30 +02:00
Joakim Hove
f03dd20b96
Merge pull request #2636 from joakim-hove/serialize-gpmaint
...
Instantiate packer for std::optional<GPMaint>
2020-06-12 12:19:28 +02:00
Bård Skaflestad
201ef4adef
Remove Redundant 'packSize' Declaration
...
The 'std::string' case is covered by a call to ADD_PACK_PROTOTYPES.
2020-06-12 00:14:41 +02:00
Joakim Hove
baba9b6773
Merge pull request #2642 from joakim-hove/icd-variant
...
Use std::variant access to Segment::icd
2020-06-11 11:32:08 +02:00
Joakim Hove
be5f3ff2e1
Use std::variant access to Segment::icd
2020-06-10 20:41:14 +02:00
Kai Bao
23a9f4732b
Merge pull request #2666 from atgeirr/msw-log-output-cleanup
...
Prettifying and reducing log output from MSW.
2020-06-10 19:44:01 +02:00
Atgeirr Flø Rasmussen
dd8e42958a
Prettifying and reducing log output from MSW.
2020-06-10 16:36:17 +02:00
Arne Morten Kvarving
5d423e2300
changed: move moduleVersion to a separate object library
...
this to minimize re-linking due to compile timestamp support
2020-06-08 10:07:22 +02:00
Joakim Hove
04f6c24022
Merge pull request #2648 from joakim-hove/use-connections-segment-perf-length
...
Use WellConnections.segment_perf_length()
2020-06-05 11:05:57 +02:00
Joakim Hove
5b940836ec
Remove MultisegmentWell::calculateSICDFlowScalingFactors()
2020-06-04 14:13:14 +02:00
Markus Blatt
9870206c53
flow --help|--print-properties=1|--print-parameters=1} returns 0
...
Previously (in this PR) they returned an error code.
2020-06-03 16:49:29 +02:00
Markus Blatt
2457133ebf
Use MPI_Abort to make flow return nonzero error codes in parallel.
...
The previously used MPI_Finalize might have resulted in returning
zero even if there were problems.
2020-06-03 16:48:50 +02:00
Markus Blatt
f8201e5a94
Catch parser errors in parallel and abort.
...
Previously only the master process was aware of the error and flow did
deadlock in parallel runs if there were parser errors
encountered. With this commit all processes are made aware of the
problem and flow aborts with an error code.
2020-06-03 11:14:57 +02:00
Atgeirr Flø Rasmussen
a75d21e403
Fix bug in well closing, and allow more chopping by default.
2020-06-02 12:44:46 +02:00
Atgeirr Flø Rasmussen
6f1a159adc
Merge pull request #2611 from totto82/improveConvergenceMSW
...
Improve convergence msw
2020-05-30 17:00:30 +02:00
Tor Harald Sandve
b11d805e45
fix output message
2020-05-29 15:40:44 +02:00
Atgeirr Flø Rasmussen
b5bee4d114
Treat zero rate case for VFP tables.
2020-05-29 14:06:51 +02:00
Atgeirr Flø Rasmussen
2261c1ee74
Merge pull request #2637 from hnil/hide_vtk
...
Hide vtk
2020-05-29 08:21:31 +02:00
Joakim Hove
4ab3b92298
Merge pull request #2631 from hakonhagland/refac_run_simulator
...
Refactor runSimulator().
2020-05-29 07:25:49 +02:00
Joakim Hove
f43c997a10
Merge pull request #2640 from joakim-hove/rename-icd
...
Rename SpiralICD -> ICD
2020-05-29 07:24:49 +02:00
Atgeirr Flø Rasmussen
20c63f9f49
Merge pull request #2624 from OPM/fix/adapt-to-propertysystem-changes
...
adapt to changes in the property system
2020-05-28 12:05:17 +02:00
Joakim Hove
195d2b1c21
Rename SpiralICD -> SICD
2020-05-28 11:10:51 +02:00
hnil
16edd5ecc5
fixed commented code
2020-05-26 22:04:42 +02:00
hnil
95ead78a0d
made all vtk paramters allways be hidden
2020-05-26 21:56:51 +02:00
hnil
81714806c2
hide all vtk related if not vtk enabled
2020-05-26 16:16:42 +02:00
Joakim Hove
b28d926f32
Instantiate packer for std::optional<GPMaint>
2020-05-26 13:41:30 +02:00
Bård Skaflestad
4ea5b7e989
Check GCONSALE Limits: Remove Unused Variable
...
Fixes a warning.
2020-05-24 13:16:47 +02:00
Tor Harald Sandve
82b424c2cf
don't regularize MSW as default
2020-05-22 20:52:14 +02:00
Tor Harald Sandve
8a5c9e82df
add run time parameters for msw convergence tuning. Default values are set to minimize convergence failures for model2 based tests. These parameters are also tested on bigger models with good results
2020-05-22 20:52:14 +02:00
Tor Harald Sandve
ec7c6e236d
increase segment volume to stabilize to improve convergence
2020-05-22 20:52:14 +02:00
Tor Harald Sandve
d49c590879
apply the relaxtion factor on the pressure change not the max pressure change limit
2020-05-22 20:52:14 +02:00
Tor Harald Sandve
cf702a5384
use relaxed tolerance for MSW when solution stagnates
2020-05-22 20:52:14 +02:00
Markus Blatt
55b3a65230
Merge pull request #2628 from Tongdongq/multisegmentwells-gpu
...
cusparseSolver can now handle MultisegmentWells
2020-05-22 16:24:58 +02:00
T.D. (Tongdong) Qiu
98a8dac155
Passing std::vectors to pass data for C and B faster. Variables for D are initialized in initializer list.
2020-05-21 11:41:15 +02:00
T.D. (Tongdong) Qiu
f04a629546
Updated comments
2020-05-20 15:13:58 +02:00
Håkon Hægland
2734445bf5
Refactor runSimulator().
...
A resubmission of commit b25f489
in PR #2403 and PR #2441 to work with
the current master.
Continues the work in PR #2619 to refactor FlowMainEbos.hpp to work with
the Python bindings.
We need to refactor runSimulator() to avoid code duplication when
executeStepInit() is implemented (see later commit). Here, runSimulator()
is refactored into a runSimulatorInitOrRun() that takes a callback
function. When runSimulatorInit() is implemented it will pass a different
callback that only initializes the simulator. Currently, runSimulator()
passes the callback runSimulatorRunCallback_() which runs the whole
simulation. The code outputting the simulation summary in runSimulator()
is also refactored into a runSimulatorAfterSim_() method.
2020-05-19 16:52:46 +02:00
Atgeirr Flø Rasmussen
94ea40b253
Merge pull request #2619 from hakonhagland/refactor_execute
...
Refactor `execute()` in `FlowMainEbos.hpp`
2020-05-19 13:58:10 +02:00
Bernd Flemisch
a3b27ad9a4
[properties] include header with linear algebra property definitions
2020-05-19 10:04:35 +02:00
T.D. (Tongdong) Qiu
f6036ffa8e
Now WellContributions copies vectors for MultisegmentWells to reduce number of copies
2020-05-18 18:48:58 +02:00
T.D. (Tongdong) Qiu
0f273ebdf6
Removed unused variables. Changed initializerlist order for readability.
2020-05-18 16:10:19 +02:00
Bernd Flemisch
21df1cbe31
[properties] adapt to changes in the property system
...
`NEW_PROP_TAG` is now a definition and not just a declaration.
Eliminate superfluous declarations, include headers with definitions.
Make one necessary forward declaration explicit.
2020-05-18 15:54:26 +02:00
Markus Blatt
74936c3239
Skip exception for unset verbosity, use fallback for default solvers
...
boost::property_try::get without a defaults throws an exception. As
result the nonlinear solver and timestepper think that there is a
problem with solving and chop the timnestep until they give up.
This commit fixes this by using a default and falling back to the
command line specified value for the default solvers.
2020-05-18 08:33:49 +02:00
T.D. (Tongdong) Qiu
dcbba53510
Updated comment
2020-05-15 17:55:06 +02:00
T.D. (Tongdong) Qiu
04ee2be348
cusparseSolver can now handle MultisegmentWells, they are actually applied on CPU via SuiteSparse/UMFPACK
2020-05-15 16:40:34 +02:00
Markus Blatt
b887492285
Write out the linear system when ultra high verbosity is requested.
...
This added to ISTLSolverEbosFlexible and should be available form
ISTLSolverEbos for consistency reasons, too. Done with this commit.
2020-05-15 16:21:48 +02:00
Markus Blatt
e812eb132a
Merge pull request #2625 from blattms/modify-cpr-defaults
...
Modify cpr defaults (for better performance)
2020-05-15 14:07:36 +02:00
Markus Blatt
712f576b36
Default to trueimpes as this seems slightly faster for Norne.
2020-05-15 12:41:25 +02:00
Markus Blatt
6635c8c7cd
Actually honor CprMaxEllIter
...
instead of always overwriting it with 1.
2020-05-15 12:40:17 +02:00
Markus Blatt
65fceb34c1
Delete superfluous second setting of trueimpes.
...
It is already set in the if-else above.
2020-05-15 12:38:41 +02:00
Atgeirr Flø Rasmussen
77132af517
Merge pull request #2623 from atgeirr/fix-wrong-message
...
Correct messages for group control switching.
2020-05-15 11:32:09 +02:00
Bård Skaflestad
d382565681
Merge pull request #2622 from hnil/use_more_tuning
...
made constructor consistent with updateTuning
2020-05-14 23:14:42 +02:00
hnil
94a27afdd0
made constuctor consistent with updateTuning
2020-05-14 21:31:18 +02:00
Atgeirr Flø Rasmussen
5aa2a785af
Correct messages for group control switching.
2020-05-14 17:31:21 +02:00
Atgeirr Flø Rasmussen
35cf505d14
Merge pull request #2618 from blattms/actually-use-trueimpes-for-cpr-trueimpes
...
Use "trueimpes" for weight_type for configuration cpr_trueimpes.
2020-05-14 09:57:12 +02:00
Bård Skaflestad
3c44a670bb
Merge pull request #2616 from atgeirr/specialize-amgsmootherargs
...
Specialize amgSmootherArgs() for ParallelOverlappingILU0
2020-05-13 19:55:30 +02:00
Atgeirr Flø Rasmussen
883b987837
Set default smoother relaxation to 1.0.
2020-05-13 17:08:38 +02:00
Atgeirr Flø Rasmussen
ebce35b318
Add specialization for ParallelOverlappingILU0.
2020-05-13 17:08:38 +02:00
Markus Blatt
50cbe9a09e
Use "trueimpes" for weight_type for configuration cpr_trueimpes.
...
Previously, we always used quasiimpes.
2020-05-13 17:00:36 +02:00
Håkon Hægland
fcddbbba52
Refactor execute() in FlowMainEbos.hpp
...
Currently, execute() calls runSimulator() to run the simulation. When
the Python step_init() is implemented (see a later commit), it will
instead call an executeStepInit() that will need to do the same
initialization as in execute() except that it should call a
runSimulatorInit() instead of runSimulator(). In order to avoid code
duplication for execute() and executeStepInit(), execute() is here
refactored into an execute_() method.
2020-05-13 16:59:29 +02:00
Markus Blatt
76e710df97
Simplify intstantiation of BDABridge template members
...
with a macro and stripping unneeded template members.
2020-05-13 16:29:36 +02:00
Markus Blatt
85fffee06e
Pass a mutable matrix to BdaBridge::solve_system
...
That function will overwrite zero diagonal values with small nonzero ones.
2020-05-13 16:28:15 +02:00
Markus Blatt
d54268513e
Add getMatrix() const
method needed for GPU solvers.
...
Somehow I missed testing with CUDA.
2020-05-13 15:33:34 +02:00
Atgeirr Flø Rasmussen
654fbf864e
Merge pull request #2609 from hakonhagland/refactor_flowebos2
...
Refactors flow_ebos_blackoil.cpp (2)
2020-05-13 15:04:23 +02:00
Markus Blatt
46ab154396
Merge pull request #2615 from atgeirr/split-files
...
Split file to ensure correct authorship and license is applied.
2020-05-13 15:02:54 +02:00
Markus Blatt
90a0e2b392
Merge pull request #2613 from blattms/use-correct-matrix
...
Use correct matrix for scaling and get rid of unused preconditioner matrix member
2020-05-13 14:54:07 +02:00
Markus Blatt
f6b4a4396e
Merge pull request #2614 from blattms/clean-hnil-fix
...
Fixed unitialized value for ILU when using flexible solvers.
2020-05-13 14:40:02 +02:00
Atgeirr Flø Rasmussen
bf0e7f0e4a
Split file to ensure correct authorship and license is applied.
2020-05-13 13:53:45 +02:00
Håkon Hægland
8bb914b144
Fixed bug in initFlowEbosBlackoil()
...
The return code from the call to initialize_() in initFlowEbosBlackoil()
in Main.hpp was overwritten by a mistake.
2020-05-13 13:45:16 +02:00
Markus Blatt
664e582b5f
[bugfix] Use correct matrix for scaling.
...
For some of the scaling approaches the wrong matrix (dereferenced
nullptr) would have been used which should have resulted segmentation
faults. With this commit we add a method getMatrix() that returns the
correct one and use that for scaling.
2020-05-13 13:38:02 +02:00
Markus Blatt
9f278db5a6
Removes additional member for matrix used by the preconditioner.
...
Somehow that approach went missing in action and it is always the
same as the assembled matrix. Hence no need for that member anymore
and we remove it to prevent confusion.
2020-05-13 13:38:02 +02:00
Markus Blatt
1e56b8f907
Merge pull request #2608 from blattms/merge-cpr-legacy
...
Make flexible solvers and CPR accessible for flow binary.
2020-05-13 13:20:23 +02:00
hnil
e309d86012
Fixed unitialized value for ILU when using flexible solvers.
...
If the user requested ILU0, the uninitialized valued caused an
arbritrary (quite high) fill-in level to be used which stalled the
computation and exhausted memory when running parallel.
2020-05-13 13:13:54 +02:00
Markus Blatt
7ed960b6d1
Use normal pointer to assembled matrix.
2020-05-13 12:23:20 +02:00
Håkon Hægland
946b5f5806
Refactor flow_ebos_blackoil.cpp (2)
...
NOTE: this pull request depends on #2555 which should be merged first.
A rewrite of the outdated PR #2543 .
Refactors flow_ebos_blackoil.cpp such that we can choose not to execute
the whole simulation using the flowEbosBlackoilMain() function but
instead only initialize by calling flowEbosBlackoilMainInit(). This is
necessary to implement a Python step() method that can advance the
simulator one report step at a time.
Also adds a method initFlowEbosBlackoil() to Main.hpp that can be used
directly from the Python interface's BlackOilSimulator object to gain
access to the FlowMainEbos object before it has initialized the
simulation main loop.
2020-05-13 11:54:18 +02:00
Markus Blatt
ddd947bf0a
Use correct matrix for flexible solver when parallel.
...
In this case matrix_ is a nullptr and noGhostMat_ is the optimized
matrix to use. Before this commit we experienced a segmentation fault
as the nullptr was dereferenced and passed to the solver.
2020-05-12 19:06:12 +02:00
Markus Blatt
4c72af9546
Make only rank zero honor verbosity in flexible solvers.
...
Previously all the ranks print linear solver statistics in verbose
mode which cluttered the output in parallel runs. Now only rank 0
will print like it should be.
2020-05-12 18:06:20 +02:00
Markus Blatt
1f177b33e7
Use communicator to decide whether this is a truly parallel.
2020-05-12 12:46:04 +02:00
Markus Blatt
1ff1f24fbb
Fix when the matrix with no ghosts will be used.
2020-05-12 12:46:04 +02:00
Markus Blatt
e8b79b2b63
Prevent matrix copy in serial run.
2020-05-12 12:46:04 +02:00
Markus Blatt
357469dc21
Only extract overlap and interior information if needed.
...
That is, if actually set up the additional matrix with no ghosts.
2020-05-12 11:52:19 +02:00
Markus Blatt
aa54b4d8db
Remove unused weight_filename from json file.
2020-05-12 11:52:19 +02:00
Markus Blatt
47acb6ecb3
Make flexible solvers and CPR accessible for flow binary.
...
Previously, one had to call a seperate binary called
flow_blackoil_dunecpr. Unforntunately, that was only built if users
requested that the tests (`-DBUILD_TESTING=ON`) and the flow
variants (`-DBUILD_FLOW_VARIANTS=ON`) should be built. In addition
it would use a slightly different nonlinear solver implementation.
With this commit flow can be asked to either use
CPR (`--use-cpr=true --matrix-add-well-contributions=true`) or to use
the flexible solvers bx setting the `--linear-solver-configuration`
option. In all other cases the usual solver implementations are still
used.
Note that the flexible solvers still need
`--matrix-add-well-contributions=true` and hence cannot cope with
multi-segment wells.
2020-05-12 11:52:19 +02:00
Markus Blatt
71b234ec54
Make CprReuseSetup always use same default value.
...
The default was 0 for flow and 3 for flow_blackoil_dunecpr. Now we
always use 3. This is safe as it will not be used for any other
solvers than the flexible ones.
2020-05-12 11:52:19 +02:00
Markus Blatt
5b4acd5417
Do not query wells for solver if it is actually not needed.
2020-05-12 11:52:19 +02:00
Markus Blatt
19bd9cea65
for DUNE 2.7 and up we need to specialize for Opm:MatrixBlock
...
as there already is a specialization for an arbitrary Block
and that one leads to compile errors because we redefine it
in OPM (and miss some other specializations for Opm:MatrixBlock,
e.g. isNumber).
2020-05-11 21:29:47 +02:00
Joakim Hove
b5fda287d4
Merge pull request #2555 from hakonhagland/python_simulators3
...
Python bindings for the blackoil simulator (simplified).
2020-05-11 18:55:04 +02:00
Bård Skaflestad
e786c713fb
Merge pull request #2600 from totto82/improve_msw_convergence_clean
...
compute initial volume fractions on the well copies
2020-05-11 17:45:37 +02:00
Håkon Hægland
f94553c5a7
Python bindings for the blackoil simulator.
...
A simplified version of PR #2518 that uses a deck filename to construct
the simulator.
After private discussion with @joakim-hove it was decided that the
construction of the blackoil simulator from Python using deck,
ecliseState, schedule and summaryConfig as constructor arguments from
\#2518 should be replaced by a constructor taking only the deck filename
as parameter.
A rewrite of the Python bindings for the blackoil simulator using
pybind11 as introduced in PR #2127 . The new version uses the
refactored flow.cpp introduced in PR #2516 and thus avoids duplication
of the code in simulators.cpp.
This PR will be the starting point for implementing the Python bindings
introduced in PR #2403 .
2020-05-11 15:03:17 +02:00
Bård Skaflestad
34b750336e
Remove 'MAXVALUE' From List of Missing Features
...
We've supported that operator for quite some time.
2020-05-10 14:38:17 +02:00
Tor Harald Sandve
904353367d
compute initial volume fractions on the well copies also
2020-05-08 19:29:20 +02:00
Atgeirr Flø Rasmussen
7beabdb9fb
Merge pull request #2599 from atgeirr/improve-matrix-output
...
Improvements to matrix writing facility.
2020-05-08 15:41:33 +02:00
Atgeirr Flø Rasmussen
329036612b
Enable matrix dumping also without MPI.
...
Also remove the need for the reinterpret_cast by adding some extra
implementation details for more general block matrices.
2020-05-08 13:32:36 +02:00
Atgeirr Flø Rasmussen
d108f9afa6
Avoid file-ending starting with S or A to not confuse comparison program.
2020-05-08 11:56:52 +02:00
Atgeirr Flø Rasmussen
cf7b258f72
Minor adjustments from review.
2020-05-08 09:21:25 +02:00
Atgeirr Flø Rasmussen
561bec4a64
Make CASENAME.STEPINFO the name of the step info report file.
2020-05-07 22:29:01 +02:00
Atgeirr Flø Rasmussen
9458357009
Use = rather than += when appropriate for reports.
2020-05-07 22:09:17 +02:00
Atgeirr Flø Rasmussen
9dd2275af9
Remove seconds and add timestep to ITERINFO report.
2020-05-07 21:19:31 +02:00
Atgeirr Flø Rasmussen
769028b591
Remove 'verbosity' member and reorganize.
2020-05-07 21:00:39 +02:00
Atgeirr Flø Rasmussen
8dd53a38e9
Refactor SimulatorReport system.
...
Now SimulatorReport object contains a vector of SimulatorReportSingle objects,
for both successful and failing steps.
2020-05-07 16:13:39 +02:00
Atgeirr Flø Rasmussen
cfdb2b9be6
Modifications of formatting, compile fix.
2020-05-07 15:04:20 +02:00
hnil
0f33835e67
added writing of detailed performance report
2020-05-07 11:37:24 +02:00
hnil
d275242b01
Add a writeSystem() helper and use it to write system matrices.
...
Triggered only when using the flexible solver and a solver verbosity > 10.
2020-05-06 16:56:30 +02:00
Markus Blatt
3f65235935
Merge pull request #2591 from atgeirr/fix-parameter-setup
...
Do not run setupParameter_() twice for the static-typed sims.
2020-05-05 17:27:44 +02:00
Atgeirr Flø Rasmussen
9357919201
Do not run setupParameter_() twice for the static-typed sims.
2020-05-05 16:19:10 +02:00
Atgeirr Flø Rasmussen
7dbbc0f2e5
Merge pull request #2588 from totto82/addMinMaxSupportGCONSALE
...
Implement min/max for GCONSALE
2020-05-05 15:46:36 +02:00
Tor Harald Sandve
85e95fb87d
Implement min/max for GCONSALE
...
Only default action RATE is implemented for violation of maximum sales target
2020-05-05 14:24:17 +02:00
Atgeirr Flø Rasmussen
859db45e45
Merge pull request #2590 from totto82/fixSolventRein
...
Fix solvent reinjection when different reinjection group is given
2020-05-05 11:36:50 +02:00
Tor Harald Sandve
f33737afc4
Fix solvent reinjection when different reinjection group is given
2020-05-05 10:46:49 +02:00
Arne Morten Kvarving
fa5c4a8573
Merge pull request #2586 from atgeirr/fix-tag-for-init
...
Ensure that the typetag used for initialization is correct.
2020-05-04 11:12:44 +02:00
Atgeirr Flø Rasmussen
f0b1ee76b8
Ensure that the typetag used for initialization is correct.
...
Without this, properties set in the static variants of flow such as
flow_blackoil_dunecpr.cpp will be honored in the run. However, the
text for '--help' and the property printout in the .DBG file will not
reflect the true type tag, but the default.
This bug was added during the recent refactoring of all Flow variants
to use the same initialization and setup code.
2020-05-04 08:52:49 +02:00
Joakim Hove
da5042c538
Update connection <-> segment implementation
2020-04-30 14:53:35 +02:00
Joakim Hove
926e904e90
Instantiate std::optional<double> and std::optional<std::string>
2020-04-29 16:26:58 +02:00
Joakim Hove
ec647bcc16
Merge pull request #2574 from joakim-hove/serialize-optional
...
Add support for serializing std::optional
2020-04-29 10:48:43 +02:00
Markus Blatt
ca744231b1
Removes unused member istlSolver_ and method to get it from BlackoilModelEbos
...
It is not used since quite some time and tends to confuse me.
2020-04-28 16:46:17 +02:00
Joakim Hove
40d7cd4381
Add support for serializing std::optional
2020-04-28 16:25:17 +02:00
OPMUSER
163ce3b613
Update Missing Features with PERMFACT
2020-04-28 13:39:40 +02:00
Bård Skaflestad
9756edce50
Remove Unused 'currentControl' Variable
2020-04-27 21:29:10 +02:00
Atgeirr Flø Rasmussen
14bde098ce
Merge pull request #2570 from blattms/fix-prec-factory-dune-master
...
Complete future-proofing ILU usage in the preconditioner factory.
2020-04-27 16:37:27 +02:00
Atgeirr Flø Rasmussen
06e5e6b6ac
Merge pull request #2565 from totto82/avoidOscNupcol
...
use nupcol to avoid oscillation between group controls
2020-04-27 16:02:32 +02:00