# Wave frequency discretization

Hello,

I’m am currently working on construction a “point-RAO” of a TLP, using very specific wave frequencies.
My question is regarding the discretization of wave frequencies, and if the is a limit for how small the difference can be between the each chosen wave frequency.

Say in hydrodyn I specify regular waves (WaveMod = 1), with Peak-spectral period (WaveTp = 1.4434), i would expect to measure a wave frequency of 0.6928 [Hz].
After simulation however a measure a wave period of 1.4290 [s] = 0.69979 [Hz]
Meaning a discrepancy of 0.0144 [s] or 0.0070 [Hz]

This happens even if I define “Time step for incident wave calculations” (WaveDT = 0.001) and have both simulation and sampling time as (DT = DT_Out = 0.001)

Here are some of the frequencies/periods I have specified vs. measured:
Specified frequency 0.6928 [Hz]
Measured frequency 0.6998 [Hz]
Specified period 1.4434 [s]
Measured period 1.4290 [s]

Specified frequency 0.7028 [Hz]
Measured frequency 0.6998 [Hz]
Specified period 1.4229 [s]
Measured period 1.4290 [s]

Specified frequency 0.7128 [Hz]
Measured frequency 0.7199 [Hz]
Specified period 1.4029 [s]
Measured period 1.3890 [s]

Specified frequency 0.7228 [Hz]
Measured frequency 0.7199 [Hz]
Specified period 1.3835 [s]
Measured period 1.3890 [s]

Is there som inherit limitation within HydroDyn, which prevents me from specifying a more accurate wave period?

Following settings are used in HydroDyn:

