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 &As, const chrono::ChSparseMatrix &Bs, 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

ChDirectSolverLScomplexlinear_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 As,
const chrono::ChSparseMatrix Bs,
std::complex< double >  shift,
ChDirectSolverLScomplex mlinear_solver = 0 
)
Parameters
Asunshifted matrix A
Bsunshifted matrix B
shiftshift (sigma in the equation)
mlinear_solveroptional direct solver/factorization. Default is ChSolverSparseComplexQR

Member Function Documentation

◆ compute()

void chrono::modal::callback_Ax_sparse_complexshiftinvert::compute ( chrono::ChVectorDynamic< std::complex< double >> &  A_x,
const chrono::ChVectorDynamic< std::complex< double >> &  x 
)
override
Parameters
A_xoutput: result of A*x
xinput: 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