Commit Graph

797 Commits

Author SHA1 Message Date
Arne Morten Kvarving
50f3d7d342 add a FIPContainer class
this is a container for the FIP map and associated code
in OutputBlackoilModule.

start by adding allocation functionality. for now the container
only owns a reference to the map
2025-01-31 15:50:53 +01:00
Bård Skaflestad
38ade97e86 Install More Headers
Needed for Main::runStatic<>() to be usable out-of-tree.
2025-01-30 18:20:19 +01:00
Bård Skaflestad
1bf755f5e8 Move Dynamic Dispatch Function to Separate TU
This moves about 300 lines of code out of Main.hpp and, especially,
moves the <flow/flow_*.hpp> include statements as well.  This, in
turn, makes Main::runStatic<>() usable for out-of-tree consumers.
2025-01-30 13:18:02 +01:00
Bård Skaflestad
a0f907b59b Install Type Tag for TPFA Flow Problems
Makes this accessible for out-of-tree uses.
2025-01-30 11:35:19 +01:00
Bård Skaflestad
efede0a253 Document and Test PropertyTree Class
In particular, add Doxygen-style documentation to the header file
and add a simple unit test for the PropertyTree class interface.

While here, also add missing headers and prefer template argument
deduction over explicit template arguments.
2025-01-29 12:58:29 +01:00
Arne Morten Kvarving
6cdb905ed7 fixed: condition on MPI_FOUND, not USE_MPI 2025-01-22 15:37:15 +01:00
Håkon Hægland
b4192b06c3 Fix rebase problem 2025-01-20 15:28:05 +01:00
Håkon Hægland
402bb85103 Enable building without MPI 2025-01-17 22:06:19 +01:00
Håkon Hægland
943d7fc2ce Enable start at any report step
Enable master and slaves to start at any report step. In the previous
commits, only first report step was supported.
2025-01-17 22:05:12 +01:00
Håkon Hægland
4fd225c004 Spawn slaves from master 2025-01-17 22:01:11 +01:00
Arne Morten Kvarving
dcd739fa09 BlackoilModel: add impl file 2025-01-15 11:51:39 +01:00
Arne Morten Kvarving
d1c9c040ce SimulatorFullyImplicitBlackoil: move parameter registration to TU 2025-01-15 09:58:54 +01:00
Bård Skaflestad
6438f120ed
Merge pull request #5871 from akva2/blackoilmodel_penalty_card
BlackoilModel: move to has-a instead of is-a modelling of penalty cards
2025-01-14 15:56:47 +01:00
Arne Morten Kvarving
15cb87576c SimulatorConvergenceOutput: move to separate class
model using has-a in SimulatorFullyImplicitBlackoil
2025-01-14 10:24:53 +01:00
Arne Morten Kvarving
653cdfc247 BlackoilModel: move to has-a instead of is-a modelling of penalty cards 2025-01-14 06:26:52 +01:00
Arne Morten Kvarving
c909283288 BlackoilModel: move properties to separate header 2025-01-13 11:34:14 +01:00
Kjetil Olsen Lye
791a3b84e1
Merge pull request #5688 from multitalentloes/add_mixed_precision_double_diagonal_gpu_ilu0_variants
Add mixed precision double diagonal gpu ilu0 variants
2025-01-13 11:15:51 +01:00
Tobias Meyer Andersen
d1e5a69476 Add new MP scheme to GPU ILU and DILU 2025-01-10 16:38:14 +01:00
Arne Morten Kvarving
73ede837bb changed: move WBP BlackoilWellModel code to separate class
model using has-a instead of is-a in BlackoilWellModelGeneric
2025-01-10 09:38:35 +01:00
Arne Morten Kvarving
bc45c1e80a changed: remove unused code in WellConnectionAuxilliaryModule 2025-01-07 10:36:15 +01:00
Arne Morten Kvarving
89dbda4621 changed: move GasLift to separate class
move to has-a instead of is-a for modelling in BlackoilWellModel
2025-01-06 15:15:59 +01:00
Arne Morten Kvarving
a2bd8b5810 split AdaptiveTimeStepping to use an impl file 2025-01-03 09:30:14 +01:00
Bård Skaflestad
172ae7ee76
Merge pull request #5744 from akva2/add_ratio_calc
Add dedicated class for some ratio calculation in StandardWell
2024-12-19 11:22:16 +01:00
jakobtorben
5dd70eb8bb Add AMGX preconditioner 2024-12-18 13:30:02 +01:00
Arne Morten Kvarving
3eeb33d8c8 fixed: remove HYPRE from prereqs
this is controlled by USE_HYPRE and we should not unconditionally
look for it. had to move the code into config hook and split some ifs

pointy hat [at]akva2
2024-12-11 13:35:03 +01:00
jakobtorben
d663f16bea Add tests for Hypre Preconditioner 2024-12-10 17:08:18 +01:00
jakobtorben
10f7a85532 Add Hypre preconditioner 2024-11-27 17:09:14 +01:00
Arne Morten Kvarving
a2d5a505b3 added: RatioCalculator
will move some of the the ratio calculations from StandardWell into it.

