It would be interesting to change the calculation method performed in the "FrequencyResponseResult" class; it is possible to optimize it and obtain accurate results more quickly.
The calculation performed in "transfer_matrix" can be done using the rotor matrices directly, as shown below. There's no need to perform the integrations currently employed, which take more time to generate results.
Considering cases where many simultaneous simulations are required, such as uncertainty propagation, for example, any faster result generation is important.
It would be interesting to change the calculation method performed in the "FrequencyResponseResult" class; it is possible to optimize it and obtain accurate results more quickly.
The calculation performed in "transfer_matrix" can be done using the rotor matrices directly, as shown below. There's no need to perform the integrations currently employed, which take more time to generate results.
$$\begin{equation} \textbf{H} = -\omega^2\textbf{M} + j\omega(\textbf{C}+\omega\textbf{G}) + \textbf{K} \end{equation}$$
Considering cases where many simultaneous simulations are required, such as uncertainty propagation, for example, any faster result generation is important.