Commit Graph
45 Commits
Author SHA1 Message Date
Bård Skaflestad 85c69f7d44 Add End-of-Episode Predicate to Flow Problem Classes
This is arguably a hack.  The default implementation in terms of
Simulator<>::episodeWillBeOver() is known to have non-trivial false
negatives in certain regression tests.  These are in turn possibly
related to using the simulation start time point (often a large
number of seconds) and subtracting values of similar size.  The
custom implementation in FlowProblemBlackoil<> uses a floating-point
comparison involving Schedule::seconds() instead, thereby reducing
the size of the numbers involved.  We're still vulnerable to
"catastrophic cancellation" errors, but potentially less so.

A complete fix for the problem may involve switching to representing
the simulated time variable as an integer instead of a
floating-point type.
2025-08-15 17:47:45 +02:00
jakobtorben a4c78d6fdb Replace virtual/override pattern with CRTP for recycleFirstIterationStorage 2025-08-07 15:55:01 +02:00
Atgeirr Flø Rasmussen 47a66bbb09 Merge pull request #6357 from jakobtorben/remove_intensive_quantities_cache_for_timeIdx1
Remove intensive quantities cache for time idx 1
2025-08-07 14:53:34 +02:00
jakobtorben 32cb7887a5 Make intensiveQuantityHistorySize a runtime controlled check 2025-07-02 16:00:21 +02:00
Atgeirr Flø Rasmussen 521a252300 Use if constexpr to handle conditionally stored members.
Also added some more convenience enums to avoid repeated
getPropValue() clutter.
2025-06-27 13:24:47 +02:00
Atgeirr Flø Rasmussen 309a65634e Remove unneeded setPc() call. 2025-06-26 15:15:37 +02:00
Bård Skaflestad 42cbb139f8 Run Saturation Function Consistency Check on Main Grid Only
We currently do not support saturation function end-point scaling
in LGRs, so there's no need to try.  Therefore, limit the checks
to the main grid--levelGridView(0)--only.
2025-05-15 11:08:06 +02:00
Arne Morten Kvarving 7521d78253 fvbasediscretization: use std::unique_ptr 2025-05-12 14:18:05 +02:00
Arne Morten Kvarving e71e55064d use std::transform instead of raw loops 2025-04-24 08:10:30 +02:00
David Landa Marban 7685984058 Missing permFactTransMultiplier by MICP 2025-04-09 14:58:57 +02:00
Svenn Tveit fb1f5b22f6 Change MICP sources to new structure 2025-04-04 10:10:48 +02:00
Svenn Tveit 429a71654c Accommodate for changes in SOURCE structure 2025-04-04 09:40:26 +02:00
Tor Harald Sandve 86620c5efd Merge pull request #6105 from daavid00/micp
Updating MICP
2025-04-03 17:29:33 +02:00
Atgeirr Flø Rasmussen ae7a89cf91 Avoid unnecessary work when no DRSDTCON. 2025-04-03 10:52:53 +02:00
David Landa Marban 1031e993b4 Addressing totto82 comments 2025-04-03 00:20:20 +02:00
David Landa Marban ccc452f4d4 Updating MICP 2025-04-02 22:19:01 +02:00
Bård Skaflestad 9fdf51f672 Merge pull request #6119 from akva2/initial_fip
Calculate original FIP by reading restart data for step 0
2025-04-01 16:45:54 +02:00
Arne Morten Kvarving 7a21fbeaa7 FlowProblemBlackoil: split out code for reading solution from output module
for reusability
2025-03-31 08:18:39 +02:00
Arne Morten Kvarving a4999638d9 cosmetics 2025-03-28 14:13:33 +01:00
David Landa Marban 6510b48b35 Support for RSW in the SOLUTION section 2025-03-28 07:49:02 +01:00
Tor Harald Sandve 3603ed09a0 Merge pull request #6074 from daavid00/permFact
PERMFACT for each saturation region
2025-03-17 09:15:07 +01:00
Bård Skaflestad c42c8bbc97 Merge pull request #6078 from akva2/fix_clear_events
fixed: clear out events before processing actions
2025-03-14 13:25:16 +01:00
David Landa Marban bd25c13378 Set SOIL to 0 when readExplicitInitialCondition and 1-SGAS-SWAT=0 2025-03-13 20:13:21 +01:00
Arne Morten Kvarving 0dacefc74e fixed: clear out events before processing actions
these have already been processed at start of report step
and should not be executed again
2025-03-13 13:13:08 +01:00
David Landa Marban 4104c578e0 PERMFACT for each saturation region 2025-03-12 17:02:57 +01:00
David Landa Marban 191581f302 Fix to write vtk (if enabled) for dry runs in cases with drsdt 2025-03-12 14:33:15 +01:00
David Landa Marban e560b941c7 Fix to write vtk (if enabled) for dry runs in cases without oilPhase 2025-03-06 15:14:53 +01:00
Arne Morten Kvarving 756954b8e3 changed: make FlowProblem(Blackoil|Comp) return a reference to EclWriter
the pointer is allocated in the ctor, so the fact that it is a unique_ptr
can be kept as an implementation detail. furthermore, the previous
accessor did not properly enforce constness, as a const unique_ptr<EclWriter>
only applies const to the pointer class, not the data the pointer points to.
2025-02-18 11:41:50 +01:00
Arne Morten Kvarving 9677f2e215 move output of conv data into RSTConv class
move member from model to output module. this way we don't have
to shuffle data around
2025-02-18 10:12:55 +01:00
Arne Morten Kvarving 1fefab59d6 move extraction of MICP solution into MICPContainer 2025-02-07 13:47:35 +01:00
Arne Morten Kvarving 012141b281 add MICPContainer, a container for MICP data output
start by moving data members into it
2025-02-07 13:46:56 +01:00
Halvor M Nilsen f2e846a14f Make Action Processing Independently Accessible
This commit splits the action processing of member function

    FlowProblemBlackoil::endTimeStep()

