Commit Graph

88 Commits

Author SHA1 Message Date
Arne Morten Kvarving
fff46ad74e MPIPartitionFromFile: move implementation to generic translation unit 2024-02-16 13:54:38 +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
Atgeirr Flø Rasmussen
d069081b52
Merge pull request #4960 from daavid00/dispersivity
Support for mechanical dispersion
2023-11-17 08:50:00 +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
Markus Blatt
9dac9de6a1
Merge pull request #4900 from hnil/fix_nnz_thermal
fixed error using NNC with thermal
2023-10-02 11:08:24 +02:00
hnil
7ff4605ccc -- fixed error using NNZ with thermal
also:
-- fixed but not checked for diffusion
-- bug for zero thermal diffusion (nan in derivatives)
-- added checking of consistency between input and taged phases
2023-09-29 13:26:31 +02:00
Antonella Ritorto
92a1d3caab Separating LGRs in rank 0 cellCentroids_ 2023-09-28 16:03: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
hnil
13308ed2af tpfa linearizer for thermal used for co2store and blackoil
-- add new function need for tpfa linearizer in thermal
-- set tpfa linearizer for blackoil with energy
-- set tpfa linearizer for gasoil and energy which include co2store
-- NB diffusion is disabled for this simulators
2023-08-29 16:03:44 +02:00
Antonella Ritorto
5d9f8a88b4 LookUpCellCentroid used to search cell centroids in eclbasevanguard 2023-08-29 08:45:59 +02:00
Arne Morten Kvarving
a976ec5c13 eclcpgridvanguard.hh: cleanup headers 2023-08-02 11:43:39 +02:00
Arne Morten Kvarving
90821b5a45 add some timing blocks 2023-06-19 11:55:34 +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
07283aa780 EclCpGridVanguard: some modernization
- typedef -> using
- use constexpr
2022-08-10 12:44:53 +02:00
Elyes Ahmed
5c2b60bcd0 rebasing 2022-07-28 20:40:34 +02:00
Bård Skaflestad
7537d7ab95 Split Grid Distribution Out to Helper Functions
Mostly to reduce the number of nested scopes in doLoadBalance_() and
to make the data flow a little easier to track for human readers.
While here, also use down-casts to pointer instead of references.
Doing so replaces try/catch blocks with simpler if/else blocks.

Reimplement face transmissibility calculation/extraction loop in
terms of helper functions elements() and intersections().
2022-06-08 16:14:39 +02:00
Atgeirr Flø Rasmussen
1aed863956 Re-add grid view argument to doLoadBalance_(). 2022-06-08 15:33:32 +02:00
Bård Skaflestad
af94be5023 Use Consistent Grid Views for Transmissibility Calculation
There was an implied assumption that the "gridv" parameter would
coincide with "grid_->leafGridView()".  Make this assumption
explicit.
2022-06-01 14:34:28 +02:00
Tong Dong Qiu
61f693dbaf reenable normal opencl
Rebased
2022-04-21 17:18:54 +02:00
Tong Dong Qiu
e360c00b73 add block-jacobi partitioner option. Add block-jacobi matrix for use in OpenCL preconditioner
Rebased
2022-04-21 17:18:32 +02:00
Markus Blatt
457d270bdf [refactor] Move cell centroid lookup magic to vanguard for reuse.
In addition to transmissibilities We will need this for the tracers,
too, and should prevent code duplication.
2021-10-04 09:47:03 +02:00
Arne Morten Kvarving
86fc165af6 remove template parameters for enableEnergy/Diffusion in transmissibility
- the diffusion one is basically done on runtime anyways
- the energy one gives some small code elimination gains
  however, it complicates the writing of downstream templates.
