Commit Graph

6239 Commits

Author SHA1 Message Date
jakobtorben
6d53daaa42 Store report of failed step before cutting from convergence monitoring 2024-10-03 08:56:39 +02:00
jakobtorben
eef0ba50bf Change non-convergence monitor to checking if number of non-converged has increased 2024-10-03 08:56:39 +02:00
jakobtorben
cda47a6387 Register convergence monitoring parameters 2024-10-03 08:56:39 +02:00
jakobtorben
5f17c9de6a Cut timestep if penlaty exceeds limit 2024-10-03 08:56:39 +02:00
jakobtorben
d476a328de Add distance decay penalty 2024-10-03 08:56:39 +02:00
jakobtorben
3e6f9c52bb Reset the total penalty card after each nonlinear iteration 2024-10-03 08:56:39 +02:00
jakobtorben
e1e577fab1 Add penalty for unconverged well 2024-10-03 08:56:39 +02:00
jakobtorben
56da84517b Add well convergence metric 2024-10-03 08:56:39 +02:00
jakobtorben
861cfeec49 Add penalty card for increase in convergence metrics 2024-10-03 08:56:39 +02:00
jakobtorben
988ca3aa60 Add object to keep track of penalty cards for convergence monitoring 2024-10-03 08:56:39 +02:00
Kai Bao
562da9ef70 support ZMF explicit initialization 2024-10-02 22:08:19 +02:00
Tobias Meyer Andersen
89df54e379 clang-format ILUKernels.cu 2024-10-02 14:59:29 +02:00
Tobias Meyer Andersen
e82a9fa56c implement PR feedback 2024-10-02 14:57:34 +02:00
Bård Skaflestad
120b39a8f9 Fix Lower Bound Conditions for Three Point Checks
These are supposed to verify that the displacing saturation is
strictly between the critical and the maximum saturation values.
2024-10-02 12:33:22 +02:00
Kai Bao
69c6294978 set newton tolerance to be 1.e-7 for compositional running 2024-10-01 15:54:25 +02:00
Bård Skaflestad
919f30029f
Merge pull request #5635 from akva2/dont_store_sched_deck
changed: don't store schedule keywords unless required in simulators
2024-10-01 13:12:21 +02:00
Markus Blatt
e743f2aa1e Skip bogus warning about missing cells for PINCH NNCs
Cells are only missing if both are in the ghost overlap layer.
In this case we do not have a connection here to keep the matrix
more sparse.
2024-10-01 11:15:11 +02:00
Markus Blatt
9e31831917 [Cleanup] Adapt to changed return values from PINCH processing. 2024-10-01 11:15:11 +02:00
Markus Blatt
4b3808fa93 [Refactor] Adapt to PINCH NNC separated from the normal ones.
This is also a preparation for correct MULTZ processing.
2024-10-01 11:15:11 +02:00
Markus Blatt
a56526607c Remove unneeded parameter from applyAllZMultipliers_ 2024-10-01 11:15:11 +02:00
Markus Blatt
e816ae4df3 Correctly treat transmissibilities for PINCH option(4) ALL.
In that case processEclipseFormat will create NNCs over the pinched
out cells with correct transmissibilities. Those NNCs are marked as
being created in PINCH and used to overwrite calculated
transmissibilties for the horizontal intersections (transmissibilities
of normal NNCs are usually added).

Note that the trnasmissibilities (without the multipliers) do not
change later. Only the multipliers can change them in the schedule and
that will still happen.
2024-10-01 11:15:11 +02:00
Atgeirr Flø Rasmussen
47e7c7c5a3
Merge pull request #5630 from ElyesAhmed/fix_sfc_order_alugrid
add changes to fix the order
2024-10-01 10:06:17 +02:00
Tobias Meyer Andersen
54c2f2df30 update block operation doc 2024-09-30 16:28:56 +02:00
Tobias Meyer Andersen
55c20dbddd Implement mixed precision GPU ILU0 2024-09-30 16:24:49 +02:00
Arne Morten Kvarving
2353ba56a6 changed: don't store schedule keywords unless required in simulators
in the python simulator we cannot make this decision up front
since the schedule can be modified from python code so we have
to do the safe thing
2024-09-27 11:24:20 +02:00
Stein Krogstad
cb22d63cfe In updateThp always compute thp when vfp is active 2024-09-26 21:06:05 +02:00
Elyes Ahmed
265c7b8520 cleanup and removing wrong instructions 2024-09-26 10:27:13 +02:00
Bård Skaflestad
fc578bad7f
Merge pull request #5632 from atgeirr/speed-up-numerical-aquifers
AquiferNumerical: speed up calculations.
2024-09-25 21:11:32 +02:00
Atgeirr Flø Rasmussen
6bb3331774 AquiferNumerical: speed up calculations.
There is no need to update the stencil if we are skipping the cell.
Also, the extensive quantities will not change while iterating over
the neighbours, so that update can be moved out of the loop.
2024-09-25 20:10:23 +02:00
Elyes Ahmed
6c2e957df0 add changes to fix the order
enabling reordering as default
2024-09-25 10:26:02 +02:00
Bård Skaflestad
02555ac504
Merge pull request #5626 from vkip/rptsched_wells
Support RPTSCHED WELLS=N
2024-09-25 09:27:58 +02:00
Vegard Kippe
2c2b0bc930 Use the correct rstep for well reports 2024-09-24 16:27:18 +02:00
Bård Skaflestad
a38704ecb0 Implement 'RFIP' and 'SFIP' Mnemonics For RPTRST
The 'FIP' mnemonic continues to be an alias for 'SFIP' in the
current implementation, and the output layer will create the 'SFIP'
arrays as copies of 'FIP' if passed only the 'FIP' arrays.

