Commit Graph

772 Commits

Author SHA1 Message Date
Arne Morten Kvarving
ddb7c65f97 move ebos/eclwriter.hh to opm/simulators/flow 2024-03-08 12:39:48 +01:00
Arne Morten Kvarving
8d667301cc move ebos/eclgenericwriter[_impl].[hh|cc] to opm/simulators/flow 2024-03-08 12:39:48 +01:00
Arne Morten Kvarving
e7094558ef move ebos/eclpolyhedralgridvanguard.hh to opm/simulators/flow 2024-03-08 12:39:48 +01:00
Arne Morten Kvarving
e168066003 move ebos/FIBlackOilModel.hpp to opm/simulators/flow 2024-03-08 12:39:48 +01:00
Arne Morten Kvarving
c9b3de16f1 move ebos/femcpgridcompat.hh to opm/simulators/flow 2024-03-08 12:39:48 +01:00
Markus Blatt
f04f4c5765
Merge pull request #5239 from akva2/move_flow_utilities_dedicated_file
changed: rename FlowMain.cpp to FlowUtils.cpp
2024-03-07 17:35:59 +01:00
Arne Morten Kvarving
5618a2b0d2 changed: put SupportsFaceTag in separate header
this way we don't have to pull in alugrid and polyhedralgrid
in simulator objects that does not use them
2024-03-07 12:21:21 +01:00
Kai Bao
75f38ca726
Merge pull request #5178 from akva2/baseaquifermodel_move
move ebos/eclbaseaquifermodel.hh to opm/simulators/flow
2024-03-06 12:47:51 +01:00
Arne Morten Kvarving
233d4c90ac ebos/collecttoiorank: move to opm/simulators/flow 2024-03-06 09:30:21 +01:00
Arne Morten Kvarving
8d033f94de move ebos/eclbaseaquifermodel.hh to opm/simulators/flow 2024-03-06 09:17:19 +01:00
Arne Morten Kvarving
fdb285c03a changed: rename FlowMain.cpp to FlowUtils.cpp
and add a dedicated header.

this way we don't need to pull in FlowMain.hpp for the prototypes,
avoiding pulling in the entire simulator machinery just to build
some simple utility functions.
2024-03-06 07:57:25 +01:00
Kai Bao
9f13a25ebc
Merge pull request #5175 from akva2/move_alugrid
Move AluGrid files from ebos to opm/simulators/flow
2024-03-06 00:02:12 +01:00
Arne Morten Kvarving
b6cbf513bc move ebos/ecloutputblackoilmodule.hh to opm/simulators/flow 2024-03-04 13:09:48 +01:00
Arne Morten Kvarving
41319eab7d move ebos/eclgenericoutputblackoilmodule.[hh|cc] to opm/simulators/flow 2024-03-04 13:03:42 +01:00
Markus Blatt
5bafd76b94
Merge pull request #5230 from akva2/fractioncalculator_split
FractionCalculator: put in separate translation unit
2024-02-29 08:22:59 +01:00
Bård Skaflestad
d1d22668ea Add Utility for Region-Based Phase-Filled Averages
The initial use case is calculating the phase-filled pore-volume
weighted average of the fluid mass densities per PVT region.  This
value goes into calculating depth-corrected per-cell phase pressure
values such as the BPPO and BPPG summary vectors.

This class manages a single linear array which separately tracks the
averages' numerators and denominators as running sums per region and
region set.  We pick this data structure to simplify the cross-rank
reduction needed in MPI parallel runs.  Client code is expected to
add individual per-cell and per-phase contributions using the
addCell() member function and then call the accumulateParallel()
member to affect the cross-rank reduction.  The averages will then
be available through the fieldValue() and value() member functions.

