preCICE v3.2.0
Loading...
Searching...
No Matches
SerializedStamples.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Core>
4#include <vector>
6#include "precice/span.hpp"
7
8namespace precice::com {
9class Communication;
10
11namespace serialize {
12
15public:
23
32
40
46 const Eigen::VectorXd &values() const;
47
53 Eigen::VectorXd &values();
54
60 const Eigen::VectorXd &gradients() const;
61
67 Eigen::VectorXd &gradients();
68
74 int nTimeSteps() const;
75
76private:
77 SerializedStamples() = default;
78
79 // Allocates _values and gradients for size matching data and _timeSteps
80 void allocate(const cplscheme::CouplingData &data);
81
88
95
103
105 Eigen::VectorXd _values;
106
108 Eigen::VectorXd _gradients;
109
111 int _timeSteps = 0;
112};
113
114} // namespace serialize
115} // namespace precice::com
Interface for all interprocess communication classes.
Eigen::VectorXd _gradients
Buffer for serialized gradients of stamples.
static SerializedStamples serialize(const cplscheme::CouplingData &data)
Serializes a given CouplingData into SerializedStamples.
int _timeSteps
number of timesteps stored in SerializedStamples
void allocate(const cplscheme::CouplingData &data)
void deserializeInto(precice::span< const double > timeStamps, cplscheme::CouplingData &data)
Deserialize data from this SerializedStamples into provided CouplingData.
void deserialize(precice::span< const double > timeStamps, cplscheme::CouplingData &data) const
Deserialize _values and (if required by data) _gradients into timeStepsStorage of data....
static SerializedStamples empty(int nTimeSteps, const cplscheme::CouplingData &data)
Create SerializedStamples with allocated buffers according to size of CouplingData.
const Eigen::VectorXd & gradients() const
const reference to serialized gradients. Used for sending serialized gradients.
void serializeValues(const cplscheme::CouplingData &data)
Serialize values from timeStepsStorage of data into _values.
Eigen::VectorXd _values
Buffer for serialized values of stamples.
void serializeGradients(const cplscheme::CouplingData &data)
Serialize gradients from timeStepsStorage of data into _gradients.
int nTimeSteps() const
Returns number of timeSteps.
const Eigen::VectorXd & values() const
const reference to serialized values. Used for sending serialized values.
A C++ 11 implementation of the non-owning C++20 std::span type.
Definition span.hpp:284
contains serialization logic
contains the data communication abstraction layer.