Description
template<typename EigenvalueSolverType>
class chrono::modal::ChModalSolverUndamped< EigenvalueSolverType >
Modal solver for undamped systems (-w^2*M+K)*x = 0 s.t.
Cq*x = 0 Contrary to eigensolvers, these classes deals directly with Chrono data structures, creating the appropriate setup for running the inner eigensolver. Multiple requests spanning different frequency ranges can be specified.
#include <ChModalSolverUndamped.h>
Public Types | |
using | ScalarType = typename EigenvalueSolverType::ScalarType |
Public Member Functions | |
ChModalSolverUndamped (int n_lower_modes, double base_freq=1e-5, bool scaleCq=true, bool verbose=false, std::shared_ptr< EigenvalueSolverType > solver=chrono_types::make_shared< EigenvalueSolverType >()) | |
Creates a modal solver for the undamped case. More... | |
ChModalSolverUndamped (std::vector< ChFreqSpan > freq_spans, bool scaleCq=true, bool verbose=false, std::shared_ptr< EigenvalueSolverType > solver=chrono_types::make_shared< EigenvalueSolverType >()) | |
Creates a modal solver for the undamped case. More... | |
int | Solve (const ChAssembly &assembly, ChMatrixDynamic< ScalarType > &eigvects, ChVectorDynamic< ScalarType > &eigvals, ChVectorDynamic< double > &freq) const |
Solve the constrained eigenvalue problem retrieving it from the ChAssembly. More... | |
int | Solve (const ChSparseMatrix &K, const ChSparseMatrix &M, const ChSparseMatrix &Cq, ChMatrixDynamic< ScalarType > &eigvects, ChVectorDynamic< ScalarType > &eigvals, ChVectorDynamic< double > &freq) const |
Solve the constrained eigenvalue problem setting it up from individual matrices. More... | |
std::shared_ptr< EigenvalueSolverType > | GetEigenSolver () const |
Get the inner eigensolver. | |
Public Member Functions inherited from chrono::modal::ChModalSolver | |
ChModalSolver (int n_lower_modes, double base_freq, bool scaleCq, bool verbose) | |
Creates a modal solver. More... | |
ChModalSolver (std::vector< ChFreqSpan > freq_spans, bool scaleCq, bool verbose) | |
Creates a modal solver. More... | |
int | GetNumRequestedModes () const |
Get the total number of requested modes. | |
void | SetClipPositionCoords (bool val) |
Clip the eigenvectors to only the position coordinates. | |
const std::vector< ChFreqSpan > & | GetFrequencySpans () const |
Get the set of frequency spans for which modes are requested. | |
double | GetTimeMatrixAssembly () const |
Get cumulative time for matrix assembly. | |
double | GetTimeEigenSolver () const |
Get cumulative time eigensolver solution. | |
double | GetTimeSolutionPostProcessing () const |
Get cumulative time for post-solver solution postprocessing. | |
Protected Attributes | |
std::shared_ptr< EigenvalueSolverType > | m_solver |
Protected Attributes inherited from chrono::modal::ChModalSolver | |
ChTimer | m_timer_matrix_assembly |
timer for matrix assembly | |
ChTimer | m_timer_eigen_solver |
timer for eigensolver solution | |
ChTimer | m_timer_solution_postprocessing |
timer for conversion of eigensolver solution | |
std::vector< ChFreqSpan > | m_freq_spans |
frequency spans for which modes are requested | |
bool | m_clip_position_coords |
store only the part of each eigenvector that refers to the position coordinates More... | |
bool | m_scaleCq = true |
if true, the Cq matrix is scaled to improve conditioning | |
bool | m_verbose = false |
if true, additional information is printed during the solution process | |
Constructor & Destructor Documentation
◆ ChModalSolverUndamped() [1/2]
|
inline |
Creates a modal solver for the undamped case.
n_lower_modes number of lowest modes to be found. base_freq frequency around which the modes will be found; higher values can help finding eigenvalues for ill-conditioned problems. scaleCq if true, the Cq matrix is scaled to improve conditioning. verbose if true, additional information is printed during the solution process. solver the inner eigensolver to be used.
◆ ChModalSolverUndamped() [2/2]
|
inline |
Creates a modal solver for the undamped case.
freq_spans pair of number of modes and frequency around which the modes will be found. ill-conditioned problems. scaleCq if true, the Cq matrix is scaled to improve conditioning. verbose if true, additional information is printed during the solution process. solver the inner eigensolver to be used.
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono_modal/ChModalSolverUndamped.h