Project Chrono: chrono::modal::callback_Ax_sparse_complexshiftinvert Class Reference

Public Member Functions | Public Attributes | List of all members
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:
[legend]
Collaboration diagram for chrono::modal::callback_Ax_sparse_complexshiftinvert:
[legend]

## 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 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 & | As,
|  | const chrono::ChSparseMatrix & | Bs,
|  | std::complex< double > | shift,
|  | ChDirectSolverLScomplex * | mlinear_solver = 0 )

Parameters

  As | unshifted matrix A
  Bs | unshifted matrix B
  shift | shift (sigma in the equation)
  mlinear_solver | optional 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 )
| overridevirtual

Parameters

  A_x | output: result of A*x
  x | input: x in A*x

Reimplemented from chrono::modal::callback_Ax.

The documentation for this class was generated from the following files:

- D:/W/B/src/chrono-9.0.1/src/chrono_modal/ChKrylovSchurEig.h
- D:/W/B/src/chrono-9.0.1/src/chrono_modal/ChKrylovSchurEig.cpp