chrono::modal::ChKrylovSchurEig Class Reference


Compute (complex) eigenvalues and eigenvectors using the Krylov-Schur algorithm.

Adapted from Matlab code at 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 
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

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