AdaptivePreconditioner.h Source File#
AdaptivePreconditioner.h
Go to the documentation of this file.
Declarations for the class PreconditionerBase which is a virtual base class for preconditioning syste...
AdaptivePreconditioner a preconditioner designed for use with large mechanisms that leverages sparse ...
Definition AdaptivePreconditioner.h:27
double threshold()
Get the threshold value for setting elements.
Definition AdaptivePreconditioner.h:66
Eigen::IncompleteLUT< double > m_solver
Solver used in solving the linear system.
Definition AdaptivePreconditioner.h:118
Eigen::SparseMatrix< double > matrix()
Return the internal preconditioner matrix.
Definition AdaptivePreconditioner.h:60
void setIlutDropTol(double droptol)
Set drop tolerance for ILUT.
Definition AdaptivePreconditioner.h:83
void solve(const size_t stateSize, double *rhs_vector, double *output) override
Solve a linear system Ax=b where A is the preconditioner.
Definition AdaptivePreconditioner.cpp:96
void setValue(size_t row, size_t col, double value) override
Set a value at the specified row and column of the jacobian triplet vector.
Definition AdaptivePreconditioner.cpp:17
double m_prune_precon
Bool set whether to prune the matrix or not.
Definition AdaptivePreconditioner.h:125
double m_threshold
Minimum value a non-diagonal element must be to be included in the preconditioner.
Definition AdaptivePreconditioner.h:122
void initialize(size_t networkSize) override
Called during setup for any processes that need to be completed prior to setup functions used in sund...
Definition AdaptivePreconditioner.cpp:29
vector< Eigen::Triplet< double > > m_jac_trips
Vector of triples representing the jacobian used in preconditioning.
Definition AdaptivePreconditioner.h:109
void setIlutFillFactor(int fillFactor)
Set the fill factor for ILUT solver.
Definition AdaptivePreconditioner.h:90
Eigen::SparseMatrix< double > m_identity
Storage of appropriately sized identity matrix for making the preconditioner.
Definition AdaptivePreconditioner.h:112
void printPreconditioner() override
Print preconditioner contents.
Definition AdaptivePreconditioner.cpp:110
void setup() override
Perform preconditioner specific post-reactor setup operations such as factorize.
Definition AdaptivePreconditioner.cpp:57
void stateAdjustment(vector< double > &state) override
Adjust the state vector based on the preconditioner, e.g., Adaptive preconditioning uses a strictly p...
Definition AdaptivePreconditioner.cpp:22
void updatePreconditioner() override
Transform Jacobian vector and write into preconditioner, P = (I - gamma * J)
Definition AdaptivePreconditioner.cpp:72
Eigen::SparseMatrix< double > m_precon_matrix
Container that is the sparse preconditioner.
Definition AdaptivePreconditioner.h:115
void setThreshold(double threshold)
Set the threshold value to compare elements against.
Definition AdaptivePreconditioner.h:76
void reset() override
Reset preconditioner parameters as needed.
Definition AdaptivePreconditioner.h:33
PreconditionerBase serves as an abstract type to extend different preconditioners.
Definition PreconditionerBase.h:31
This file contains definitions for utility functions and text for modules, inputfiles and logging,...
Eigen::SparseMatrix< double > jacobian()
Return semi-analytical Jacobian of an AdaptivePreconditioner object.
Definition AdaptivePreconditioner.h:53
Generated by