preCICE v3.2.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ValuePreconditioner.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Core>
4#include <string>
6#include "logging/Logger.hpp"
7
9
12public:
14 int maxNonConstTimeWindows);
18 ~ValuePreconditioner() override = default;
19
20private:
21 logging::Logger _log{"acceleration::ValuePreconditioner"};
22
28 void _update_(bool timeWindowComplete, const Eigen::VectorXd &oldValues, const Eigen::VectorXd &res) override;
29
30 bool _firstTimeWindow = true;
31};
32
33} // namespace precice::acceleration::impl
Interface for preconditioner variants that can be applied to quasi-Newton acceleration schemes.
Preconditioner that uses the values from the previous time window to scale the quasi-Newton system.
void _update_(bool timeWindowComplete, const Eigen::VectorXd &oldValues, const Eigen::VectorXd &res) override
Update the scaling after every FSI iteration.
~ValuePreconditioner() override=default
Destructor, empty.
This class provides a lightweight logger.
Definition Logger.hpp:17