chrono::modal::ChModalSolver Class Reference

Description

Base class for modal solvers.

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 <ChModalSolver.h>

Inheritance diagram for chrono::modal::ChModalSolver:
Collaboration diagram for chrono::modal::ChModalSolver:

Public Member Functions

 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

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

◆ ChModalSolver() [1/2]

chrono::modal::ChModalSolver::ChModalSolver ( int  n_lower_modes,
double  base_freq,
bool  scaleCq,
bool  verbose 
)
inline

Creates a modal solver.

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.

◆ ChModalSolver() [2/2]

chrono::modal::ChModalSolver::ChModalSolver ( std::vector< ChFreqSpan >  freq_spans,
bool  scaleCq,
bool  verbose 
)
inline

Creates a modal solver.

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.

Member Data Documentation

◆ m_clip_position_coords

bool chrono::modal::ChModalSolver::m_clip_position_coords
protected
Initial value:
=
true

store only the part of each eigenvector that refers to the position coordinates


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