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
voutput matrix with eigenvectors as columns, will be resized
eigoutput vector with eigenvalues (real part not zero if some damping), will be resized
isC0 = k-th eigenvalue is real, 1= k-th and k-th+1 are complex conjugate pairs
flag0 = has converged, 1 = hasn't converged
ncnumber of converged eigenvalues
ninumber of used iterations
Ax_functioncompute the A*x operation, assuming standard eigenvalue problem A*v=lambda*v.
v1initial approx of eigenvector, or random
nsize of A
knumber of needed eigenvalues
mKrylov restart threshold (largest dimension of krylov subspace)
maxItmax iteration number
toltolerance

The documentation for this class was generated from the following files:
  • C:/M/B/src/chrono-9.0.1/src/chrono_modal/ChKrylovSchurEig.h
  • C:/M/B/src/chrono-9.0.1/src/chrono_modal/ChKrylovSchurEig.cpp