2021-05-20 08:53:40 +02:00
Arne Morten Kvarving
eaa09a3905 quell warnings in serial build 2021-05-13 22:40:39 +02:00
Arne Morten Kvarving
7ff44d9093 ecltransmissibility: separate from typetag
this allows using explicit template instantation to only
compile this code per grid, not per simulator object
2021-05-12 12:10:29 +02:00
Arne Morten Kvarving
215a8b7c25 eclcpgridvanguard: split in typetag dependent and typetag-independent parts 2021-05-11 11:30:35 +02:00
Kai Bao
2ee51c2e0d fixing the serial running due to including of eclmpiserializer.hh 2021-04-21 15:59:26 +02:00
Kai Bao
06fa81f4e3 following interface change for processEcipseFormat 2021-04-20 11:27:15 +02:00
Kai Bao
9f360c5c6d fixing the mistakes due to rebasing 2021-04-14 13:16:30 +02:00
Kai Bao
364187aa1a updating NNC after grid processing for parallel case
numerical aquifers might modify NNCs during grid processing, while it
only updates in the root process. Other processes need to be updated
too.
2021-04-14 09:47:57 +02:00
Joakim Hove
138e3b2af3 Report cell volume removed due to MINPV/MINPVV 2021-04-12 21:44:42 +02:00
Kai Bao
6061b5f5b0 updating the interface of function processEclipseFormat 2021-03-23 20:27:10 +01:00
Bård Skaflestad
c220d7f127 Push 'corners' Object into Assert
That way we don't get "unused variable" warnings when someone
defines NDEBUG.  While here, also switch to using Geometry
references where appropriate to avoid needlessly copying Geometry
objects.
2021-03-19 09:42:27 +01:00
Tor Harald Sandve
3df75f5ab6
Merge pull request #3076 from totto82/drsdt_dyn
Implement convective dissolution rate
2021-03-18 08:45:46 +01:00
Joakim Hove
b1c9e3a2cf Add comment about distribution 2021-03-01 16:51:10 +01:00
Tor Harald Sandve
9aa4c415ad Implement convective dissolution rate
The convective DRSDT is activated with DRSDTCON
2021-02-23 12:45:50 +01:00
Markus Blatt
e1e1ff9a17 Added support for external load balancer to EclCpGridVanguard.
You can use EclCpGridVanguard::setExternalLoadBalancer() to
set an external funtion that creates a vector of integers (containing
the partition for each cell) from the grid. If it is set then this
information will be used for loadbalancing, otherwise ZOLTAN.
2021-01-26 21:12:04 +01:00
Markus Blatt
f464d93f15 Activate distributed standard wells.
We introduce a new parameter --enable-distributed-wells=<true|false>
for this. During startup we check that the model either only has
standard wells or that multisegement wells are actively interpreted
as standard wells (by way of passing --enable-multisegment-wells=false
as an option).
2021-01-25 15:05:24 +01:00
Tor Harald Sandve
3cd0d9c29f dynamically set zoltan imbalance tolerance 2021-01-06 11:52:48 +01:00
Tor Harald Sandve
6cf91e7f19 Get compressed to cartesian mapping and depths from the vanguard 2020-12-11 12:48:01 +01:00
Markus Blatt
19bebcefe2 Broadcast schedule another time after filtering connection on rank 0
Only after rank zero does the filtering the schedule the well
definitions in there are guarateed to have no perforations to inactive
cells. Therefore we broadcast the schedule another time to publish
this to all processes.

Previously, we did the filtering locally on these processes bit that
did also remove perforations to cells that are active globally but
not locally. That seems very hard to work with when allowing
distributed wells.
2020-11-24 22:46:49 +01:00
Markus Blatt
d8eaef3271 Fixed and updated comment 2020-11-19 15:29:45 +01:00
Markus Blatt
46cb9012c0 Do not filter connections on the schedule of the loadbalanced grid.
It would remove perforated cells from wells that cross the local
domain's border. That would make it impossible to figure out the
first connection. In addition we would not be able to check that
the connections exist (as rank 0 would have the complete information
-> inconsistency).
2020-11-19 15:29:45 +01:00
Atgeirr Flø Rasmussen
c6203e9bec Add command line parameter --serial-partitioning. 2020-09-29 16:14:45 +02:00
Markus Blatt
1d94357558 Refactored how well information is exported after load balancing.
Previously, we exported an unordered map containing all names of
wells that are not present in the local part of the grid.

As we envision to have wells that are distributed across multiple
processors, this information does not seem to be enough. We need
to be able to set up communication for each well. To do this we need
to find out who handles perforations of each well.

We now export a full list of well name together with a boolean
indicating whether it perforates local cells (vector of pair of string
and bool).
2020-09-22 20:04:01 +02:00
Arne Morten Kvarving
3b21a8a481 changed: remove SET_TYPE_PROP macro usage 2020-08-28 10:44:53 +02:00
Arne Morten Kvarving
e8248b44ff changed: remove NEW_TYPE_TAG macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
74fac38d85 changed: remove GET_PROP_TYPE / GET_PROP macro usage 2020-08-27 08:19:39 +02:00
Arne Morten Kvarving
70908d9017 changed: remove BEGIN_PROPERTIES/END_PROPERTIES macro usage 2020-08-21 15:50:35 +02:00
andrthu
3d0d0f9624 Remove GhostLast ILU 2020-03-13 15:03:31 +01:00