chrono::modal::ChQuadraticEigenvalueSolver Class Referenceabstract

Description

Base interface class for eigensolvers for the damped dynamic problem ie.

the quadratic eigenvalue problem (lambda^2*M + lambda*R + K)*x = 0 also (-w^2*M + i*w*R + K)*x = 0, with complex w (where w.length() = undamped nat.freq) Children classes can implement this in different ways, overridding Solve()

#include <ChEigenvalueSolver.h>

Inheritance diagram for chrono::modal::ChQuadraticEigenvalueSolver:

Public Member Functions

virtual bool Solve (const ChSparseMatrix &M, const ChSparseMatrix &R, const ChSparseMatrix &K, const ChSparseMatrix &Cq, ChMatrixDynamic< std::complex< double >> &V, ChVectorDynamic< std::complex< double >> &eig, ChVectorDynamic< double > &freq, ChVectorDynamic< double > &damping_ratio, ChEigenvalueSolverSettings settings=0) const =0
 Solve the quadratic eigenvalue problem (lambda^2*M + lambda*R + K)*x = 0 s.t. More...
 

Member Function Documentation

◆ Solve()

virtual bool chrono::modal::ChQuadraticEigenvalueSolver::Solve ( const ChSparseMatrix M,
const ChSparseMatrix R,
const ChSparseMatrix K,
const ChSparseMatrix Cq,
ChMatrixDynamic< std::complex< double >> &  V,
ChVectorDynamic< std::complex< double >> &  eig,
ChVectorDynamic< double > &  freq,
ChVectorDynamic< double > &  damping_ratio,
ChEigenvalueSolverSettings  settings = 0 
) const
pure virtual

Solve the quadratic eigenvalue problem (lambda^2*M + lambda*R + K)*x = 0 s.t.

Cq*x = 0 If n_modes=0, return all eigenvalues, otherwise only the first lower n_modes.

Parameters
Minput M matrix
Rinput R matrix
Kinput K matrix
Cqinput Cq matrix of constraint jacobians
Voutput matrix with eigenvectors as columns, will be resized
eigoutput vector with eigenvalues (real part not zero if some damping), will be resized
freqoutput vector with n undamped frequencies [Hz], as f=w/(2*PI), will be resized.
damping_ratiooutput vector with n damping rations r=damping/critical_damping.
settingsoptional: settings for the solver, or n. of desired lower eigenvalues. If =0, return all eigenvalues.

Implemented in chrono::modal::ChQuadraticEigenvalueSolverKrylovSchur, and chrono::modal::ChQuadraticEigenvalueSolverNullspaceDirect.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono_modal/ChEigenvalueSolver.h