Commit Graph

16983 Commits

Author SHA1 Message Date
Bård Skaflestad
3a01da0a12
Merge pull request #5010 from totto82/cgfrf
Add output of connection dissolved gas and vaporized oil
2023-11-22 12:54:33 +01:00
Bård Skaflestad
925d5685a1
Merge pull request #5016 from akva2/fix_gen_headers_superbuild_ninja
fixed: also add dependency with ninja generator
2023-11-22 12:51:05 +01:00
Arne Morten Kvarving
0157385668 fixed: also add dependency with ninja generator 2023-11-22 12:27:31 +01:00
Arne Morten Kvarving
06d0e7f877
Merge pull request #4967 from multitalentloes/parallelize_cpu_dilu
OpenMP parallelize DILU with matrix reordering
2023-11-22 11:19:23 +01:00
Tobias Meyer Andersen
ee95223b27 Use std::optional to only allocate reordered matrix when using multiple threads 2023-11-22 10:10:29 +01:00
Tor Harald Sandve
4879896789 adapt to refactoring of getDFactor 2023-11-22 09:17:28 +01:00
Tobias Meyer Andersen
e22f4399a0 fix typo 2023-11-22 09:16:43 +01:00
Arne Morten Kvarving
b761b3f08b
Merge pull request #5012 from akva2/vendor_libfmt
vendor libfmt using FetchContent
2023-11-22 09:06:38 +01:00
Arne Morten Kvarving
2829ee1f9b
Merge pull request #5013 from akva2/janitoring
Some janitoring
2023-11-22 08:33:19 +01:00
Tor Harald Sandve
ecd9930225 dont scale d factor from wdfaccor 2023-11-21 17:51:36 +01:00
Tobias Meyer Andersen
5f6c97ff3b add OpenMP parallelized version of DILU.
Implement graphcoloring to expose rows in level sets that that can be
executed in parallel during the sparse triangular solves.
Add copy of A matrix that is reordered to ensure continuous memory reads
when traversing the matrix in level set order.
TODO: add number of threads available as constructor argument in DILU
2023-11-21 15:41:53 +01:00
Arne Morten Kvarving
842af08276 test_graphcoloring: cosmetics 2023-11-21 15:20:07 +01:00
Arne Morten Kvarving
3932cce392 fixed: never include config.h in a header 2023-11-21 15:12:48 +01:00
Arne Morten Kvarving
32dfa0b473 vendor libfmt using FetchContent 2023-11-21 15:10:26 +01:00
Tor Harald Sandve
ee77d30fe5 Add output of connection dissolved gas and vapporized oil 2023-11-21 14:29:40 +01:00
Arne Morten Kvarving
b00d3ca4bb
Merge pull request #5009 from multitalentloes/add_graphcoloring
add graph coloring
2023-11-21 10:57:03 +01:00
Tobias Meyer Andersen
e2a531dd65 replace loop with std function, remove print from test 2023-11-21 09:52:48 +01:00
Tobias Meyer Andersen
3cd1873771 add graph coloring 2023-11-20 16:57:56 +01:00
Bård Skaflestad
518df3fa7e
Merge pull request #5007 from akva2/fix_loghelper_test_logger
fixed: we need to initialize logger before parsing
2023-11-20 16:30:58 +01:00
Antonella Ritorto
6d180a7f91 compressedLevelZero added in AluCartIdxMapper, used in RelpermDiags 2023-11-20 15:56:17 +01:00
Arne Morten Kvarving
9af3a2f790 fixed: we need to initialize logger before parsing
parsing logs some errors which meant using uninitialized values
if no logger has been set
2023-11-20 15:06:52 +01:00
Arne Morten Kvarving
4ccc5cddc7
Merge pull request #5006 from akva2/janitoring
Some janitoring
2023-11-20 14:29:45 +01:00
Tobias Meyer Andersen
6ca84a16e1 test_dilu: cosmetics 2023-11-20 13:06:44 +01:00
Tobias Meyer Andersen
54b7f9c44f GraphColoring.hpp: cosmetics 2023-11-20 13:06:40 +01:00
Tobias Meyer Andersen
9309f96d8f GraphColoring.hpp: reorder headers 2023-11-20 13:06:34 +01:00
Atgeirr Flø Rasmussen
9c9fae26a8 Require initial assembly for subdomains with Gauss-Seidel. 2023-11-20 12:59:44 +01:00
Kai Bao
6ab809c69d
Merge pull request #5004 from blattms/control-mode-typo
Fixed typo: control model -> control mode.
2023-11-20 09:13:03 +01:00
Kai Bao
3b1ef932c2
Merge pull request #5003 from vkip/check_if_closed_before_hist_open
Check if well was closed this step before re-opening during history
2023-11-20 09:03:06 +01:00
Atgeirr Flø Rasmussen
77df0e613f
Merge pull request #4938 from bska/external-nldd-partition
Enable Loading Parallel NLDD Partition From File
2023-11-20 08:54:13 +01:00
Markus Blatt
de50fe5702 Fixed typo: control model -> control mode. 2023-11-20 08:29:24 +01:00
Bård Skaflestad
ea3b22480a Enable Loading Parallel NLDD Partition From File
This commit adds support for loading a three-column NLDD
partitioning scheme of the form

    MPI_Rank  Cartesian_Index  NLDD_Domain_ID

