chrono::modal::ChSymGenEigenvalueSolverLanczos Class Reference
  Description
Generalized iterative eigenvalue solver implementing Lanczos shift-and-invert method for real symmetric matrices.
Features:
- generalized eigenvalue problem
 - symmetric real sparse matrices
 - shift-and-invert with real shift
 
#include <ChSymGenEigenvalueSolver.h>
Inheritance diagram for chrono::modal::ChSymGenEigenvalueSolverLanczos:

Collaboration diagram for chrono::modal::ChSymGenEigenvalueSolverLanczos:

Public Member Functions | |
| virtual int | Solve (const ChSparseMatrix &A, const ChSparseMatrix &B, ChMatrixDynamic< ScalarType > &eigvects, ChVectorDynamic< ScalarType > &eigvals, int num_modes, ScalarType shift) const override | 
| Solve the generalized eigenvalue problem A*eigvects = B*eigvects*diag(eigvals) A and B are expected to be symmetric and real 'eigvects' will be resized to [A.rows() x num_modes] 'eigvals' will be resized to [num_modes] the number of converged eigenvalues is returned.  | |
  Public Member Functions inherited from chrono::modal::ChSymGenEigenvalueSolver | |
| virtual int | Solve (const ChSparseMatrix &A, const ChSparseMatrix &B, ChMatrixDynamic< ScalarType > &eigvects, ChVectorDynamic< ScalarType > &eigvals, int num_modes, ScalarType shift) const =0 | 
| Solve the generalized eigenvalue problem A*eigvects = B*eigvects*diag(eigvals) A and B are expected to be symmetric and real 'eigvects' will be resized to [A.rows() x num_modes] 'eigvals' will be resized to [num_modes] the number of converged eigenvalues is returned.  | |
  Public Member Functions inherited from chrono::modal::ChGeneralizedEigenvalueSolver< double > | |
| double | GetTimeMatrixAssembly () const | 
| Get cumulative time for matrix assembly.  | |
| double | GetTimeEigenSetup () const | 
| Get cumulative time for the eigensolver setup.  | |
| double | GetTimeEigenSolver () const | 
| Get cumulative time for the eigensolver solution.  | |
| double | GetTimeSolutionPostProcessing () const | 
| Get cumulative time for post-solver solution postprocessing.  | |
Additional Inherited Members | |
  Public Types inherited from chrono::modal::ChGeneralizedEigenvalueSolver< double > | |
| using | ScalarType = double | 
  Static Public Member Functions inherited from chrono::modal::ChSymGenEigenvalueSolver | |
| static void | GetNaturalFrequencies (const ChVectorDynamic< ScalarType > &eigvals, ChVectorDynamic< double > &freq) | 
| Retrieve the natural frequencies from an eigenvalues array.  | |
| static double | GetNaturalFrequency (ScalarType eigval) | 
| Retrieve the natural frequencies from an eigenvalue.  | |
| static ScalarType | GetOptimalShift (double freq) | 
| Get the optimal shift corresponding to a given frequency.  | |
  Static Public Member Functions inherited from chrono::modal::ChGeneralizedEigenvalueSolver< double > | |
| static void | SortRitzPairs (ChVectorDynamic< ScalarType > &eigvals, ChMatrixDynamic< ScalarType > &eigvects, std::function< bool(const ChVectorDynamic< ScalarType > &, int, int)> ordering_fun=[](const ChVectorDynamic< std::complex< double >> &eigv, int a, int b) { return std::abs(eigv(a))< std::abs(eigv(b));}) | 
| Sort the eigenvalues and eigenvectors in the order specified by the ordering function in-place.  | |
| static double | GetMaxResidual (const ChSparseMatrix &A, const ChSparseMatrix &B, const ChMatrixDynamic< ScalarType > &eigvects, const ChVectorDynamic< ScalarType > &eigvals) | 
| static double | GetMaxResidual (const ChSparseMatrix &K, const ChSparseMatrix &M, const ChSparseMatrix &Cq, const ChMatrixDynamic< ScalarType > &eigvects, const ChVectorDynamic< ScalarType > &eigvals) | 
| static double | GetMaxResidual (const ChSparseMatrix &K, const ChSparseMatrix &R, const ChSparseMatrix &M, const ChSparseMatrix &Cq, const ChMatrixDynamic< ScalarType > &eigvects, const ChVectorDynamic< ScalarType > &eigvals) | 
| static double | BuildUndampedSystem (const ChSparseMatrix &M, const ChSparseMatrix &K, const ChSparseMatrix &Cq, ChSparseMatrix &A, ChSparseMatrix &B, bool scaleCq) | 
| Build the quadratic eigenvalue problem matrix for the undamped case.  More... | |
| static double | BuildDampedSystem (const ChSparseMatrix &M, const ChSparseMatrix &R, const ChSparseMatrix &K, const ChSparseMatrix &Cq, ChSparseMatrix &A, ChSparseMatrix &B, bool scaleCq) | 
| Build the quadratic eigenvalue problem matrix for the damped case.  More... | |
| static void | InsertUniqueRitzPairs (const ChVectorDynamic< ScalarType > &eigvals_source, const ChMatrixDynamic< ScalarType > &eigvects_source, ChVectorDynamic< ScalarType > &eigvals_total, ChMatrixDynamic< ScalarType > &eigvects_total, std::function< double(ScalarType)> freq_from_eigval_fun, int &found_eigs, int num_eigvals_source, double equal_freq_tolerance=1e-4) | 
| Add unique ritz pairs to a wider set of ritz pairs.  More... | |
  Public Attributes inherited from chrono::modal::ChGeneralizedEigenvalueSolver< double > | |
| double | tolerance | 
| tolerance for the iterative solver.  | |
| int | max_iterations | 
| upper limit for the number of iterations. If too low might not converge.  | |
| bool | verbose | 
| turn to true to see some diagnostic.  | |
| bool | sort_ritz_pairs | 
| sort the eigenvalues based on the smallest absolute value  | |
  Static Protected Member Functions inherited from chrono::modal::ChGeneralizedEigenvalueSolver< double > | |
| static Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > | GetPermutationMatrix (int num_elements, std::function< bool(int, int)> ordering_fun) | 
| Returns the permutation matrix to sort the given elements based on the ordering function.  | |
  Protected Attributes inherited from chrono::modal::ChGeneralizedEigenvalueSolver< double > | |
| ChTimer | m_timer_matrix_assembly | 
| timer for matrix assembly  | |
| ChTimer | m_timer_eigen_setup | 
| timer for eigensolver setup  | |
| ChTimer | m_timer_eigen_solver | 
| timer for eigensolver solution  | |
| ChTimer | m_timer_solution_postprocessing | 
| timer for conversion of eigensolver solution  | |
| const int | m_min_subspace_size | 
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_modal/ChSymGenEigenvalueSolver.h
 - /builds/uwsbel/chrono/src/chrono_modal/ChSymGenEigenvalueSolver.cpp
 
 Public Member Functions inherited from