To this end, make 'outputFipRestart_' into a structure that tracks
which of the *FIP mnemonics have been requested, and insert the
pertinent solution arrays into the data::Solution object when
needed.
2024-09-24 13:38:56 +02:00
Bård Skaflestad
096e0e11c9 Initialise Output Module's Boolean Flags
While here, also insert a few blank lines in the copyright statement
to make it more in line with the rest of opm-simulators.
2024-09-24 13:38:56 +02:00
Atgeirr Flø Rasmussen
4becb4c3fc
Merge pull request #4855 from erikhide/master
Fixed indexing error in PID controller
2024-09-24 13:33:14 +02:00
Vegard Kippe
5745f92b08 Avoid unused variable warning 2024-09-24 13:00:34 +02:00
Vegard Kippe
6ba9dc086c Support RPTSCHED WELLS=N 2024-09-24 13:00:34 +02:00
Atgeirr Flø Rasmussen
47df38dabe
Merge pull request #5617 from kjetilly/solver_adapter_mpi
Make SolverAdapter explicitly depend on the communication object
2024-09-24 11:06:16 +02:00
Kjetil Olsen Lye
3161a986a2 SolverAdapter is now more explicit on its communicator/MPI dependence. This fixes the MPI issues with CUDA/HIP/GPUISTL that were introduced with the GhostLastMatrixAdapter. 2024-09-24 10:03:23 +02:00
Erik Hide Sæternes
6c556484b1 Added errors_[0] == 0 to conditional 2024-09-23 22:15:15 +02:00
Erik Hide Sæternes
37e96e211c Fixed indexing error in PID controller 2024-09-23 22:15:15 +02:00
Kai Bao
68503eb9b2 xmfData to ymfData, typo correction 2024-09-23 10:17:18 +02:00
Kai Bao
dddcfad298
Merge pull request #5601 from vkip/network_alq
Avoid adding gas lift of non-open wells to network
2024-09-20 14:00:44 +02:00
Bård Skaflestad
4a6627c10d
Merge pull request #5618 from GitPaean/setup_log_comp
setting up logging so flowexp variants can report parsing errors
2024-09-20 09:05:05 +02:00
Vegard Kippe
ca36f5b2a6 Support ALQ in network calculations and avoid adding gas lift of closed wells 2024-09-19 23:43:16 +02:00
Stein Krogstad
d202ea256a Remove unused schedule 2024-09-19 13:28:13 +02:00
Stein Krogstad
41933c618a update description 2024-09-19 12:58:47 +02:00
Stein Krogstad
cb7e168728 Disallow switching to group control in local well solve 2024-09-19 11:44:34 +02:00
Kai Bao
4754f63d62 setting up logging so flowexp variants can report parsing errors 2024-09-18 16:56:30 +02:00
Atgeirr Flø Rasmussen
9c74c4d638
Merge pull request #5305 from hnil/shut_inj_temp
fixing some of output
2024-09-17 14:33:29 +02:00
Tor Harald Sandve
ee4a6e0e39 WIP fix issue with stopped wells 2024-09-17 13:58:01 +02:00
Arne Morten Kvarving
048ae50255 add missing overrides 2024-09-17 07:52:10 +02:00
Arne Morten Kvarving
ea8ee36f51 FlowProblem: add virtual dtor 2024-09-17 07:51:56 +02:00
Bård Skaflestad
32886f6cb4
Merge pull request #5612 from akva2/more_tus
Split out vtk module parameters to separate translation units
2024-09-16 15:47:30 +02:00
Arne Morten Kvarving
1b19fa02f4 newtonmethodparameters.hh: rename to newtonmethodparams.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
e093101d1c vtktemperaturemodule.hh: rename to vtktemperaturemodule.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
be4026ecce vtkprimaryvarsmodule.hh: rename to vtkprimaryvarsmodule.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
a895678c30 vtkmultiphasemodule.hh: rename to vtkmultiphasemodule.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
6ab0fbe6c2 vtkdiffusionmodule.hh: rename to vtkdiffusionmodule.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
c7c15fbe23 vtkcompositionmodule.hh: rename to vtkcompositionmodule.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
6a1b33c793 vtkblackoilmodule.hh: rename to vtkblackoilmodule.hpp 2024-09-16 15:17:50 +02:00
Vegard Kippe
18a8b5bb90 Add energy balance tolerances + use standard tolerances as defaults for now 2024-09-16 14:39:33 +02:00
Vegard Kippe
33b72a9722 Rebased to current master. TODO: pvSplit with energy 2024-09-16 14:39:33 +02:00
hnil
c000678c0b fixe merge error 2024-09-16 10:44:46 +02:00
hnil
1f78064b75 fixed errors in merging 2024-09-16 10:41:51 +02:00
Arne Morten Kvarving
3a5d527417
Merge pull request #5602 from totto82/fixBHPCO2
BUGFIX fix injection bhp pressure for CO2/H2 STORE
2024-09-13 15:48:17 +02:00
Tor Harald Sandve
50a4742c23
Merge pull request #5323 from vkip/energy_efficiency_factor
Apply well/group efficiency factors for connection energy rates.
2024-09-13 12:48:36 +02:00
Kjetil Olsen Lye
567a3bc0fa
Merge pull request #5606 from multitalentloes/fix_opmcuilu0_name
update OpmCuILU0 to OpmGpuILU0
2024-09-13 10:25:10 +02:00
Tor Harald Sandve
d13b4a3956 BUGFIX fix injection bhp pressure for CO2/H2 STORE 2024-09-13 09:17:37 +02:00
Tobias Meyer Andersen
0bab02f809 update name of opm cuilu0 to match gpuistl 2024-09-13 09:15:19 +02:00
Tor Harald Sandve
9eaba103cc Fix issue with stopped injectors in thermal runs 2024-09-13 08:51:52 +02:00
Atgeirr Flø Rasmussen
8de619111b
Merge pull request #5476 from jakobtorben/remove_bug_in_simple_iteration_timestep_control
Set correct target iterations in SimpleIterationTimestepControl
2024-09-12 21:43:18 +02:00
Arne Morten Kvarving
6d8b5b204b fixed: make sure we have valid indices in readInitialCondition_
quells warnings building flowexp_comp
2024-09-12 10:56:44 +02:00
Kai Bao
2c75adf165 adding a compositional simulator
flowexp_comp
2024-09-11 14:58:33 +02:00
Kai Bao
85513754bc splitting Blackoil related to FlowProblemBlackoil
so FlowProblem can be used for compositional or other setting
2024-09-11 14:58:14 +02:00
Arne Morten Kvarving
e559fc371b MPIPacker: mark buffer const in unpacker functions 2024-09-11 12:46:44 +02:00
Arne Morten Kvarving
e808a3d2f3 adjust to change in MemPacker unpack signature 2024-09-11 12:46:44 +02:00
Bård Skaflestad
fc8135894c
Merge pull request #5594 from bska/fix-sgmax-consistency-check
Fix Consistency Check for Maximum Gas Saturation
2024-09-11 08:48:23 +02:00
Arne Morten Kvarving
7fb5260e53
Merge pull request #5593 from multitalentloes/fix_macro_todo
reolve gpuistl macro todo
2024-09-10 20:10:30 +02:00
Tobias Meyer Andersen
9d8679ccc6 reolve temporary macro todo 2024-09-10 15:44:20 +02:00
Bård Skaflestad
ba1419b31f Fix Consistency Check for Maximum Gas Saturation
The earlier condition

    0 <= SGU < 1