from a text file.  In an MPI run it is assumed that the first column
holds integers in the range 0..MPI_Size()-1, and typically that each
such integer is listed at least once.  In a sequential run, the MPI
rank column is ignored.

With this scheme we can load the same partition files that we write,
for increased repeatability and determinism, and we can also
experiment with externally generated NLDD partitions.
2023-11-17 17:39:17 +01:00
Vegard Kippe
abbcb4b148 Check if a well was closed this step before re-opening in history mode 2023-11-17 17:29:30 +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
c0c96123bc Add Support for Writing NLDD-Like Partitions in Parallel
This commit adds a new (hidden) debugging option,

    DebugEmitCellPartition (--debug-emit-cell-partition)

which, when set, will cause each rank to write a three-column text
file of the form

    MPI_Rank  Cartesian_Index  NLDD_Domain_ID

into the directory

    partition/CaseName

of the run's output directory.  That file will be named according to
the process' MPI rank, so the first column will be the same as the
file name.

The option is primarily intended for debugging the NLDD partitioning
scheme, so is mostly reserved for runs with low MPI sizes (e.g.,
less than 20).

While here, also make the MPIPartitionFromFile helper class aware of
this format so that we can use concatenated output files as an input
to the MPI partitioning algorithm for repeatability.
2023-11-17 09:17:46 +01:00
Bård Skaflestad
c559de51cf
Merge pull request #4996 from totto82/fixWDFAC
Fix wdfac and d factor in comdat
2023-11-17 09:09:22 +01:00
Atgeirr Flø Rasmussen
d069081b52
Merge pull request #4960 from daavid00/dispersivity
Support for mechanical dispersion
2023-11-17 08:50:00 +01:00
Atgeirr Flø Rasmussen
e2fde49d10
Merge pull request #4882 from bska/external-mpi-partition
Add Support for Reading MPI Partitioning From File
2023-11-17 08:27:06 +01:00
David Landa Marban
bc03821d57 Support for mechanical dispersion 2023-11-16 16:55:01 +01:00
Bård Skaflestad
610c45aa77 Add Support for Reading MPI Partitioning From File
This commit introduces new, experimental support for loading a
partitioning of the cells from a text file.  The name of the file is
passed into the simulator using the new, hidden, command line option

    --external-partition=filename

and we perform some basic checking that the number of elements in the
partition matches the number of cells in the CpGrid object.
2023-11-16 16:28:14 +01:00
Tor Harald Sandve
82cb3c3b53 Fix connection and well dfactor
The well dfactor is scaled by the well index

If postive the connection dfactor is threated as a well factor
and also scaled. If negative the connection dfactor is not scaled
2023-11-16 14:50:59 +01:00
Arne Morten Kvarving
960663e7b8
Merge pull request #4849 from akva2/vendor_pybind11_fetchcontent
changed: vendor pybind11 using FetchContent
2023-11-16 11:55:15 +01:00
Arne Morten Kvarving
9c38f01997 changed: vendor pybind11 using FetchContent 2023-11-16 10:02:04 +01:00
Arne Morten Kvarving
f7067897b3
Merge pull request #4982 from akva2/implement_rptsol_rptsched
Implement support for RPTSOL and RPTSCHED configuration of FIP output
2023-11-16 09:29:47 +01:00
Arne Morten Kvarving
db85303a3e added: write out RPTSOL configured FIPs to PRT file on simulation start
add a method in EclWriter to enable this.
this is called the first time a call is made to WriteOutput,
as that happens after initial conditions have been applied which
is required to get the proper output.

this also fixes a long-standing issue where the initial FIP state was
taken after the first time step.
2023-11-16 08:28:57 +01:00
Arne Morten Kvarving
1e41df3bca added: pass reportStep to FIP output functions
use this to decide whether or not to use the RPTSOL configuration
(reportStep == 0) or to read flags from RPTSCHED (reportStep > 0)
2023-11-16 08:12:55 +01:00
Kai Bao
e355990ac2
Merge pull request #4999 from vkip/always_open_historic_wells
Always check if wells on historic controls can be opened
2023-11-15 20:29:21 +01:00
Vegard Kippe
e0d1ff9c66 Always check if wells on historic controls can be opened 2023-11-15 19:04:48 +01:00
Atgeirr Flø Rasmussen
6fa81d54a1
Merge pull request #4864 from bska/parallel-nldd-partitioning-zoltan
Make Zoltan-Based NLDD Domain Partitioning MPI Aware
2023-11-15 15:34:36 +01:00
Bård Skaflestad
ed77c90238 Make Zoltan-Based Domain Partitioning MPI Aware
This commit switches the current implementation of
'partitionCellsZoltan()', i.e., 'partitionCells("zoltan", ...)' into
using the MPI-aware ParallelNLDDPartitioningZoltan utility.  In
doing so we make 'partitionCellsZoltan()' private since its
availability is not guaranteed.  We also slightly reorder the
parameters and switch from passing a "Grid" into passing a
"GridView" as an argument to partitionCells(), and specialise this
function for the known grid views in OPM Flow.

We extract the Zoltan-related parameters out to an Entity-dependent
helper structure and move the complexity of forming this type to a
new helper function, BlackoilModelEbosNldd::partitionCells().
2023-11-15 13:31:41 +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