Commit Graph

644 Commits

Author SHA1 Message Date
Arne Morten Kvarving
b09c70213b FlowMainEbos: rename to FlowMain 2024-02-06 10:42:23 +01:00
Arne Morten Kvarving
d25d4432eb EclInterRegFlows: rename to InterRegFlows 2024-02-02 12:53:11 +01:00
Arne Morten Kvarving
e741063306 SimulatorFullyImplicitBlackoilEbos: rename to SimulatorFullyImplicitBlackoil 2024-02-02 08:48:47 +01:00
Arne Morten Kvarving
cb14fff22a rename SimulatorFullyImplicitBlackoilEbos.cpp to SimulatorReportBanners
and add a header
2024-02-02 08:41:35 +01:00
Bård Skaflestad
a6eb7b65a1
Merge pull request #5149 from akva2/adaptivetimestepping_drop_ebos
AdaptiveTimeSteppingEbos: rename to AdaptiveTimeStepping
2024-02-01 18:36:36 +01:00
Arne Morten Kvarving
cbb8cb29f5 AdaptiveTimeSteppingEbos: rename to AdaptiveTimeStepping 2024-02-01 17:57:59 +01:00
Bård Skaflestad
ba3c64443c
Merge pull request #5150 from akva2/istlsolver_drop_ebos
ISTLSolverEbos: rename to ISTLSolver
2024-02-01 17:43:34 +01:00
Bård Skaflestad
a6054e729f
Merge pull request #5147 from akva2/nonlinearsolver_drop_ebos
NonlinearSolverEbos: rename to NonlinearSolver
2024-02-01 16:49:26 +01:00
Arne Morten Kvarving
b6e47ab1e7 ISTLSolverEbos: rename to ISTLSolver 2024-02-01 15:49:40 +01:00
Arne Morten Kvarving
5bca6c2703 ISTLSolverEbosBda: rename to ISTLSolverBda 2024-02-01 15:49:40 +01:00
Arne Morten Kvarving
0898f525aa NonlinearSolverEbos: rename to NonlinearSolver 2024-02-01 15:14:47 +01:00
Arne Morten Kvarving
d6f59c1d4b
Merge pull request #5134 from lisajulia/feature/NONNC
Feature/NONNC
2024-02-01 15:13:58 +01:00
Lisa Julia Nebel
631409ec2c Add test for NONNC keyword 2024-02-01 13:57:49 +01:00
Arne Morten Kvarving
e13c77ae95 BlackoilModelEbos: rename to BlackoilModel 2024-02-01 09:05:40 +01:00
Arne Morten Kvarving
80d32b105b BlackoilModelEbosNldd: rename to BlackoilModelNldd 2024-02-01 09:05:40 +01:00
Arne Morten Kvarving
dd92a7446c BlackoilModelParametersEbos: rename to BlackoilModelParameters 2024-02-01 09:05:40 +01:00
Arne Morten Kvarving
89880bfe2f damariswriter: properly encapsulate Damaris 2024-01-30 14:19:20 +01:00
Arne Morten Kvarving
02fbadb809 GridDataOutput: add translation unit 2024-01-30 13:18:59 +01:00
Bård Skaflestad
008e1c93c3
Merge pull request #5133 from akva2/damarisvar_cleanup
DamarisVar: Some cleanup
2024-01-30 11:01:07 +01:00
Arne Morten Kvarving
3f842cd67f DamarisVar: add translation unit 2024-01-30 09:02:20 +01:00
Arne Morten Kvarving
800422bd17 HDF5Serializer: add translation unit 2024-01-29 10:00:48 +01:00
Arne Morten Kvarving
96a3a6d45a changed: move hdf5serializer to opm/simulators/utils/HDF5Serializer.hpp
does not interact with typetag system
2024-01-29 09:42:49 +01:00
Atgeirr Flø Rasmussen
2626fbb84b
Merge pull request #5002 from multitalentloes/add_cudilu
Add cudilu
2024-01-25 15:43:39 +01:00
Tobias Meyer Andersen
4b0dd54f15 Add CUDA implementation of the DILU
preconditioner. Uses graph coloring to exploit
parallelism in upper and triangular solves when
computing a diagonal approximate inverse of a
sparse matrix. Supports blocksizes up to 3.
2024-01-25 14:26:38 +01:00
Bård Skaflestad
24ebb77257
Merge pull request #5116 from atgeirr/parallel-well-domain-output
Parallel well domain and error logging for NLDD
2024-01-23 15:41:11 +01:00
Atgeirr Flø Rasmussen
04492413ff Move formatting utilities for convergence failures.
This makes them available for use in other places. The function
std::string to_string(const ConvergenceReport::WellFailure& wf) is new,
but uses the format already established.
2024-01-23 11:16:57 +01:00
Arne Morten Kvarving
98c704c1c3 changed: move ebos/eclmpiserializer.hh to opm/simulators/utils/MPISerializer.hpp
it does not use the typetag system
2024-01-23 10:51:32 +01:00
Arne Morten Kvarving
ed28d7c9ef changed: move damaris command line properties to separate file
to avoid pulling in the whole writer in DamarisKeywords.hpp
2024-01-10 14:16:02 +01:00
Arne Morten Kvarving
e686fabb39 added: class for calculating RPTRST CONV 2024-01-10 13:07:34 +01:00
Arne Morten Kvarving
de9c3ddfda added: test for outputdir 2023-12-19 15:21:58 +01:00
Atgeirr Flø Rasmussen
1dbd971710
Merge pull request #4889 from jcbowden/damariswriter-for-sim-fields-v5
Geometric mesh data added for Damaris in-situ visualisation
2023-12-15 10:18:00 +01:00
Josh Bowden
54d6db6f35 Update 1 for code after code review of PR 4889 2023-12-13 18:13:55 +01:00
Arne Morten Kvarving
f46b6c5a01 changed: move simulator serialization to separate class
more separation of concerns
2023-12-05 11:20:22 +01:00
Bård Skaflestad
68fe118781 Make Compress/Count Partition Vector Helper Generally Available
This function pair is useful also when loading a partition from
file to ensure that there are no gaps in block numbering.
2023-11-17 09:17:46 +01:00
Bård Skaflestad
27aaa28c71 Add Partitioner for Unstructured Connectivity Graph
Invokes Zoltan library and requires MPI.  Client code constructs an
abstract connectivity graph by defining connections/edges through
the 'registerConnection()' member function.  May also impose a
restriction that certain cells/vertices be placed in the same
domain/block in the resulting partition.  Client code must supply a
callback function that defines globally unique cell/vertex/object
IDs, across all MPI ranks, for each vertex in the connectivity
graph.