was not appropriate and would, for instance, fail the NORNE_ATW2013
test case in which SGU = 1 in the unscaled table for saturation
region 1.  Revise the condition to be more in line with that of SWU,
i.e., as

    0 < SGU <= 1

Pointy Hat: [at]bska
2024-09-10 15:44:16 +02:00
Tobias Meyer Andersen
5947090a9e update the name of the solver to fit with gpuistl 2024-09-10 14:10:58 +02:00
Arne Morten Kvarving
2a9d81227b changed: subclass Main for python
move the initFlowBlackoil method into it

in particular we then avoid the FlowMainType type alias
in Main.hpp
2024-09-09 14:28:20 +02:00
Arne Morten Kvarving
fc96e9da75 Main: mark some members protected
to enable subclassing
2024-09-09 14:28:11 +02:00
Bård Skaflestad
3de20b46b6 Add Saturation Function Consistency Checks for SCALECRS
This commit introduces consistency checks for the scaled displacing
saturation in the three point horizontal scaling method
(SCALECRS=YES).  These plug into the framework introduced in commit
c3939c544 (PR #5438).  We implement the following two checks

  - SGCR < 1-SOGCR-SWL < SGU
  - SWCR < 1-SOWCR-SGL < SWU

which collectively guarantee a mobile displacing oil saturation in
the two phase gas/oil and oil/water systems.
2024-09-05 10:36:43 +02:00
Arne Morten Kvarving
4967323c29 Parameters::printValues: drop default parameter for stream 2024-09-05 10:08:09 +02:00
Arne Morten Kvarving
3161b4f547 ParameterSystem: add function to query if registration is open 2024-09-05 10:07:40 +02:00
Arne Morten Kvarving
05f01bf819 parametersystem.hh: rename to .hpp 2024-09-05 10:07:40 +02:00
Arne Morten Kvarving
2bdab9e518 parametersystem: pass add callback for adding keys to positional parameter handler
this way the backing store for the parameters can be an implementation
detail of the parameter system
2024-09-05 10:07:40 +02:00
Bård Skaflestad
329ad50e59 Don't Count Cells Unless Needed
If the user chooses a specific number of NLDD domains, there is no
need to compute the default number of domains based on a specific
target number of cells per domain.  Defer the, potentially costly,
calculation to when we know we need it.

While here, also split/rejoin a couple of long lines.
2024-09-05 09:45:16 +02:00
Bård Skaflestad
be64ef3ef6 Add Water Phase Saturation Function Consistency Checks
This commit introduces a set of consistency checks for the water
phase saturation functions.  These plug into the framework
introduced in commit c3939c544 (PR #5438).  We implement the
following three checks

  - 0 <= SWL < 1
  - 0 < SWU <= 1
  - SWL <= SWCR < SWU

which collectively enable a non-negative oil saturation in the two
phase oil/water system.
2024-09-04 13:47:33 +02:00
Bård Skaflestad
d69d929d37
Merge pull request #5571 from bska/gphase-sfunc-consistency-checks-impl
Add Gas Phase Saturation Function Consistency Checks
2024-09-04 13:02:25 +02:00
Arne Morten Kvarving
b3e08b4f2f timer.hh: rename to timer.hpp 2024-09-04 12:06:35 +02:00
Arne Morten Kvarving
d35d80427e tasklets.hh: rename to tasklets.hpp 2024-09-04 12:06:21 +02:00
Arne Morten Kvarving
e7a9c4cd21 threadmanager: remove unused typetag template parameter
and move implementation to a translation unit
2024-09-04 12:06:21 +02:00
Bård Skaflestad
9c246faefa Add Gas Phase Saturation Function Consistency Checks
This commit introduces a set of consistency checks for the gas phase
saturation functions.  These plug into the framework introduced in
commit c3939c544 (PR #5438).  We implement the following three checks

  - 0 <= SGL < 1
  - 0 <= SGU < 1
  - SGL <= SGCR < SGU

which collectively enable a non-negative oil saturation in the two
phase gas/oil system.
2024-09-04 11:34:39 +02:00
Arne Morten Kvarving
55a0a6da54 blackoilsolventparams: introduce translation unit
move code for loading parameters from eclipse state into it
2024-09-04 11:17:40 +02:00
Arne Morten Kvarving
3aed1aa7f9 blackoilpolymerparams: introduce translation unit
move code for loading parameters from eclipse state into it
2024-09-04 11:17:40 +02:00
Arne Morten Kvarving
5a567de3e2 blackoilmicpparams: introduce translation unit
move code for loading parameters from eclipse state into it
2024-09-04 09:17:26 +02:00
Arne Morten Kvarving
f6d3893093 blackoilfoamparams: introduce translation unit
move code for loading parameters from eclipse state into it
2024-09-04 09:13:02 +02:00
Arne Morten Kvarving
a04d9fdd00 blackoilextboparams: introduce translation unit
move code for loading parameters from eclipse state into it
2024-09-04 09:08:12 +02:00
Arne Morten Kvarving
a51e13c244 blackoilbrineparams: introduce translation unit
move code for loading parameters from eclipse state into it
2024-09-04 09:02:17 +02:00
Bård Skaflestad
2e70fc407e Add Oil Phase Saturation Function Consistency Checks
This commit introduces a set of consistency checks for the oil phase
saturation functions.  These plug into the framework introduced in
commit c3939c544 (PR #5438).  We implement the following four checks
for the gas/oil two-phase system

  - 0 <= SOGCR < 1
  - SWL + SGU <= 1
  - SOGCR < 1 - SWL - SGL
  - SOGCR < 1 - SWL - SGCR

which all guarantee a non-negative (mobile) oil saturation in the
gas/oil system.  Similarly, we implement the following four checks
for the oil/water two-phase system

  - 0 <= SOWCR < 1
  - SGL + SWU <= 1
  - SOWCR < 1 - SWL - SGL
  - SOWCR < 1 - SWCR - SGL

which provide the same guarantees as outlined above, but for the
oil/water system.

We add a base class, PhaseCheckBase<Scalar>, which provides a common
representation of the violated/critical predicates and implement the
specific checks as derived types of this base class.
2024-09-03 12:35:44 +02:00
Arne Morten Kvarving
bc46647aa5 Import opm-models 2024-09-02 10:55:19 +02:00
Bård Skaflestad
a73cb6ee93 Fix DRVDT Initialisation Conditional
It does not make sense to pass

    episodeIdx && maxDRv_.empty()

as an argument to drvdtActive().
2024-08-30 15:16:46 +02:00
Atgeirr Flø Rasmussen
58ce7cbc7c
Merge pull request #5556 from akva2/float_support5
Float support in simulators: Batch 5
2024-08-30 15:06:35 +02:00
Atgeirr Flø Rasmussen
9dd54fb11a Avoid capturing structured bindings.
This is an error before C++20, and clang refuses it.
2024-08-30 13:17:07 +02:00
hnil
eb1b2c6711 fixing some of output 2024-08-30 09:46:23 +02:00
Kai Bao
f47d00c9d7
Merge pull request #5236 from hnil/no_early_exit_zero_flux
Avoid deleting derivative i.e. getting "wrong" matrix in case of zero…
2024-08-29 14:46:09 +02:00
Vegard Kippe
eb869f211f Avoid time step dependent jump in RS after restart 2024-08-28 16:28:51 +02:00
Vegard Kippe
0b6dd93903 Avoid negative time step size after restart (trouble for DRSDT init) 2024-08-28 15:04:15 +02:00
Vegard Kippe
0485bfb47f Set correct episode before initial call to invalidateAndUpdateIntensiveQuantities 2024-08-28 15:04:15 +02:00
Vegard Kippe
8f45cbe4c4 Properly initialize mixing controls after restart. 2024-08-28 15:04:15 +02:00
Vegard Kippe
cc08df226e Update after merging #5527 2024-08-28 15:04:15 +02:00
Bård Skaflestad
9dca8256f3 Split Request Writing Into Stages
This commit introduces helper functions for each individual part of
a convergence report record in the INFOITER file.  In particular, we
create helpers for

  - Time related columns (report step, time step, time &c)
  - CNV pore-volume histogram columns
  - Reservoir convergence metrics (CNV and MB values per phase)
  - Well convergence metrics

This makes the body of the main loop in writeConvergenceRequest()
slightly easier to read and means that we can apply some additional
logic to the CNV pore-volume histograms if the number of values does
not match the expected 3 per type.  In that case we output sentinel
values (e.g., NaN and -1) to signify that the corresponding pieces
of information are unavailable.
2024-08-27 10:50:06 +02:00
Bård Skaflestad
0b40277e01 Revise Convergence Report Collection Procedure
This commit switches the parallel implemenation of function
Opm::gatherConvergenceReport() into using the general serialisation
framework (classes Opm::Serializer<> and Opm::Mpi::Packer).  In
particular, we add serializeOp() functions to each of the types

  - ConvergenceReport
  - ConvergenceReport::ReservoirFailure
  - ConvergenceReport::ReservoirConvergenceMetric
  - ConvergenceReport::WellFailure

and defer the job of converting the objects between in-memory and
byte stream representations to Opm::Serializer<>.  The new special
purpose class CollectConvReports inherits from the latter and uses
its pack() and unpack() member functions, along with its internal
m_buffer data member, to distribute each rank's convergence report
object to all ranks.  We add this feature here, in a very narrowly
scoped use case, to enable testing and experimentation before we
consider adding this distribution mechanism as a general feature in
Opm::MpiSerializer.
2024-08-27 10:50:06 +02:00
Bård Skaflestad
68cc5d917e Output CNV Histogram to INFOITER File
This commit tracks the number of cells and their associate fraction
of the model's "eligible" pore volume (total pore volume in
numerical aquifers subtracted from the model's total pore volume) in
three distinct categories as a function of the non-linear iteration
number:

  - 0: MAX_p { CNV_p } <= strict CNV tolerance
  - 1: MAX_p { CNV_p } \in (strict, relaxed]
  - 2: MAX_p { CNV_p } > relaxed CNV tolerance

We then output these cell counts and pore volume fractions as new
items in the INFOITER file to enable more targeted analysis of the
non-linear convergence behaviour.

To this end, introduce a type alias CnvPvSplit in the
ConvergenceReport and aggregate these across the MPI ranks before we
collect them in the ConvergenceReport objects.

While here, also reduce the amount of repeated logic in
gatherConvergenceReport.cpp through a few local lambdas.
2024-08-27 10:50:06 +02:00
Bård Skaflestad
359e4903d5
Merge pull request #5561 from akva2/janitoring
amgcpr: use override
2024-08-27 09:18:04 +02:00
Arne Morten Kvarving
021d6c2b0c amgcpr: use override 2024-08-27 06:43:00 +02:00
Kjetil Olsen Lye
f97389d1b5
Merge pull request #5554 from multitalentloes/refactor_cuistl
refactor cuistl to gpuistl
2024-08-26 09:55:13 +02:00
Atgeirr Flø Rasmussen
2e15a04db5
Merge pull request #5557 from atgeirr/avoid-cprw-incompatibilities
Intercept CPRW if MICP or polymer injectivity is used.
2024-08-26 09:50:57 +02:00
Markus Blatt
7ebb6e7034
Merge pull request #5547 from lisajulia/feature/action-parsing-strictness
Add action-parsing-strictness command line parameter
2024-08-26 09:06:25 +02:00
Arne Morten Kvarving
4af89f1ced ISTLSolverBda: avoid using deprecated Dune::CollectiveCommunication 2024-08-23 15:10:25 +02:00
Tobias Meyer Andersen
d14fed904a fix typo 2024-08-23 14:42:37 +02:00
Atgeirr Flø Rasmussen
9ccb67ead6 Intercept CPRW if MICP or polymer injectivity is used.
These modeling options are currently incompatible with our CPRW implementation.
2024-08-23 13:08:08 +02:00
Tobias Meyer Andersen
d925d62bf2 refactor cusparsematrixoperations 2024-08-23 11:15:18 +02:00
Arne Morten Kvarving
b5bd290887 BlackoilModel: use appropriate Scalar type 2024-08-23 11:15:03 +02:00
Arne Morten Kvarving
fda7298374 FlowGenericVanguard: optionally instantiate for float 2024-08-23 11:15:03 +02:00
Arne Morten Kvarving
bca05f8f7b ISTLSolverBda: optionally instantiate for float 2024-08-23 11:15:03 +02:00
Arne Morten Kvarving
4d08afd480 BdaBridge: optionally instantiate for float 2024-08-23 11:15:03 +02:00
Arne Morten Kvarving
ecb2cafdd3 rocsparseSolverBackend: optionally instantiate for float 2024-08-23 11:15:03 +02:00
Arne Morten Kvarving
346ba93b66 rocsparsePreconditioner: optionally instantiate for float
rocsparseBILU0: optionally instantiate for float
rocsparseCPR: optionally instantiate for float
2024-08-23 11:15:03 +02:00
Arne Morten Kvarving
3ff678b58a rocsparseCPR: add support for float Scalars 2024-08-23 11:15:03 +02:00
Tobias Meyer Andersen
d2681b26ed refactor opm_cuda_safe_call 2024-08-23 11:12:13 +02:00
Arne Morten Kvarving
6bcdad6ceb rocsparseBILU0: add support for float Scalars 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
644aeb582f rocsparseSolverBackend: add support for float Scalars 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
452a0a0baa rocalutionSolverBackend: optionally instantiate for float 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
c5ddec57d8 rocsparseMatrix: optionally instantiate for float 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
ecc62bbf19 HipKernels: optionally instantiate for float 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
cdad4500c1 amgclSolverBackend: disable for float scalar
for reasons deep down in amgcl, it does not compile. for now
just disable it
2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
7a3a79c11b openclSolverBackend: optionally instantiate for float 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
a0f8cc0aed Preconditioner: optionally instantiate for float
BILU0: optionally instantiate for float
BISAI: optionally instantiate for float
CPR: optionally instantiate for float
CPRCreation: optionally instantiate for float
Misc: optionally instantiate for float
2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
5bab71b8e3 OpenclMatrix: optionally instantiate for float 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
36c544e204 BlockedMatrix: optionally instantiate for float 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
da2a894090 CPR: disable with float Scalars 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
5825612a75 cusparseSolverBackend: optionally instantiate for float 2024-08-23 11:02:23 +02:00
Arne Morten Kvarving
35fb78ea9a cusparseSolverBackend: add float Scalar support 2024-08-23 11:02:23 +02:00
Bård Skaflestad
3dbeed2199
Merge pull request #5550 from akva2/float_support3
Float support in simulators: Batch 3
2024-08-23 10:29:14 +02:00
Tobias Meyer Andersen
85a9ad2b61 refactor cuistl folder names 2024-08-22 15:32:21 +02:00
Tobias Meyer Andersen
5919b417e3 refactor cuview 2024-08-22 15:27:23 +02:00
Tobias Meyer Andersen
fba1858f42 refactor cuvector 2024-08-22 15:20:20 +02:00
Tobias Meyer Andersen
3aa1767548 refactor cusparsematrix 2024-08-22 15:14:33 +02:00
Tobias Meyer Andersen
0c1ea3ee4d refactor cuseqilu0 2024-08-22 15:07:53 +02:00
Bård Skaflestad
93c368cbfa Revise Mixture Density Method for No-Flow Producers
This commit switches the approach introduced in commit eeb1b7e36 (PR
#3169) to using a mobility weighted average of cell level densities
for the connection level mixture densities in no-flow producing
wells.  We also use the recent stoppedOrZeroRateTarget() predicate
to identify those no-flow producing wells instead of inspecting the
connection flow rates.

The mobility weighted average gives a more monotone pressure buildup
for the stopped wells and this is usually what the engineer wants.
This revised approach furthermore needs fewer cell-level dynamic
properties so simplify the computeProperties() signature by
introducing a structure for the property callback functions and
update the callers accordingly.
2024-08-22 14:51:00 +02:00
Bård Skaflestad
586d8e2ddc Generate Property Object Directly
This commit switches computePropertiesForPressures() to return a
Properties object directly instead of populating an object
constructed in the caller.  There is just a single call site for
this function so there's no benefit to using an out parameter here.
While here, also collect the property callbacks into a structure to
simplify the function signature.  This also enables not filling in
the solvent properties unless solvent is active in the run.  Update
caller accordingly.
2024-08-22 14:51:00 +02:00
Bård Skaflestad
6f2ee80e41 Refactor Perforation Pressure Property Helper Function
In particular, split the sections of the main loop out to helper
functions

  - calculatePerforationOutflow() uses the global container factory
    to compute the outflow from each connection
  - initialiseConnectionMixture() computes the 'mix' array depending
    on the local flowing conditions of the connection.  We have
    renamed 'x' and 'mix' arrays to 'currentMixture' and
    'previousMixture' respectively to give more descriptive names in
    the process.

We've also split out the redistribution of the individual phases to
the new private helper functions reapportionGasOilMixture() and
reapportionGasWaterMixture() in order to reduce the cognitive load
of the main loop in computePropertiesForPressures().  While here,
employ pointer arithmetic to expose the underlying structure of the
assignment expressions.
2024-08-22 14:51:00 +02:00
Bård Skaflestad
fa199461b5 Varnish Parts of Well Implementation
In particular

  * Split some long lines
  * Reverse conditions to reduce nesting
  * Mark potentially unused arguments as [[maybe_unused]]
  * Try to remove redundant calculations
  * Mark some objets 'const' where possible
2024-08-22 14:51:00 +02:00
Tobias Meyer Andersen
1721a1071f refactor cuowneroverlapcopy 2024-08-22 14:46:38 +02:00
Tobias Meyer Andersen
158619083e refacor cujac 2024-08-22 14:40:23 +02:00
Tor Harald Sandve
66fd1dfcf3
Merge pull request #5527 from totto82/pvtnum_drdsdtcon
Support deactivation of individual DRSDT/DRVDT/DRSDTCON regions
2024-08-22 14:30:03 +02:00
Tobias Meyer Andersen
d17ee3315b refactor CuDILU 2024-08-22 14:28:33 +02:00
Tobias Meyer Andersen
69897753e8 refactor CuBuffer 2024-08-22 14:12:30 +02:00
Tobias Meyer Andersen
67bc9e8f34 refactor CuBlockPreconditioner 2024-08-22 13:58:35 +02:00
Tobias Meyer Andersen
3f4ae4ddf4 refactor cuistl namespace 2024-08-22 13:52:50 +02:00
Kjetil Olsen Lye
c4f686227b
Merge pull request #5451 from multitalentloes/generalize_thread_block_tuner
Generalize thread block tuner
2024-08-22 12:56:14 +02:00
hnil
ec11bbaac3 Avoid deleting derivative i.e. getting "wrong" matrix in case of zero flux 2024-08-22 11:47:14 +02:00
Tobias Meyer Andersen
8a1dfceeed clang format OpmCuilu0.cpp 2024-08-22 10:24:17 +02:00
Tobias Meyer Andersen
45f6116d5e clang format autotuner 2024-08-22 10:23:36 +02:00
Tobias Meyer Andersen
dcdce71d4b add more explanations 2024-08-22 10:17:53 +02:00
Tobias Meyer Andersen
8b50c90fd1 make use of OpmLog for printing tuning result 2024-08-22 10:07:06 +02:00
Atgeirr Flø Rasmussen
9b4c51de7e
Merge pull request #5553 from jakobtorben/add_support_for_changing_local_solver_in_NLDD
Make local solver in NLDD a runtime specified ISTLSolver
2024-08-22 09:45:32 +02:00
Tor Harald Sandve
b0bfe9f1c1 Adapt to mixControl moving from genericProblem 2024-08-21 16:03:59 +02:00
jakobtorben
1f285ae0d5 Make local solver in NLDD a runtime specified ISTLSolver 2024-08-21 14:24:23 +02:00
Arne Morten Kvarving
267d282d1d NonlinearSolver: optionally instantiate for float 2024-08-21 10:12:25 +02:00
Arne Morten Kvarving
d938d821ad EclGenericWriter: optionally instantiate for float 2024-08-21 10:05:04 +02:00
Arne Morten Kvarving
6a364ea961 GenericOutputBlackoilModule: optionally instantiate for float 2024-08-21 09:56:01 +02:00
Arne Morten Kvarving
aadc5cb69c GenericOutputBlackoilModule: obtain data using appropriate overload 2024-08-21 09:49:22 +02:00
Arne Morten Kvarving
05d37bfbf6 InitStateEquil: optionally instantiate for float 2024-08-21 09:45:11 +02:00
Arne Morten Kvarving
b16fd2f724 EquilibrationHelpers: optionally instantiate for float 2024-08-21 09:43:25 +02:00
Arne Morten Kvarving
bff3dae230 GenericTracerModel: optionally instantiate for float 2024-08-21 09:41:56 +02:00
Arne Morten Kvarving
2245daa0c7 ISTLSolver: optionally instantiate for float 2024-08-21 09:40:24 +02:00
Bård Skaflestad
5914744f7c
Merge pull request #5546 from totto82/fix_no_wells
BUGFIX Fix no wells case
2024-08-21 09:36:16 +02:00
Arne Morten Kvarving
1cc27754d8 FlexibleSolver: optionally instantiate for float
PreconditionerFactory: optionally instantiate for float

these need to go in the same commit due to circular dependencies
2024-08-21 09:34:28 +02:00
Arne Morten Kvarving
d244f49813 FlexibleSolver: throw if umfpack is requested with float Scalar 2024-08-21 09:33:03 +02:00
Arne Morten Kvarving
94e43f6ea9 StandardWellEval: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
f6e0c03498 StandardWellEquations: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
a7b99651c1 WellContributions: optionally instantiate for float
cuWellContributions: optionally instantiate for float
openclWellContributions: optionally instantiate for float
rocsparseWellContributions: optionally instantiate for float

these need to go in the same commit due to circular dependencies
2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
9f5bad224c openclKernels: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
df0a9a4055 MultisegmentWellContribution: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
b507c75e75 MultisegmentWellContribution: disable with float Scalars 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
6f04033142 MultisegmentWellEval: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
6f7660905e MultisegmentWellEquations: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
fa84eb65c7 MultisegmentWellEquations: throw with float Scalar
UMFPack cannot handle floats
2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
e4e6430644 MultisegmentWellSegments: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
39971162a3 MSWellHelpers: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
42b8545e51 MSWellhelpers: disable for float Scalar
there is no UMFPack for floats
2024-08-21 09:23:31 +02:00
Arne Morten Kvarving
d28b751742 BlackoilModelParameters: optionally instantiate for float 2024-08-21 09:23:31 +02:00
Bård Skaflestad
5fd5027ebd
Merge pull request #5549 from akva2/actionhandler_float
ActionHandler: instance for float
2024-08-21 09:22:13 +02:00
Tor Harald Sandve
fffa19e757 Only resize drsdt related vectors when needed 2024-08-21 09:17:25 +02:00
Tor Harald Sandve
914f0b8644 Support deactivation of individual DRSDT/DRVDT/DRSDTCON regions 2024-08-21 09:17:25 +02:00