```------- HydroDyn v2.03.* Input File -------------------------------------------- HydroDyn input properties for AAUE-TLP. False Echo - Echo the input file data (flag) ---------------------- ENVIRONMENTAL CONDITIONS -------------------------------- 1025 WtrDens - Water density (kg/m^3) 1.92 WtrDpth - Water depth (meters) 1.92 0 MSL2SWL - Offset between still-water level and mean sea level (meters) [positive upward; unused when WaveMod = 6; must be zero if PotMod=1 or 2] ---------------------- WAVES --------------------------------------------------- 1 WaveMod - Incident wave kinematics model {0: none=still water, 1: regular (periodic), 1P#: regular with user-specified phase, 2: JONSWAP/Pierson-Moskowitz spectrum (irregular), 3: White noise spectrum (irregular), 4: user-defined spectrum from routine UserWaveSpctrm (irregular), 5: Externally generated wave-elevation time series, 6: Externally generated full wave-kinematics time series [option 6 is invalid for PotMod/=0]} (switch) 0 WaveStMod - Model for stretching incident wave kinematics to instantaneous free surface {0: none=no stretching, 1: vertical stretching, 2: extrapolation stretching, 3: Wheeler stretching} (switch) [unused when WaveMod=0 or when PotMod/=0] 50 WaveTMax - Analysis time for incident wave calculations (sec) [unused when WaveMod=0; determines WaveDOmega=2Pi/WaveTMax in the IFFT] 0.001 WaveDT - Time step for incident wave calculations 0.005 (sec) [unused when WaveMod=0; 0.1<=WaveDT<=1.0 recommended; determines WaveOmegaMax=Pi/WaveDT in the IFFT] 0.03 WaveHs - Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3] 1.4434 WaveTp - Peak-spectral period of incident waves (sec) [used only when WaveMod=1 or 2] "DEFAULT" WavePkShp - Peak-shape parameter of incident wave spectrum (-) or DEFAULT (string) [used only when WaveMod=2; use 1.0 for Pierson-Moskowitz] 0 WvLowCOff - Low cut-off frequency or lower frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6] 20 WvHiCOff - High cut-off frequency or upper frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6] == 2.3873 Hz 0 WaveDir - Incident wave propagation heading direction (degrees) [unused when WaveMod=0 or 6] 0 WaveDirMod - Directional spreading function {0: none, 1: COS2S} (-) [only used when WaveMod=2,3, or 4] 0.001 WaveDirSpread - Wave direction spreading coefficient ( > 0 ) (-) [only used when WaveMod=2,3, or 4 and WaveDirMod=1] 1 WaveNDir - Number of wave directions 13 (-) [only used when WaveMod=2,3, or 4 and WaveDirMod=1; odd number only] 0 WaveDirRange - Range of wave directions (full range: WaveDir +/- 1/2*WaveDirRange) (degrees) [only used when WaveMod=2,3,or 4 and WaveDirMod=1] 123456789 WaveSeed(1) - First random seed of incident waves [-2147483648 to 2147483647] (-) [unused when WaveMod=0, 5, or 6] 1011121314 WaveSeed(2) - Second random seed of incident waves [-2147483648 to 2147483647] (-) [unused when WaveMod=0, 5, or 6] TRUE WaveNDAmp - Flag for normally distributed amplitudes (flag) [only used when WaveMod=2, 3, or 4] "Wave/JONSWAPSpectrumCoupled/JonswapSpectrumCoupled" WvKinFile - Root name of externally generated wave data file(s) (quoted string) [used only when WaveMod=5 or 6] 1 NWaveElev - Number of points where the incident wave elevations can be computed (-) [ma12179.6ximum of 9 output locations] 0 WaveElevxi - List of xi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0] 0 WaveElevyi - List of yi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0] ---------------------- 2ND-ORDER WAVES ----------------------------------------- [unused with WaveMod=0 or 6] False WvDiffQTF - Full difference-frequency 2nd-order wave kinematics (flag) False WvSumQTF - Full summation-frequency 2nd-order wave kinematics (flag) 0 WvLowCOffD - Low frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method] 3.5 WvHiCOffD - High frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method] 0.1 WvLowCOffS - Low frequency cutoff used in the summation-frequencies (rad/s) [Only used with a summation-frequency method] 3.5 WvHiCOffS - High frequency cutoff used in the summation-frequencies (rad/s) [Only used with a summation-frequency method] ---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6] 0 CurrMod - Current profile model {0: none=no current, 1: standard, 2: user-defined from routine UserCurrent} (switch) 0 CurrSSV0 - Sub-surface current velocity at still water level (m/s) [used only when CurrMod=1] "DEFAULT" CurrSSDir - Sub-surface current heading direction (degrees) or DEFAULT (string) [used only when CurrMod=1] 0.57 CurrNSRef - Near-surface current reference depth (meters) [used only when CurrMod=1] 0 CurrNSV0 - Near-surface current velocity at still water level (m/s) [used only when CurrMod=1] 0 CurrNSDir - Near-surface current heading direction (degrees) [used only when CurrMod=1] 0 CurrDIV - Depth-independent current velocity (m/s) [used only when CurrMod=1] 0 CurrDIDir - Depth-independent current heading direction (degrees) [used only when CurrMod=1] ---------------------- FLOATING PLATFORM --------------------------------------- [unused with WaveMod=6] 1 PotMod - Potential-flow model {0: none=no potential flow, 1: frequency-to-time-domain transforms based on WAMIT output, 2: fluid-impulse theory (FIT)} (switch) "HydroData/TLP" PotFile - Root name of potential-flow model data; WAMIT output files containing the linear, nondimensionalized, hydrostatic restoring matrix (.hst), frequency-dependent hydrodynamic added mass matrix and damping matrix (.1), and frequency- and direction-dependent wave excitation force vector per unit wave amplitude (.3) (quoted string) [MAKE SURE THE FREQUENCIES INHERENT IN THESE WAMIT FILES SPAN THE PHYSICALLY-SIGNIFICANT RANGE OF FREQUENCIES FOR THE GIVEN PLATFORM; THEY MUST CONTAIN THE ZERO- AND INFINITE-FREQUENCY LIMITS!] 1.0 WAMITULEN - Characteristic body length scale used to redimensionalize WAMIT output (meters) [only used when PotMod=1] 0.1971 PtfmVol0 - Displaced volume of water when the platform is in its undisplaced position (m^3) [only used when PotMod=1; USE THE SAME VALUE COMPUTED BY WAMIT AS OUTPUT IN THE .OUT FILE!] 0 PtfmCOBxt - The xt offset of the center of buoyancy (COB) from the platform reference point (meters) [only used when PotMod=1] 0 PtfmCOByt - The yt offset of the center of buoyancy (COB) from the platform reference point (meters) [only used when PotMod=1] 1 RdtnMod - Radiation memory-effect model {0: no memory-effect calculation, 1: convolution, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ss INPUT FILE] 15 RdtnTMax - Analysis time for wave radiation kernel calculations (sec) [only used when PotMod=1; determines RdtnDOmega=Pi/RdtnTMax in the cosine transform; MAKE SURE THIS IS LONG ENOUGH FOR THE RADIATION IMPULSE RESPONSE FUNCTIONS TO DECAY TO NEAR-ZERO FOR THE GIVEN PLATFORM!] "DEFAULT" RdtnDT - Time step for wave radiation kernel calculations (sec) [only used when PotMod=1; DT<=RdtnDT<=0.1 recommended; determines RdtnOmegaMax=Pi/RdtnDT in the cosine transform] ---------------------- 2ND-ORDER FLOATING PLATFORM FORCES ---------------------- [unused with WaveMod=0 or 6, or PotMod=0 or 2] 0 MnDrift - Mean-drift 2nd-order forces computed {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero] 0 NewmanApp - Mean- and slow-drift 2nd-order forces computed with Newman's approximation {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero. Used only when WaveDirMod=0] 0 DiffQTF - Full difference-frequency 2nd-order forces computed with full QTF {0: None; [10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero] 0 SumQTF - Full summation -frequency 2nd-order forces computed with full QTF {0: None; [10, 11, or 12]: WAMIT file to use} ---------------------- FLOATING PLATFORM FORCE FLAGS -------------------------- [unused with WaveMod=6] True PtfmSgF - Platform horizontal surge translation force (flag) or DEFAULT True PtfmSwF - Platform horizontal sway translation force (flag) or DEFAULT True PtfmHvF - Platform vertical heave translation force (flag) or DEFAULT True PtfmRF - Platform roll tilt rotation force (flag) or DEFAULT True PtfmPF - Platform pitch tilt rotation force (flag) or DEFAULT True PtfmYF - Platform yaw rotation force (flag) or DEFAULT```

Dear Thomas,

Because of the properties of FFTs, the frequency resolution is dictated by the wave analysis length (WaveTMax) rather than the time step (WaveDT). That is, domega = 2*pi/WaveTMax or df = 1/WaveTMax. I suggest increasing WaveTMAx to get better frequency resolution. Often we set WaveTMax > 1 hr (3600 s).

Best regards,

Dear Jason,

Thank you for your very quick reply, that makes completely sense, the reason that i have chosen such a low WaveTMax, was to reduce the calculation time for each simulation, and to prevent running out of memory.
In retrospect, I should have chosen a much higher value for this parameter.