As a further view towards the initial use case, we track two
different types of average per phase--one for the phase-filled
volume and one for the pore-volume filled volume.  The latter is the
average we would get for the case of the phase saturation being one
throughout the region.  This alternative value is the fallback
option for the case of the phase saturation being identically zero
throughout the region.
2024-02-28 12:08:24 +01:00
Arne Morten Kvarving
33dcc0bd50 FractionCalculator: put in separate translation unit 2024-02-27 13:00:23 +01:00
Arne Morten Kvarving
0039c1f25f move ebos/eclalugridvanguard.hh to opm/simulators/flow 2024-02-23 15:27:53 +01:00
Arne Morten Kvarving
f95c114716 move ebos/alucartesianindexmapper.hh to opm/simulators/flow 2024-02-23 15:27:28 +01:00
Arne Morten Kvarving
3087950c35
Merge pull request #5181 from akva2/move_gradient_calculator
move ebos/ecldummygradientcalculator.hh to opm/simulators/flow
2024-02-23 15:24:44 +01:00
Markus Blatt
cc9d9bab41
Merge pull request #5193 from akva2/move_timestepping_params
move ebos/ecltimesteppingparams.hh to opm/simulators/timestepping
2024-02-23 10:13:24 +01:00
Arne Morten Kvarving
846da295d6 move ebos/ecltimesteppingparams.hh to opm/simulators/timestepping 2024-02-19 09:28:50 +01:00
Arne Morten Kvarving
7dcc411397 Flows: simplify data structure 2024-02-16 14:51:51 +01:00
Arne Morten Kvarving
d738ad2740 move ebos/ecldummygradientcalculator.hh to opm/simulators/flow 2024-02-12 11:19:23 +01:00
Arne Morten Kvarving
6b72b7fa42
Merge pull request #5160 from akva2/avoid_build_damaris_files_disabled
fixed: do not build Damaris files if it is not enabled
2024-02-08 10:16:59 +01:00
Arne Morten Kvarving
40531a89a4 fixed: do not build Damaris files if it is not enabled 2024-02-06 17:47:39 +01:00
Markus Blatt
3ae685d47c
Merge pull request #5146 from akva2/flowmain_drop_ebos
rename FlowMainEbos to FlowMain
2024-02-06 16:24:33 +01:00
Arne Morten Kvarving
1ec34f0da2 EclActionHandler: rename to ActionHandler 2024-02-06 10:43:30 +01:00
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
Kai Bao
248f6b73d9 WIP of supporting AQUFLUX from simulator side 2023-02-21 13:20:36 +01:00
Arne Morten Kvarving
6c9e887669 add simple inspection tool for .OPMRST files 2023-02-16 13:47:54 +01:00
Arne Morten Kvarving
4b07f6d010 added: HDF5Serializer
this takes the serialization data and stores it in a hdf5 file,
alternatively reads the data and deserializes.

will be used for restarting purposes
2023-02-14 13:15:43 +01:00
Arne Morten Kvarving
f2a14b2d07 SimulatorTimer: add serialization support 2023-02-13 18:01:16 +01:00
Arne Morten Kvarving
c6632d5b83 added: file for extra serialization packers
for now, it holds a packer for boost::gregorian::date
2023-02-13 17:53:05 +01:00
Arne Morten Kvarving
d73d52e162 added: simple HDF5File class
bare minimum to enable reading and writing byte arrays
2023-02-06 09:44:50 +01:00
Arne Morten Kvarving
e5dc2996e2 changed: move banner printing to separate compile unit 2023-02-01 22:54:55 +01:00
Arne Morten Kvarving
1729c1a414 Main: move some code to separate compile unit 2023-01-18 12:26:10 +01:00
Tor Harald Sandve
8d37ded703 Suppot EQUIL + WATER + GAS 2023-01-13 10:16:48 +01:00
Arne Morten Kvarving
c707d91684 WellConnectionAuxiliaryModule: add a typetag independent base class
and put its code in a compile unit. allows embedding WellConnections.hpp
2023-01-12 13:06:25 +01:00
Bård Skaflestad
858ca8fa49 Output Non-Linear Convergence to Separate File if Requested
This commit enables outputting non-linear convergence metrics, i.e.,
the MB and CNV values, per phase, for each non-linear iteration in
each timestep.  If the user passes the option value "iterations" to
the --extra-convergence-output command line option, this commit will
create a new output file, CASE.INFOITER, that holds

    * report step
    * time step within that report step
    * elapsed time
    * MB and CNV values per phase
    * well convergence status

for each non-linear iteration.

