chrono::modal::ChKrylovSchurEig Class Reference
Description
Compute (complex) eigenvalues and eigenvectors using the Krylov-Schur algorithm.
Adapted from Matlab code at https://github.com/dingxiong/KrylovSchur Use one of the chrono::modal::callback_Ax provided above depending on the type of problem that you must solve.
#include <ChKrylovSchurEig.h>
Public Member Functions | |
ChKrylovSchurEig (ChMatrixDynamic< std::complex< double >> &v, ChVectorDynamic< std::complex< double >> &eig, bool &isC, bool &flag, int &nc, int &ni, callback_Ax *Ax_function, ChVectorDynamic< std::complex< double >> &v1, const int n, const int k, const int m, const int maxIt, const double tol) | |
Constructor & Destructor Documentation
◆ ChKrylovSchurEig()
chrono::modal::ChKrylovSchurEig::ChKrylovSchurEig | ( | ChMatrixDynamic< std::complex< double >> & | v, |
ChVectorDynamic< std::complex< double >> & | eig, | ||
bool & | isC, | ||
bool & | flag, | ||
int & | nc, | ||
int & | ni, | ||
callback_Ax * | Ax_function, | ||
ChVectorDynamic< std::complex< double >> & | v1, | ||
const int | n, | ||
const int | k, | ||
const int | m, | ||
const int | maxIt, | ||
const double | tol | ||
) |
- Parameters
-
v output matrix with eigenvectors as columns, will be resized eig output vector with eigenvalues (real part not zero if some damping), will be resized isC 0 = k-th eigenvalue is real, 1= k-th and k-th+1 are complex conjugate pairs flag 0 = has converged, 1 = hasn't converged nc number of converged eigenvalues ni number of used iterations Ax_function compute the A*x operation, assuming standard eigenvalue problem A*v=lambda*v. v1 initial approx of eigenvector, or random n size of A k number of needed eigenvalues m Krylov restart threshold (largest dimension of krylov subspace) maxIt max iteration number tol tolerance
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_modal/ChKrylovSchurEig.h
- /builds/uwsbel/chrono/src/chrono_modal/ChKrylovSchurEig.cpp