Member function 'partitionElement()' forms the resulting partition
vector, the size of which is the total number of objects visible to
the local rank-typically the number of cells owned by the rank, and
the number of overlap cells--i.e., the size of the local grid view.
2023-11-15 13:31:41 +01:00
jakobtorben
ab0ca76194 Add DILU preconditioner 2023-10-18 14:30:17 +02:00
Atgeirr Flø Rasmussen
8b480a0a49
Merge pull request #4852 from multitalentloes/cujac_preconditioner
Cujac preconditioner
2023-10-16 12:46:29 +02:00
Tobias Meyer Andersen
fbeb006d45 Simplify and optimize the Jacobi preconditioner
apply. Fix .h and .cpp mistakes in cmake.
2023-10-13 10:31:17 +02:00
Tobias Meyer Andersen
1e4b0e97ee Add jacobi preconditioner that runs on the GPU.
Implement calls to cuBlas, cuSparse and implement necessary
CUDA kernels to perform a single iteration of the jacobi preconditioner.

Add tests that verify new kernels and the preconditioner in its totality.

The preconditioner is verified on 2x2 and 3x3 blocks, which as of now
are the only supported sizes. 1x1 are not supported because cuSparse
does not support it.
2023-10-13 10:31:17 +02:00
Razvan Nane
7673118f14 CUDA and HIP not allowed at the same time 2023-10-08 08:58:35 +02:00
Tong Dong Qiu
a49aaf53d2 Add new files rocsparseWellContributions
With HIP stdwell_apply kernel
MultisegmentWells are done on CPU via UMFPack
2023-10-08 08:58:35 +02:00
josh bowden
4a965fe297 some changes to test for paraview and python scripts 2023-09-28 11:12:26 +02:00
josh bowden
8095eb0c48 Geometric mesh data added for in-situ visualisation
added access to DUNE mesh geometry and passing through data to Damaris;
Updated command line so users can specifiy Python or Paraview script names and other paramaters that control Damaris
- Simulation name
- Number of dedicated cores or dedicated nodes
- Shared memory region size
- switch to turn off HDF5 output.
- Damaris logging level
2023-09-22 23:23:29 +02:00
Atgeirr Flø Rasmussen
18f0d8fd27
Merge pull request #4859 from jcbowden/damariswriter-for-sim-fields-v4
Damaris - Moving Damaris functionality to it's own class
2023-09-20 09:06:48 +02:00
josh bowden
1e2d9360d7 Move Damaris functionality to it's own class.
Step one for moving Damaris calls out of EclWriter class and into its own DamarisWriter class;
EclProblem now calls both writeOutput methods and passes in the data::Solution object;

Add fix for first writeOutput() call not having PRESSURE data available;

data::Solution is now passed by rvalue ref into eclWriter::writeOutput();