We use an asynchronous file writing procedure and confer ownership
of the report step's unprocessed convergence reports to this
procedure just before the end of

    SimulatorFullyImplicitBlackoilEbos::runStep()

At that point, the convergence reports are about to go out of scope.
The asynchronous protocol uses a dedicated queue of output requests,
class ConvergenceReportQueue, into which the producer-i.e., member
function runStep()-inserts new convergence reports and from which
the output thread, ConvergenceOutputThread::writeASynchronous(),
retrieves those requests before writing the file data.
2022-12-20 10:14:13 +01:00
Arne Morten Kvarving
aa684a10b8 added: MultisegmentWellSegments
this is a container class for per-segment properties in MultisegmentWell
2022-12-19 15:55:20 +01:00
Arne Morten Kvarving
e1fccd47dc added: MultisegmentWellPrimaryVariables
this is a container class for the primary variables in
multisegment well
2022-12-19 13:05:39 +01:00
Bård Skaflestad
63654a73fc Don't Output INFOSTEP File by Default
This commit introduces a new helper class,

    ConvergenceOutputConfiguration

which parses comma separated option strings into a runtime
configuration object for whether to output additional convergence
information and, if so, what information to output.

Supported option string values are

  * "none"       -- Dont want any additional convergence output.

  * "steps"      -- Want additional convergence output pertaining to the
                    converged solution at the end of each timestep.

  * "iterations" -- Want additional convergence output pertaining to each
                    non-linar ieration in each timestep.

Option value "none" overrides all other options.  In other words, if the
user requests "none", then there will be no additional convergence
output, even if there are other options in the option string.

We add a new option, ExtraConvergenceOutput (command line option
--extra-convergence-output), which takes a string argument expected
to be a comma separated combination of these options.  The default
value is "none".  Finally, make the INFOSTEP file output conditional
on the user supplying "steps" as an argument to the new option.
2022-12-15 13:02:09 +01:00
Arne Morten Kvarving
4ebde4e003 added: MultisegmentWellAssemble
this handles assembly of the equation system for multisegment well.
start by moving assembleControlEq into the new class
2022-12-05 11:07:09 +01:00
Arne Morten Kvarving
57f09050fc add: MultisegmentWellEquations
this is a container for the multisegment well equation system
2022-12-01 10:25:28 +01:00
Arne Morten Kvarving
f9b570ec84 remove test_ecl_output
the tests done here is already done (better) elsewhere
2022-11-30 15:30:49 +01:00
Arne Morten Kvarving
b08c165384 rename StandardWellGeneric to StandardWellConnections 2022-11-25 12:54:56 +01:00
Markus Blatt
42fdc38ae0
Merge pull request #4273 from Tongdongq/add-test
Add test for cusparseSolver
2022-11-22 13:55:11 +01:00
Arne Morten Kvarving
15d49e745e added: StandardWellPrimaryVariables
this is a container class for the primary variables in
standard well
2022-11-22 13:11:17 +01:00
Arne Morten Kvarving
10e967653b added: StandardWellAssemble
this handles assembly of the equation system for standardwell.
start by moving assembleControlEq into the new class
2022-11-22 12:22:18 +01:00
Arne Morten Kvarving
a8c912ccfa add: StandardWellEquations
this is a container for the standard well equation system
2022-11-22 10:36:54 +01:00
Tong Dong Qiu
21b23b7aa4 Combine multiple defines into one 2022-11-18 13:09:39 +01:00
Tong Dong Qiu
65128d1616 Removed unused reordering functions, file, header inclusions 2022-11-17 09:38:23 +01:00
Tong Dong Qiu
35287a61ff Remove FPGASolver and references 2022-11-17 09:38:01 +01:00
Markus Blatt
4988f98060
Merge pull request #4178 from Tongdongq/rocalution
Add rocalutionSolver
2022-11-09 16:44:35 +01:00
Tong Dong Qiu
8ef4e23d16 Fix CMake variables 2022-11-03 15:47:38 +01:00
Tong Dong Qiu
7e2a6800de Add test for rocalutionSolver 2022-11-03 15:47:32 +01:00
Tong Dong Qiu
ea73a1bf3c Add rocalutionSolver 2022-11-02 15:55:07 +01:00
Bård Skaflestad
73466da197
Merge pull request #4224 from akva2/wellinterface_eval_rename_assemble
Rename WellinterfaceEval to WellAssemble
2022-11-01 13:51:08 +01:00
Arne Morten Kvarving
b700ec9b53 rename WellInterfaceEval to WellAssemble 2022-11-01 12:55:00 +01:00
Arne Morten Kvarving
06686702ea added: WellConstraints
this will hold the code for well constraints.
start by moving activeProductionConstraint to the new class
2022-11-01 08:56:41 +01:00
Bård Skaflestad
dea582d296
Merge pull request #4197 from akva2/well_group_constraints
Add class for well group constraints
2022-10-31 16:12:17 +01:00
Arne Morten Kvarving
cd734f7a0d added: WellBhpThpCalculator
this will hold the code for THP/BHP calculations.

