# Irregular wave kinematics from FAST

Hi Jason,

In my efforts to couple in different mooring models, I’ve been working to transmit the discrete wave spectrum generated by FAST to an external model. I am using values from within subroutine InitWaves of height, period, wave number, and phase of each discrete frequency component. These values are sent to external DLL. I am calculating the component wave heights based on the square root of WaveS1Sdd and the component phases using the angle of complex value WGNC.

Using these extracted amplitudes, periods, and phases, I have not been able to reproduce the wave elevation time series generated by FAST, and have absolutely no idea what I am doing wrong. Are there any “tricks” that FAST employs when performs the inverse Fourier transform to generator the wave elevation time series from WaveElevC0 that I may have overlooked?

• Matt

Dear Matt,

I’m not sure why you can’t reproduce the same wave-elevation time series FAST (HydroDyn) calculates.

Please note that the wave elevation calculation is presented in a misleading way in my 2007 PhD thesis-turned NREL report: www3.interscience.wiley.com/cgi- … 5/PDFSTART (see equation 6). Equation 6 follows the exact definition of the inverse Discrete Fourier Transform (inverse DFT):

x[n] = 1/NSUM( X[k]e^(j2Pikn/N), k = -N/2+1, -N/2+2, …, N/2) for n = 0, 1, … N-1

The corresponding DFT is:

X[k] = SUM( x[n]e^(-j2Pik*n/N), n = 0, 1, …, N-1) for k = -N/2+1, -N/2+2, …, N/2

In Equation 6, x[n] is the time series of the wave elevation, zeta(t) at t = ndt, and X[k] is the DFT of x[n], W[k]SQRT(2PiS2(omega)/dt) at omega = k*domega. In the HydroDyn source code, X[k] is represented by variable WaveElevC0 and x[n] is represented by variable WaveElev0.

I hope that helps.

Best regards,

Thanks, Jason. That was just what I needed to get things working. For some reason following equation (6) from the paper I still had discrepancies in the results, but using WaveElevC0 in the equation you typed out worked perfectly.

Best regards,
Matt