preCICE v3.1.2
Loading...
Searching...
No Matches
ResidualPreconditioner.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
16public:
18 int maxNonConstTimeWindows);
19
24
25private:
31 virtual void _update_(bool timeWindowComplete,
32 const Eigen::VectorXd &oldValues,
33 const Eigen::VectorXd &res);
34
35 logging::Logger _log{"acceleration::ResidualPreconditioner"};
36};
37
38} // namespace impl
39} // namespace acceleration
40} // namespace precice
Interface for preconditioner variants that can be applied to quasi-Newton acceleration schemes.
Preconditioner that uses the recent residual 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