preCICE v3.2.0
Loading...
Searching...
No Matches
Acceleration.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Core>
4#include <map>
5#include <vector>
6
9
10namespace precice::io {
11class TXTWriter;
12class TXTReader;
13} // namespace precice::io
14
15namespace precice::acceleration {
16
18public:
19 static const int NOFILTER = 0;
20 static const int QR1FILTER = 1;
21 static const int QR1FILTER_ABS = 2;
22 static const int QR2FILTER = 3;
23 static const int PODFILTER = 4;
24 static const int QR3FILTER = 5;
25
28
29 virtual ~Acceleration() = default;
30
32
33 virtual void initialize(const DataMap &cpldata) = 0;
34
35 virtual void performAcceleration(DataMap &cpldata, double windowStart, double windowEnd) = 0;
36
37 virtual void iterationsConverged(const DataMap &cpldata, double windowStart) = 0;
38
39 virtual void exportState(io::TXTWriter &writer) {}
40
41 virtual void importState(io::TXTReader &reader) {}
42
43protected:
45 void checkDataIDs(const DataMap &cplData) const;
46
48 static void applyRelaxation(double omega, DataMap &cplData, double windowStart);
49};
50} // namespace precice::acceleration
std::map< int, PtrCouplingData > DataMap
virtual void importState(io::TXTReader &reader)
virtual std::vector< int > getPrimaryDataIDs() const =0
static void applyRelaxation(double omega, DataMap &cplData, double windowStart)
performs a relaxation given a relaxation factor omega
void checkDataIDs(const DataMap &cplData) const
Checks if all dataIDs are contained in cplData.
std::map< int, cplscheme::PtrCouplingData > DataMap
Map from data ID to data values.
virtual void initialize(const DataMap &cpldata)=0
virtual void iterationsConverged(const DataMap &cpldata, double windowStart)=0
virtual void exportState(io::TXTWriter &writer)
virtual void performAcceleration(DataMap &cpldata, double windowStart, double windowEnd)=0
File reader for matrix/vector in Matlab V7 ASCII format.
Definition TXTReader.hpp:15
File writer for matrix in Matlab V7 ASCII format.
Definition TXTWriter.hpp:13
contains implementations of acceleration schemes.
provides Import and Export of the coupling mesh and data.