guard added to prevent inclusion of damariswriter.hh
2023-09-19 21:20:08 +02:00
Markus Blatt
b209f6af77
Merge pull request #4778 from aritorto/cellCentroid
Refactor element centroids lookup
2023-09-15 10:02:15 +02:00
Bård Skaflestad
e6c2413d05 Remove Unused Functions
These functions became unused in commits 952ccf8338 and f027262ec4,
but their definitions remained in place.  We no longer need them.
2023-09-05 19:03:43 +02:00
Bård Skaflestad
9c58585538
Merge pull request #4823 from akva2/ecltimestepping_separate
changed: put ecl time stepping parameters in separate struct
2023-09-04 10:54:46 +02:00
Tor Harald Sandve
80cbfe7fda
Merge pull request #4819 from hakonhagland/gecon3
Implement support for GECON keyword
2023-09-01 15:06:48 +02:00
Atgeirr Flø Rasmussen
99fca58dca Improvements from review. 2023-09-01 08:48:11 +02:00
Atgeirr Flø Rasmussen
06c706e7d6 Also copy flags, and helper function with test. 2023-08-31 13:01:50 +02:00
Arne Morten Kvarving
3c525aefae changed: put ecl time stepping parameters in separate struct
this to allow reuse in ebos simulators
2023-08-30 11:22:22 +02:00
Kai Bao
f7bd386402 adding the support for filtration_summary_keywords 2023-08-29 21:31:24 +02:00
Antonella Ritorto
5d9f8a88b4 LookUpCellCentroid used to search cell centroids in eclbasevanguard 2023-08-29 08:45:59 +02:00
Håkon Hægland
2f9b136bb1 Implement support for GECON keyword
Implement support for item 2 and 3 of the GECON keyword
2023-08-29 01:07:21 +02:00
Arne Morten Kvarving
46aae8cda6 changed: move EclInterRegFlows to opm/simulators/flow
no opm-models usage
2023-08-15 13:14:42 +02:00
Arne Morten Kvarving
dd1359bcf0 changed: move EclActionHandler to opm/simulators/flow
no opm-models usage
2023-08-15 12:10:01 +02:00
Arne Morten Kvarving
933f28b575 add tests for LogOutputHelper
reference data was created before the refactoring
2023-08-14 11:44:32 +02:00
Arne Morten Kvarving
38e9b5a100 changed: move helpers for calculation pressure averages to separate compile unit
for reuse purposes
2023-08-14 11:44:32 +02:00
Arne Morten Kvarving
91a4701fa4 added: add dedicated class for output of logs
start by moving output of cumulative logs to the new class
2023-08-14 11:44:32 +02:00
Atgeirr Flø Rasmussen
e6597b6b20
Merge pull request #4784 from hnil/gpu_solver_by_inheritance
- moded all bda/gpu spesific tings to separete class
2023-08-11 15:32:20 +02:00
Arne Morten Kvarving
20a9c3a0c3 EclProblem: put drsdtcon with friends in separate class 2023-08-11 11:43:39 +02:00
Arne Morten Kvarving
0883d46d50 rename ISTLSolverEbosWithGpu to ISTLSolverEbosBda
BDA also includes CPU (amgcl) solvers
2023-08-11 11:00:07 +02:00
Arne Morten Kvarving
896cb8484d added: option to disable the BDA solvers 2023-08-11 11:00:07 +02:00
hnil
07fb18422d hopefully fixed compilation and linking problems with WITHGPU 2023-08-11 11:00:07 +02:00
Atgeirr Flø Rasmussen
2529eec715
Merge pull request #4769 from akva2/eclproblem_properties_separate
EclProblem: put properties in separate header
2023-08-10 08:58:15 +02:00
Arne Morten Kvarving
7d8a58cf54 EclProblem: move properties to separate header 2023-08-09 14:24:55 +02:00
Arne Morten Kvarving
0be73b7a1b add new _impl.hh files to public headers 2023-08-09 11:31:32 +02:00
Arne Morten Kvarving
841d11efed changed: add a container for polymer solution components
makes it easy to pass data around to enable some refactoring
2023-08-01 13:45:14 +02:00
Atgeirr Flø Rasmussen
2ddbfc9519 Add all ebos headers to public header list. 2023-08-01 11:12:21 +02:00
Bård Skaflestad
ff9e6ca18a
Merge pull request #4745 from akva2/filtercake_separate_class
FilterCake: put code in separate class
2023-07-07 16:51:23 +02:00
Arne Morten Kvarving
1e7ca08702 changed: put handling of filtration particle volume in separate class 2023-07-07 16:08:17 +02:00
Bård Skaflestad
95d715b807 Add Parallel Calculation Support for WBPn/WPAVE
This commit adds a parallel calculation object derived from the serial
PAvgCalculator class.  This parallel version is aware of MPI
communicators and knows how to aggregate contributions from wells that
might be distributed across ranks.

