Install the MODAL module
This module allows Chrono to perform modal analysis and modal reduction also on large Chrono systems thanks to iterative shift-and-invert eigenvalue solvers leveraging sparse matrices.
An extended description of the module can be found in the Chrono::Modal user manual.
Read the introduction to modules for a technical background on the modularity of the Chrono project.
Requirements
- To build applications based on this module:
- the Spectra library is needed
- To run applications based on this module there are no requirements
Building instructions
- Download the Spectra library from its GIThub page. This can be done directly by pressing Code/Download Zip in the GIThub page, or by using a client like Sourcetree to pull from the GIThub repository. NOTE! we need the development version of the Spectra libray, because the 1.0 version in the master branch does not include the Krylov-Schur solver yet. Therefore, use this link: https://github.com/yixuan/spectra/tree/develop
- Repeat the instructions for the full installation, but when you see the CMake window, you must add the following steps:
- Set the
ENABLE_MODULE_MODAL
as 'ON', then press 'Configure' (to refresh the variable list) - Set the
SPECTRA_INCLUDE_DIR
to the path where you downloaded your Spectra library (in detail, its include/ directory). For example, it could beC:/engines/spectra/include
- Press 'Configure' again, then 'Generate', and proceed as usual in the installation instructions.
The
develop
branch of Spectra is under development. You might get some warnings during the build process. While we wait that future versions of Spectra will enable complex eigenvalues in the Krylov-Schur solver, a more conventional solver is used for the case of damped complex modal analysis. The more conventional solver is not sparse, so expect more CPU time and memory usage. The usual modal analysis, instead, already uses Krylov-Schur so it can support large problems.
How to use it
- Look at the API section of this module for documentation about classes and functions.
- Look at the C++ source of demos to learn how to use the functions of this module.