Arne Morten Kvarving
4f9f0f921f
changed: use Serializer from opm-common
2022-09-16 13:12:11 +02:00
Arne Morten Kvarving
7362386d3d
changed: split out serialization in separate class
...
make it a template over a packer.
make EclMpiSerializer an instance of this template with
a MPI based packer, and move broadcasting functionality
to the new class
2022-09-16 13:11:45 +02:00
Arne Morten Kvarving
975e096d4c
changed: make container handlers in eclmpiserializer protected
...
users only use operator()
2022-09-16 11:59:40 +02:00
Arne Morten Kvarving
62f22062dd
eclmpiserializer: consistently make immutable access the exception
...
by nature of the operation, the data should be immutable on sender and
mutable on receiver. this way we atleast keep data immutable where we can,
and immutable access is explicitly marked by casts.
2022-09-16 11:57:23 +02:00
Arne Morten Kvarving
d31620b38b
eclmpiserializer: simplify handling
...
everything can now be done through operator()
2022-09-16 11:57:23 +02:00
Arne Morten Kvarving
9cbb0aa05e
added: pack array/vector of pod in one op
2022-09-15 14:04:41 +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
Arne Morten Kvarving
3a19ab31bd
Merge pull request #4106 from akva2/serializer_handle_tuples
...
changed: handle tuples in eclmpiserializer
2022-09-15 12:59:13 +02:00
Arne Morten Kvarving
3c389d5ece
changed: handle pairs as tuples in eclmpiserializer
2022-09-15 11:19:04 +02:00
Arne Morten Kvarving
5c78925981
fixed: wrong root rank in variadic broadcast
...
change the test to broadcast from rank 1 instead of 0
so this bug does not resurface
2022-09-14 19:38:24 +02:00
Arne Morten Kvarving
fdb2743ca9
changed: handle tuples in eclmpiserializer
...
thus we can remove support in MPIPacker
2022-09-13 15:54:37 +02:00
Arne Morten Kvarving
924ba450d2
fixed: remove_cvr_t should also remove volatile
2022-09-13 13:42:13 +02:00
Arne Morten Kvarving
f159eb524b
changed: handle all vectors in eclmpiserializer
...
thus we can remove support in MPIPacker
2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
6e83e349d6
changed: move variadic broadcast into EclMpiSerializer
2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
9e6574115a
EclMpiSerializer: add handler for vector<bool>
2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
ebdfb0fc6a
EclMpiSerializer: allow specifying root rank in broadcast/append
2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
dfa870c313
changed: handle all sets in eclmpiserializer
...
thus we can remove support in MPIPacker
2022-09-13 12:39:07 +02:00
Arne Morten Kvarving
4cd9272a76
changed: handle all arrays in eclmpiserializer
...
thus we can remove support in MPIPacker
2022-09-13 12:08:39 +02:00
Arne Morten Kvarving
603e44068c
changed: handle all maps in eclmpiserializer
...
thus we can remove support in MPIPacker
2022-09-13 11:32:37 +02:00
Arne Morten Kvarving
053dfc7ce5
eclmpiserializer: fix is_vector predicate
...
allow custom allocator
2022-09-13 10:49:54 +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
Arne Morten Kvarving
ee0d482b32
added: eclmpiserializer::append
...
this broadcasts from the root rank, and then appends
the results to existing data on the others
2022-09-06 15:36:30 +02:00
Arne Morten Kvarving
2d2f25b778
added: map predicate
...
use it to allow for serializing nested maps
2022-09-06 10:32:48 +02:00
Bård Skaflestad
b3e517a8ef
Merge pull request #4055 from akva2/eclmpiserializer_map
...
eclmpiserializer: improve map handler
2022-09-02 21:01:47 +02:00
Arne Morten Kvarving
ade4cf978e
eclmpiserializer: improve map handler
...
use has_serializeOp trait
2022-09-02 17:20:46 +02:00
Arne Morten Kvarving
2dd6433f16
eclmpiserializer: improve set handler
...
use has_serializeOp trait
2022-09-02 17:18:03 +02:00
Bård Skaflestad
a372a4d09e
Merge pull request #4052 from akva2/eclmpiserializer_vector
...
eclmpiserializer: improve vector handler
2022-09-02 17:10:10 +02:00
Bård Skaflestad
e3bc041909
Merge pull request #4051 from akva2/eclmpiserializer_array
...
eclmpiserializer: improve array handler
2022-09-02 17:09:41 +02:00
Arne Morten Kvarving
e2eac12593
eclmpiserializer: improve vector handler
...
use has_serializeOp trait
2022-09-02 14:36:42 +02:00
Bård Skaflestad
dff553db59
Merge pull request #4050 from akva2/eclmpiserializer_ptr
...
eclmpiserializer: improve ptr handler
2022-09-02 14:30:33 +02:00
Arne Morten Kvarving
3ed2a25470
eclmpiserializer: improve array handler
...
use has_serializeOp trait
2022-09-02 14:12:09 +02:00
Arne Morten Kvarving
9be60f2b3f
eclmpiserializer: improve ptr handler
...
use has_serializeOp trait
2022-09-02 14:08:29 +02:00
Arne Morten Kvarving
a9eb6159ae
eclmpiserializer: improve pair handling
...
use has_serializeOp trait
2022-09-02 13:54:39 +02:00
Arne Morten Kvarving
8bd2af1517
added: generalize variant serialization handling
2022-09-01 13:24:17 +02:00
Arne Morten Kvarving
2c0ff6f81e
consistently use ParallelCommunication.hpp for communication definition
2022-09-01 12:26:11 +02:00
Joakim Hove
059efcd260
Add serializer support for std::array<T,N>
2021-10-25 10:50:34 +02:00
Elyes Ahmed
f53c597f90
Replacing use of MPI_COMM_WORLD with a variable communicator.
2021-10-05 13:07:52 +02:00
Bård Skaflestad
2dedb62363
Serializer: Detect Existence of 'serializeOp' Member Function
...
More direct test than looking for a 'serializeObject' member.
2021-09-29 13:41:01 +02:00
Joakim Hove
1b7ef65509
Add serializer support for set - closely modelled after map
2021-09-24 18:55:54 +02:00
Markus Blatt
e6c8f6985c
Remove some shawowed variable warnings.
2021-09-13 12:08:13 +02:00
Joakim Hove
3d226abd24
Remove references to RestartConfig
2021-03-26 08:03:07 +01:00
Tor Harald Sandve
f4ac7f555b
Add support for explicit guiderate for injection groups
...
With this commit the guiderate logic used for the production groups is also used for injectors
This allows for setting guiderates explicit at different group levels
Only RATE, NETV and VOID guiderate type is suppored.
2021-03-16 15:56:31 +01:00
Arne Morten Kvarving
49cc70f49c
fixed: avoid deadlocks in parallel if serialization throws
2020-09-24 11:00:37 +02:00
Arne Morten Kvarving
dfd2109665
added: support for std::optional in eclmpiserializer
2020-09-23 12:23:18 +02:00
Joakim Hove
3c565ef59e
Use const_cast< > in variant serialization
2020-08-27 11:01:22 +02:00
Joakim Hove
cc32189a2e
Handle serialization of std::variant<T0,T1>
2020-08-25 22:37:24 +02:00
Joakim Hove
754f74df01
Adapt variant serialization to four types
2020-06-12 07:21:46 +02:00
Joakim Hove
a1306a62fc
Add serialization of std::variant<T1,T2,T3>
2020-06-10 20:41:14 +02:00
Arne Morten Kvarving
a456b7dff5
fixed: broadcasting an int and receiving as a size_t is a very bad idea
...
pointy-hat: me
2020-03-30 11:48:00 +02:00
Atgeirr Flø Rasmussen
56222d4350
Make is_ptr() for unique_ptr handle two template parameters.
2020-03-23 13:36:07 +01:00