We also add a wrapper class, ParallelWBPCalculation, which knows how to
exchange information from PAvgCalculatorCollection objects on different
ranks and, especially, how to properly prune inactive cells/connections.
2023-07-07 15:01:05 +02:00
Arne Morten Kvarving
8e7de83218 BlackoilModelEbos: put Nldd solver in separate class 2023-07-05 13:40:13 +02:00
Arne Morten Kvarving
4d35ec26de isNumericalAquiferCell: put in separate struct for easier reuse 2023-07-04 14:56:10 +02:00
Arne Morten Kvarving
c3847e8325 simplify cmake code for tuning tests
add a post command to the runSimulator script and use this to
execute the unit test at the end of the run
2023-07-03 09:05:45 +02:00
Bård Skaflestad
8c6a92356f
Merge pull request #4621 from vkip/use_mb_from_tuning
Use mass balance limit (XXXMBE) from TUNING with --enable-tuning=true
2023-06-30 13:04:49 +02:00
Arne Morten Kvarving
c746986dc7 ComponentName: add compile unit 2023-06-30 11:51:08 +02:00
Arne Morten Kvarving
35bb329022 put BlackoilModelEbos::ComponentName in separate header
more tidy and potentially easier to reuse
2023-06-30 11:18:27 +02:00
Vegard Kippe
a80f44a3be Updating variable name in SimulatorFullyImplicitBlackoilEbos.hpp and adding tests 2023-06-29 15:20:38 +02:00
Bård Skaflestad
77adc6ea3b Add Container for Dynamic WBPn Source Values
This commit adds a new container class,

    ParallelPAvgDynamicSourceData

which inherits from PAvgDynamicSourceData and provides a parallel
view of source contributions.  Member function

    collectLocalSources

will call the user-provided source term evaluation function for each
source location in its purview--typically those locations owned by
the current MPI rank.  Those values will be distributed to other MPI
ranks through member function synchroniseSources which will fill the
base class' 'src_' data member, and become available to clients
through read-only item spans.
2023-06-21 12:06:49 +02:00
Atgeirr Flø Rasmussen
712a7c8131 Add utilities that will be needed for NLDD solvers.
Includes:
 - SubDomain struct,
 - simple partitioning utilities for testing,
 - some matrix and vector manipulation functions,
 - tests for the above.
2023-06-09 10:08:29 +02:00
Kjetil Olsen Lye
c478e46c8d Setting CUDA device for MPI runs. 2023-05-31 21:47:46 +02:00
Kjetil Olsen Lye
ceb15e22e3 Expose CuISTL solver in FlexibleSolver. 2023-05-31 15:03:31 +02:00
Kjetil Olsen Lye
0269f7215c Added conversion preconditioner. 2023-05-31 14:55:48 +02:00
Kjetil Olsen Lye
9c28b485ef Added some missing header files. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
84305a7a8d Added conversion preconditioner. 2023-05-30 11:50:02 +02:00
Kjetil Olsen Lye
b30e6d79d5 Added CuSeqILU0 with the preconditioner adapter. 2023-05-30 11:49:58 +02:00
Kjetil Olsen Lye
0ca3c4f959 Added more detail header files. 2023-05-16 10:06:54 +02:00
Kjetil Olsen Lye
9418d5311d Added safe conversion from size_t to int. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
31e7ef04ba Added a CuSparse matrix wrapper. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
858d8b189b Added CuVector with tests. 2023-05-12 08:23:18 +02:00
Kjetil Olsen Lye
062d692c83 Added handles for cusparse and cublas. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
03a7fb6c9d Added error macros to check last CUDA error. 2023-05-09 15:20:34 +02:00
Kjetil Olsen Lye
bf9dd4e1dd Added safe call macros for CUDA, CuBlas and CuSparse. 2023-05-09 15:20:34 +02:00
Tong Dong Qiu
11ea024fbe Add test_rocsparseSolver 2023-04-06 13:14:19 +02:00
Tong Dong Qiu
91a3e238ce Add rocsparseSolver 2023-04-06 13:14:19 +02:00
Arne Morten Kvarving
7672e14890 RateConvert: introduce compile unit
move global rate reductions into it
2023-03-08 15:40:15 +01:00
Arne Morten Kvarving
64c4694bab NonlinearSolverEbos: put detectOscillations in compile unit 2023-03-01 10:46:51 +01:00
Arne Morten Kvarving
143139c6ee FlowMainEbos: move parallel file merge code to separate compile unit
avoid some headers in simulator objects
2023-02-28 14:05:51 +01:00