28 double initialRelaxation,
29 bool forceInitialRelaxation,
30 int maxIterationsUsed,
31 int pastTimeWindowsReused,
33 double singularityLimit,
36 bool reducedTimeGrid);
std::map< int, cplscheme::PtrCouplingData > DataMap
Map from data ID to data values.
BaseQNAcceleration(double initialRelaxation, bool forceInitialRelaxation, int maxIterationsUsed, int timeWindowsReused, int filter, double singularityLimit, std::vector< int > dataIDs, impl::PtrPreconditioner preconditioner, bool reducedTimeGrid)
~IQNILSAcceleration() override=default
IQNILSAcceleration(double initialRelaxation, bool forceInitialRelaxation, int maxIterationsUsed, int pastTimeWindowsReused, int filter, double singularityLimit, std::vector< int > dataIDs, impl::PtrPreconditioner preconditioner, bool reducedTimeGrid)
void specializedInitializeVectorsAndPreconditioner(const DataMap &cplData) final override
void specializedIterationsConverged(const DataMap &cplData) override
Marks a iteration sequence as converged.
void removeMatrixColumn(int columnIndex) override
Removes one iteration from V,W matrices and adapts _matrixCols.
std::map< int, Eigen::VectorXd > _secondaryOldXTildes
Secondary data solver output from last iteration.
void computeQNUpdate(Eigen::VectorXd &xUpdate) override
computes the IQN-ILS update using QR decomposition
void updateDifferenceMatrices(const DataMap &cplData) override
updates the V, W matrices (as well as the matrices for the secondary data)
std::shared_ptr< Preconditioner > PtrPreconditioner
contains implementations of acceleration schemes.