chrono::modal::callback_Ax_sparse_complexshiftinvert Class Reference
Description
The callback to be used for "A*x" where for shift&invert is: A = (As - sigma Bs)/Bs , with COMPLEX sigma shift, so A*x = (As - sigma Bs)/(Bs*x), just like a linear system with coefficient matrix (As - sigma Bs) and known rhs Bs*x.
#include <ChKrylovSchurEig.h>
Inheritance diagram for chrono::modal::callback_Ax_sparse_complexshiftinvert:
Collaboration diagram for chrono::modal::callback_Ax_sparse_complexshiftinvert:
Public Member Functions | |
callback_Ax_sparse_complexshiftinvert (const chrono::ChSparseMatrix &mA, const chrono::ChSparseMatrix &mB, std::complex< double > shift, ChDirectSolverLScomplex *mlinear_solver=0) | |
void | compute (chrono::ChVectorDynamic< std::complex< double >> &A_x, const chrono::ChVectorDynamic< std::complex< double >> &x) override |
Public Member Functions inherited from chrono::modal::callback_Ax | |
virtual void | compute (ChVectorDynamic< std::complex< double >> &A_x, const ChVectorDynamic< std::complex< double >> &x) |
Public Attributes | |
ChDirectSolverLScomplex * | linear_solver |
Eigen::SparseMatrix< std::complex< double >, Eigen::ColMajor > | Bd |
float | default_solver |
std::complex< double > | sigma |
Constructor & Destructor Documentation
◆ callback_Ax_sparse_complexshiftinvert()
chrono::modal::callback_Ax_sparse_complexshiftinvert::callback_Ax_sparse_complexshiftinvert | ( | const chrono::ChSparseMatrix & | mA, |
const chrono::ChSparseMatrix & | mB, | ||
std::complex< double > | shift, | ||
ChDirectSolverLScomplex * | mlinear_solver = 0 |
||
) |
- Parameters
-
mlinear_solver optional direct solver/factorization. Default is ChSolverSparseComplexQR
Member Function Documentation
◆ compute()
|
override |
- Parameters
-
A_x output: result of A*x x input: x in A*x
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