## Theoretical Framework
### Wind Simulation  
Among various simulation methods, the spectral representation methods appear to be the most widely used because they are fast and conceptually straightforward. Wind synthetic records can be generated from the spectral representation method proposed by [PERSON] and [PERSON] and [PERSON] (2008). Considering the case of \(N_{\overline{p}}\) stationary stochastic processes \(u_{j}(t)\), \(j=1,2,3,\ldots,N_{\overline{p}}\) and discrete time \(t=i\Delta t\), \(i=0,1,2,\ldots,N_{s}\), the mathematical expression for the generation of synthetic records is:  
\[u_{j}(t)=\sum\
olimits_{k=1}^{j}\sum\
olimits_{n=1}^{N_{f}}\left|\overline{ \mathbf{H}}_{jk}(\omega_{n})\right|\sqrt{2\Delta\omega}\cos[\omega_{n}t+\theta _{kn}], \tag{28}\]  
where \(u_{j}(t)\) is a signal with zero mean of size \(1\times N_{s}\), representing the turbulent part of the longitudinal component at \(j\)th point in the space; \(\overline{\mathbf{H}}_{jk}(\omega_{n})\) is an element of the lower triangular matrix \(\overline{\mathbf{H}}(\omega_{n})\) of size \(N_{\overline{p}}\times N_{\overline{p}}\), which is defined by the Cholesky factorization process from the cross spectral density matrix; \(\theta_{kn}\) is an element of the random phase angle matrix \(\mathbf{\Theta}\) of size \(N_{\overline{p}}\times N_{f}\), with uniform distribution between \([0,2\pi]\); \(\omega_{n}\) is the discrete angular frequency (rad/s); \(\Delta\omega\) is the increment of angular frequency; and \(N_{f}\) is the amount of values contained in the discrete spectral density function. As it was shown in Equation (28), the calculation of the Shinozuka expression requires serial computing. In order to save computing time, an expression in matrix multiplication format based on the Shinozuka method is presented to perform the parallel computing taking into account the advantage of current multicore processors that can solve several vectors of the resulting matrix at the same time. The expression in array format is:  
\[\mathbf{u}=\sqrt{2\Delta\omega}|\mathbf{\hat{A}}|\mathbf{\overline{X}}, \tag{29}\]  
where \(\mathbf{u}\) is a matrix with size \(N_{\overline{p}}\times N_{s}\), and represents \(N_{\overline{p}}\) stochastic process; \(\mathbf{\hat{A}}\) is a matrix with size \(N_{\overline{p}}\times(N_{\overline{p}}N_{f})\), defined by Equation (30); \(\mathbf{\overline{X}}\) is a matrix with size \(\left(N_{\overline{p}}N_{f}\right)\times\)N\({}_{s}\), defined by Equation (31):  
Figure 3: Pseudocode for Jacobian matrix. \[\mathbf{\hat{A}}=\left[ \begin{array}{cccc}\overline{H}_{1,1}(\omega_{1})& \overline{H}_{2,1}(\omega_{1})&\dots&\overline{H}_{N_{\overline{p},1}}(\omega_{ 1})\\ \overline{H}_{1,2}(\omega_{1})&\overline{H}_{2,2}(\omega_{1})&\dots&\overline{H }_{N_{\overline{p},2}}(\omega_{1})\\ \vdots&\vdots&\ddots&\vdots\\ \overline{H}_{1,N_{\overline{p}}}(\omega_{1})&\overline{H}_{2,N_{\overline{p} }}(\omega_{1})&\dots&\overline{H}_{N_{\overline{p},N_{\overline{p}}}}(\omega_ {1})\\ \overline{H}_{1,1}(\omega_{2})&\overline{H}_{2,1}(\omega_{2})&\dots&\overline{ H}_{N_{\overline{p},1}}(\omega_{2})\\ \vdots&\vdots&\ddots&\vdots\\ \overline{H}_{1,N_{\overline{p}}}(\omega_{2})&\overline{H}_{2,N_{\overline{p} }}(\omega_{2})&\dots&\overline{H}_{N_{\overline{p},N_{\overline{p}}}}(\omega_ {2})\\ \vdots&\vdots&\ddots&\vdots\\ \overline{H}_{1,1}\Big{(}\omega_{N_{f}}\Big{)}&\overline{H}_{2,1}\Big{(} \omega_{N_{f}}\Big{)}&\dots&\overline{H}_{N_{\overline{p},1}}\Big{(}\omega_ {N_{f}}\Big{)}\\ \vdots&\vdots&\ddots&\vdots\\ \overline{H}_{1,N_{\overline{p}}}\Big{(}\omega_{N_{f}}\Big{)}&\overline{H}_{2,N_{\overline{p}}}\Big{(}\omega_{N_{f}}\Big{)}&\dots&\overline{H}_{N_{\overline {p},N_{\overline{p}}}}\Big{(}\omega_{N_{f}}\Big{)}\end{array} \right] \tag{30}\]  
\[\left[