first method moved there is wellHasThpConstraints
2022-10-31 13:15:18 +01:00
Arne Morten Kvarving
698b748270 added: WellGroupConstraints
this holds the code for well group constraints.
move checkGroupConstraintsInj into the new class
2022-10-31 13:14:50 +01:00
Arne Morten Kvarving
cfd0eda7de added: WellGroupControls
this holds the code for well group controls.
move getGroupInjectionControl into the new class
2022-10-31 08:52:19 +01:00
Bård Skaflestad
7b499c4f0a
Merge pull request #4199 from akva2/well_test
Add class for well tests
2022-10-29 13:49:22 +02:00
Arne Morten Kvarving
dc607ce3ff add BlackoilWellModelGuideRates
start by moving getGuideRateValues
2022-10-28 22:40:38 +02:00
Bård Skaflestad
d1d5ff2831
Merge pull request #4208 from akva2/well_convergence
Add class for checking well convergence
2022-10-28 21:26:17 +02:00
Arne Morten Kvarving
0f8ca0c529 add WellConvergence
move checkConvergenceControlEq into it
2022-10-28 19:47:55 +02:00
Arne Morten Kvarving
2d9d452fff add BlackoilWellModelConstraints
start by moving hasTHPConstraints
2022-10-28 18:21:43 +02:00
Arne Morten Kvarving
0b32c1afd9 add BlackoilWellModelRestart
start by moving loadRestartConnectionData
2022-10-28 15:13:06 +02:00
Arne Morten Kvarving
9367335fe3 added: WellTest
this will hold the code for well tests.
start by moving checkMaxRatioLimitWell to the new class
2022-10-24 10:55:32 +02:00
Markus Blatt
3e680e41f5
Merge pull request #4136 from Tongdongq/remove_reordering
Remove reordering for opencl
2022-10-19 15:30:01 +02:00
Atgeirr Flø Rasmussen
a9c1a0998e Use MPI_FOUND not MPI_Found. 2022-10-19 14:13:39 +02:00
Arne Morten Kvarving
ac6c7d82f5 fixed: damaris depends on mpi 2022-10-18 13:12:01 +02:00
Markus Blatt
fc96ef86c1 [bugfix] Unconditionally compile WellContributions.cpp et al
Otherwise we get undefined references. Fixes problems introduced with #4157
2022-10-17 16:51:53 +02:00
Elyes Ahmed
31f5ff3f0e fixing initDamarisInitXmalFile in Cmake_Lists_FXiles 2022-10-13 12:23:06 +02:00
Atgeirr Flø Rasmussen
76bacff3cf Move XML template to separate file, fix formatting, and use path. 2022-10-13 12:23:06 +02:00
Elyes Ahmed
4e7d9b5900 adding a constraint to let flow compile without having damaris necessarly 2022-10-13 12:23:06 +02:00
Joshua Bowden
fa7af3540c Changes needed to add Damaris functionality. The current state is that we output the pressure field and we use both HDF5 and parallel HDF5.
Damaris initialization is added after InitMpi but before starting the simulation. Damaris will invoke a separate core for writing in
parallel and leave the rest of cores for the simulator. The main changes are in main where start_damaris and then in eclwriterm where
we use damaris to output the PRESSURE. To test Damaris one can use --enable-damaris-output=true and to use parallel HDF5 one can use
--enable-async-damaris-output=true (false is the default choice)
2022-10-13 12:23:06 +02:00
Tong Dong Qiu
860c209bac Removed deleted header reference 2022-10-04 14:23:16 +02:00
Bård Skaflestad
66fac184ad
Merge pull request #4111 from goncalvesmachadoc/test-rvw
Add unit tests for EQUIL with rvw
2022-10-02 22:11:04 +02:00
goncalvesmachadoc
c82e769697 fixes 2022-09-20 10:56:54 +02:00
goncalvesmachadoc
0a91b773d8 test also with live oil 2022-09-16 14:17:53 +02:00
Arne Morten Kvarving
c1c850538a added: command line option for zoltan customization
modeled after the linsolver support. a few built-in presets,
as well as reading options from a json file
2022-09-16 13:51:29 +02:00
Arne Morten Kvarving
b1092c1a12 changed: refactor MPIPacker
to limit the overload party, we put packing details for
specific types in separate structs.
emit compiler error if unsupported type is given,
better to detect this on compile time rather than runtime
2022-09-15 14:04:41 +02:00
goncalvesmachadoc
a5a9f5ee4e addtestfordeadoilwithhumid&wetgas 2022-09-14 16:11:36 +02:00
Bård Skaflestad
56c653235f
Merge pull request #4087 from akva2/rename_serialization
Rename serialization files
2022-09-13 10:48:33 +02:00
Arne Morten Kvarving
8e2b385f4d changed: put parts of ISTLSolverEbos in separate compile unit
in particular this means simulator objects are now not dependent
on FlexibleSolver.hpp and BdaBridge.hpp
2022-09-12 12:44:56 +02:00
Markus Blatt
a4360b4961
Merge pull request #4028 from akva2/reduce_dup
changed: get rid of duplicate MatrixBlock headers/classes
2022-09-09 15:30:30 +02:00
Arne Morten Kvarving
de0018350a changed: rename test_ParallelRestart to test_ParallelSerialization 2022-09-08 13:37:16 +02:00
Arne Morten Kvarving
1838b39d2e changed: split ParallelRestart.hpp/cpp in two bits
the mpi serialization bit is put in MPISerializer.hpp/cpp,
while the parallel restart bit stays in ParallelRestart
2022-09-08 13:36:51 +02:00
Bård Skaflestad
93b059eca1
Merge pull request #4046 from akva2/mswellhelper_priv
make MSWellHelpers templates private
2022-09-01 16:44:15 +02:00
Arne Morten Kvarving
5052a09d6e make MSWellHelpers templates private 2022-09-01 15:17:04 +02:00
Arne Morten Kvarving
69db0dd175 wellhelpers: make templates private
to increase header encapsulation
2022-09-01 13:37:11 +02:00
Arne Morten Kvarving
1a348c0d29 changed: get rid of duplicate MatrixBlock headers/classes
this has already led to some confusion. move some of the code
upstream to opm-models and remove the rest of the duplicated code.

the remainder of MatrixBlock.hpp is renamed to SmallDenseMatrixUtils.hpp
2022-08-25 12:48:53 +02:00
Bård Skaflestad
a56cd6752c
Revert "changed: reduce some code duplication" 2022-08-24 20:34:52 +02:00
Arne Morten Kvarving
447d77b579 changed: get rid of duplicate MatrixBlock headers/classes
this has already led to some confusion. move some of the code
upstream to opm-models and remove the rest of the duplicated code.

the remainder of MatrixBlock.hpp is renamed to SmallDenseMatrixUtils.hpp
2022-08-24 15:54:01 +02:00
Arne Morten Kvarving
3ef07d7f62 changed: put ParallelOverlappingILU0 in separate compile unit
i chose to split in a separate _impl file because this code is so
generic that there may be downstream users who want to use on other
matrix types than what we use in opm-simulators.
2022-08-22 11:21:31 +02:00
Arne Morten Kvarving
ec089af048 changed: split PreconditionerFactory in _impl file
and put instances in separate cpp files.
2022-08-22 09:33:15 +02:00
Arne Morten Kvarving
371b2592f5 changed: put ParallelIstlInformation in separate compile unit 2022-08-18 09:15:28 +02:00