13 for (
int dataID : dataIDs) {
14 Eigen::VectorXd timeGrid = cplData.at(dataID)->waveform().getTimes();
15 if (reducedTimeGrid) {
16 _timeGrids.insert(std::pair<int, Eigen::VectorXd>(dataID, timeGrid.tail<1>()));
18 _timeGrids.insert(std::pair<int, Eigen::VectorXd>(dataID, timeGrid));
27 std::vector<double> reduced;
34 return Eigen::Map<Eigen::VectorXd>(reduced.data(), reduced.size());
40 if (pair.second.size() == 1) {
41 _timeGrids.at(pair.first) = cplData.at(pair.first)->waveform().getTimes().tail<1>();
43 int dataID = pair.first;
45 Eigen::VectorXd newtimeGrid = cplData.at(dataID)->waveform().getTimes();
46 double newTimesMin = newtimeGrid(0);
47 double newTimesMax = newtimeGrid(newtimeGrid.size() - 1);
49 Eigen::VectorXd timeGrid = pair.second;
51 double oldTimesMax =
_timeGrids.at(dataID)(timeGrid.size() - 1);
54 auto transformNewTime = [oldTimesMin, oldTimesMax, newTimesMin, newTimesMax](
double t) ->
double {
return (t - oldTimesMin) / (oldTimesMax - oldTimesMin) * (newTimesMax - newTimesMin) + newTimesMin; };
55 timeGrid = timeGrid.unaryExpr(transformNewTime);
#define PRECICE_ASSERT(...)
Eigen::VectorXd getTimeGridAfter(int dataID, double time) const
TimeGrids(const DataMap &cplData, std::vector< int > dataIDs, bool reduced)
saves the current time grid of the couplig data
std::map< int, cplscheme::PtrCouplingData > DataMap
Map from data ID to data values.
std::map< int, Eigen::VectorXd > _timeGrids
List of the time grid to which all the data will be interpolated to Stored in a map,...
void moveTimeGridToNewWindow(const DataMap &cplData)
std::enable_if< std::is_arithmetic< Scalar >::value, bool >::type greater(Scalar A, Scalar B, Scalar tolerance=NUMERICAL_ZERO_DIFFERENCE)
contains the time interpolation logic.