out into a separate member function

    void FlowProblemBlackoil::endStepApplyAction()

for use by client code.  The initial use case is to have an
action-like operation that supports adding new connections to wells
in parts of the formation undergoing hydraulic fracturing.
2025-02-05 16:11:49 +01:00
Arne Morten Kvarving f7cfa7a04b FlowProblem: move some more code to FlowGenericProblem
typetag less parameter system now allows us to initialize these variables
in class that holds them.
2025-01-15 08:40:48 +01:00
Antonella Ritorto 9624eb7185 Do not write initial FIP for CpGrid with LGRs for now 2024-12-18 17:05:40 +01:00
Bård Skaflestad ef434a9b59 Chase API Update of UDQConfig's Evaluation Functions
The functions no longer use the 'episeodeIdx' or Schedule
parameters.  Update callers accordingly.

While here, split some long lines and remove unneeded local objects.
2024-11-05 18:18:43 +01:00
Kai Bao 3635132d95 making OutputModule template parameter of EclWriter 2024-10-30 11:23:16 +01:00
Kai Bao 4ba1cd53d7 add EclWriter to FlowProblemComp
so the FlowProblemComp can output ecl style output.
it duplicates the OutputBlackoilModule and GenericOutputBlackoilModule
for compositional related output for now.
2024-10-30 11:14:18 +01:00
Kai Bao 2d082cae42 in flowexp_blackoil, invalidate output data after solution is updated 2024-10-21 10:34:00 +02:00
Arne Morten Kvarving 0af94eef27 remove unused capture 2024-10-17 11:32:04 +02:00
Bård Skaflestad 2aac0d6cf5 Enable New Saturation Function Consistency Checks
The new parameter CheckSatfuncConsistency, command line option
--check-satfunc-consistency, allows users to opt into running the
checks.  The option currently defaults to 'false' to reflect the
somewhat experimental nature of the new facility.

The new parameter --num-satfunc-consistency-sample-points allows the
user to select the maximum number of reported failures for each
individual consistency check.  By default, the simulator will report
at most five failures for each check.

We check the unscaled curves if the run does not activate the
end-point scaling option and the scaled curves otherwise.  At
present we're limited to reversible and non-directional saturation
functions for the drainage process, but those restrictions will be
lifted in due time.
2024-10-16 15:03:07 +02:00
Bård Skaflestad 92efa31c31 Tidy Up FlowProblem* Classes
In preparation of enabling the new saturation function consistency
checks.
2024-10-16 12:18:33 +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
Arne Morten Kvarving 048ae50255 add missing overrides 2024-09-17 07:52:10 +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