preCICE v3.1.2
Loading...
Searching...
No Matches
ConstantPreconditioner.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Core>
4#include <stddef.h>
5#include <string>
6#include <vector>
8#include "logging/Logger.hpp"
9
10namespace precice {
11namespace acceleration {
12namespace impl {
13
16public:
18
23
24 virtual void initialize(std::vector<size_t> &svs);
25
26private:
32 virtual void _update_(bool timeWindowComplete, const Eigen::VectorXd &oldValues, const Eigen::VectorXd &res);
33
34 logging::Logger _log{"acceleration::ConstantPreconditioner"};
35
38};
39
40} // namespace impl
41} // namespace acceleration
42} // namespace precice
Preconditioner that uses the constant user-defined factors to scale the quasi-Newton system.
std::vector< double > _factors
Constant user-defined factors 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.
virtual void initialize(std::vector< size_t > &svs)
initialize the preconditioner
Interface for preconditioner variants that can be applied to quasi-Newton acceleration schemes.
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