Commit Graph

49 Commits

Author SHA1 Message Date
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
Atgeirr Flø Rasmussen
652c7d239b Simplify ptr(), avoiding a template template parameter.
Since unique_ptr<T, Deleter> takes two arguments it cannot strictly
speaking be used via a template template parameter that takes one,
even though the second has a default. GCC allows this anyway, but
not clang.
2020-03-23 11:55:45 +01:00
Arne Morten Kvarving
4c5f9f2241 add doxy to eclmpiserializer 2020-03-19 09:31:52 +01:00
Arne Morten Kvarving
59d1ff9b88 updates in EclMpiSerializer to avoid explicit instances in serializer
now the serializer is 'standard', as in we only require basic types
+ stl containers. this should make the actual implementation pretty
pluggable. will ease replacing our serialization routines
with those in Dune 2.7 later.
2020-03-19 09:31:52 +01:00
Arne Morten Kvarving
c86cfbd83a add complexType template parameter to EclMpiSerializer::vector
set to false if vector contains a type without a serializeOp
2020-03-19 09:31:07 +01:00
Arne Morten Kvarving
638a53ac88 add support for unique_ptr in EclMpiSerializer 2020-03-19 09:31:07 +01:00
Arne Morten Kvarving
f0bc3e3815 add bool parameter ComplexType to EclMpiSerializer::map
this is passed on to the serializeOp template for the underlying
type. used with maps over DynamicState where DynamicState is over
a non-complex type.
2020-03-19 09:31:07 +01:00
Arne Morten Kvarving
13639cdace add isSerializing member to eclmpiserializer
sometimes it is necessary to know in user code
2020-03-17 08:19:44 +01:00
Arne Morten Kvarving
5eb2ec30a5 add map handler to eclmpiserializer 2020-03-16 20:52:17 +01:00
Arne Morten Kvarving
30cac6b648 add shared_ptr handling in eclmpiserializer 2020-03-16 20:52:17 +01:00
Arne Morten Kvarving
fe2437e67e add pair handling in eclmpiserializer::vector 2020-03-16 11:44:13 +01:00
Arne Morten Kvarving
6fee426bfc remove static assert in vector handler of eclmpiserializer
std::is_pod is too generic
2020-03-16 10:49:42 +01:00
Arne Morten Kvarving
91e9d952d8 added: handler for vectors in eclmpiserializer
this shall be used by users when they have a vector of types
with a serializeOp template. it cannot (at least not right now)
be part of the regular operator() as some vectors should go
directly to the underlying serializer (trivial types).

we can possibly find some traits magic for this later.
2020-03-13 14:09:17 +01:00
Arne Morten Kvarving
dd0f6dd517 changed: simplify eclmpiserializer
now users only have to implement a single method for
packsize/pack/unpack
2020-03-10 08:56:40 +01:00
Arne Morten Kvarving
3162ed067e get rid of unused serialization template 2020-03-06 11:55:41 +01:00
Arne Morten Kvarving
db2ad1587d fixed: mark constructor explicit 2020-01-22 11:36:02 +01:00
Arne Morten Kvarving
60f3fea67a avoid deck usage on non-root processes setting up MaterialLawManager 2020-01-22 11:35:55 +01:00
Arne Morten Kvarving
3396b31852 changed: add helper template to serialize and broadcast static types 2020-01-22 00:32:46 +01:00
Arne Morten Kvarving
3b27df91b4 avoid usage of deck on all processes setting up EclSolventModule 2020-01-06 11:19:12 +01:00