preCICE v3.1.2
Loading...
Searching...
No Matches
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
8namespace precice {
9namespace acceleration {
10namespace impl {
11
14public:
16 int maxNonConstTimeWindows);
21
22private:
23 logging::Logger _log{"acceleration::ValuePreconditioner"};
24
30 virtual void _update_(bool timeWindowComplete, const Eigen::VectorXd &oldValues, const Eigen::VectorXd &res);
31
32 bool _firstTimeWindow = true;
33};
34
35} // namespace impl
36} // namespace acceleration
37} // namespace precice
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.
virtual void _update_(bool timeWindowComplete, const Eigen::VectorXd &oldValues, const Eigen::VectorXd &res)
Update the scaling after every FSI iteration.
This class provides a lightweight logger.
Definition Logger.hpp:16
Main namespace of the precice library.
static std::unique_ptr< precice::Participant > impl
Definition preciceC.cpp:21