start by moving gasOilVolumeRatio
2024-11-20 10:02:58 +01:00
Arne Morten Kvarving
91aabf6a92
Merge pull request #5706 from BigDataAccelerate/rename-bda-to-gpu
Remove bda naming from project
2024-11-11 16:26:21 +01:00
Razvan Nane
23e24a8cca Rename ISTLSolverGpu to ISTLSolverGpuBridge 2024-11-11 15:02:01 +01:00
Tobias Meyer Andersen
78e01ad06f Add tests for gpu pvt classes 2024-11-08 14:41:34 +01:00
Razvan Nane
7c4bafe936 rename bda folder&files 2024-11-04 10:47:34 +01:00
Kjetil Olsen Lye
e81cf62e79
Merge pull request #5611 from multitalentloes/print_gpu_info_on_startup
Print gpus used on simulator startup
2024-10-31 21:29:08 +01:00
Kai Bao
a8d2c5bc2c removing GenericOutputCompositionalModule
we do the compostional related in GenericOutputBlackoilModule to minimize the code change.
there needs to be refatoring for GenericOutputBlackoilModule to split
the black oil and compostional related.
2024-10-30 11:22:04 +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
Tobias Meyer Andersen
798f7d5426 Print GPU used on every rank 2024-10-30 11:03:29 +01:00
Antonella Ritorto
b875ba8122 LevelCartesianIndexMapper for AluGrid 2024-10-21 11:25:27 +02:00
Bård Skaflestad
8082e72d32 Add Top Level Container for Saturation Function Consistency Checks
This commit introduces a new top-level "manager" for all saturation
function consistency checks.  This component associates collections
of saturation function curves with per-cell or per-region end-point
definitions and provides an interface to run all checks for all
interior entities (i.e., active cells) in a DUNE grid view.  We form
one set of SatfuncConsistencyChecks objects for each
SatfuncCheckPointInterface<> object, thereby enabling running the
same set of consistency checks for both the unscaled, tabulated,
per-region saturation functions and the per-cell scaled saturation
functions.  The latter is executed only if the run enables end-point
scaling for the saturation functions while the former is executed
only if the run does not enable end-point scaling.

At present we're limited to reversible and non-directional
saturation functions for the drainage process only, but those
restrictions will be lifted in due time.

As an aid to enabling the pertinent individual checks, we add a
private factory function which considers the run's active phases and
whether or not the run uses the alternative, three-point horizontal
scaling method ("SCALECRS = YES").
2024-10-16 09:32:19 +02:00
Bård Skaflestad
257e5a2d2a Add Protocol for Populating Saturation Function End Points per Cell
This commit introduces a set of callback functions, packaged in an
abstract base class SatfuncCheckPointInterface<Scalar>, for querying
and populating the saturation function end-points that get probed by
the individual consistency checks.  Member function

    SatfuncCheckPointInterface::pointID(cellIdx)

translates the active cell index 'cellIdx' into a point ID, assumed
to be unique on at least the current MPI rank.  This function will
return 'nullopt' if the 'cellIdx' is not eligible for this
particular end-point.  This typically happens for the region based
tabulated (unscaled) saturation function checks when the 'cellIdx'
happens to be in a region that's already been visited.  Member
function

    SatfuncCheckPointInterface::populateCheckPoint(cellIdx, endPoints)

fills in (assigns) all data members of the 'endPoints' structure
with the pertinent values for the active cell 'cellIdx'.

We implement this interface for the tabulated/unscaled end-points in
derived class UnscaledSatfuncCheckPoint<Scalar> and for the scaled
end-points in derived class ScaledSatfuncCheckPoint<Scalar>.  The
former keeps track of which saturation regions have been visited
and short-circuits its 'pointID()' member function based on that
information while the latter uses an instance of the former in order
initialise the 'endPoints' structure in its populateCheckPoint()
member function.
2024-10-11 11:47:50 +02:00
Tobias Meyer Andersen
9bdc361368 fix cmake and cuda bugs 2024-09-25 13:43:00 +02:00
Tobias Meyer Andersen
e6b6add193 Add tests for AD objects and TwoPhaseMaterial
The tests verify that these objects can be used
inside of GPU kernels
2024-09-25 11:22:27 +02:00
Arne Morten Kvarving
3ee3dc2b5f newtonmethod: move parameters to dedicated struct with a translation unit 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
1b19fa02f4 newtonmethodparameters.hh: rename to newtonmethodparams.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
e0af58a7cf vtktemperaturemodule: move parameters to dedicated struct with a translation unit 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
4eb70830cf vtkptflashmodule: move parameters to dedicated struct with a translation unit 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
29f2a35694 vtkptflashmodule.hh: rename to vtkptflashmodule.hpp 2024-09-16 15:17:50 +02:00
Arne Morten Kvarving
023328bed2 vtkprimaryvarsparams: move parameters to dedicated struct with a translation unit 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
adb6438d84 vtkphasepresencemodule: move parameters to dedicated struct with a translation unit 2024-09-16 15:17:50 +02:00