You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Decouple irregular wave model from simulation parameters; add frequency-domain excitation transfer function
Remove simulation_dt_ and simulation_duration_ from IrregularWaveParams, eliminating the dependency that prevented adaptive time integration.
The excitation convolution is replaced by a pre-computed frequency-domain transfer function that evaluates in O(N_freq) per DOF per timestep instead of O(N_irf × N_freq). The eta-file-import path retains direct interpolation-based convolution. nfrequencies_ is now a required parameter (no fallback to simulation_duration_). A new ComputeElevationTimeSeries() utility replaces the old pre-computed arrays. Theory documentation updated with the derivation.
Copy file name to clipboardExpand all lines: docs/_main_pages/theory.md
+38-3Lines changed: 38 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -102,15 +102,50 @@ In HydroChrono, the force is computed through trapezoidal integration at the tim
102
102
103
103
### Wave excitation force, \\( F_{exc}(t) \\)
104
104
105
-
The method to compute the wave excitation force involves convolution between the excitation Impulse Response Function (IRF) \\( K_{exc}(t) \\) and the wave elevation time sequence\\( \eta(t) \\):
105
+
The wave excitation force is defined by the convolution of the excitation Impulse Response Function (IRF) \\( K_{exc}(\tau) \\) with the free-surface elevation \\( \eta(t) \\):
106
106
107
107
$$
108
-
F_{exc}(t) = \int_{-\infty}^{+\infty} K_{exc}(\tau) \eta(x, y, t-\tau) d\tau
108
+
F_{exc}(t) = \int_{-\infty}^{+\infty} K_{exc}(\tau) \, \eta(x, y, t-\tau) \, d\tau
109
109
$$
110
110
111
111
By amalgamating these forces into the equation of motion, one can effectively model the behavior of a multibody oceanic system influenced by hydrodynamic forces.
112
112
113
-
In HydroChrono, the force is computed through trapezoidal integration by discretizing at the time values given by the excitation IRF time array relative to the current simulation time step. Linear interpolation is done for the free surface elevation if a given time value is between two values of the time series of the precomputed free surface elevation.
113
+
#### Numerical evaluation
114
+
115
+
The continuous convolution integral is discretized using the quadrature points \\( \tau_j \\) and widths \\( \Delta\tau_j \\) provided by the excitation IRF time array from the BEM data:
where \\( d \\) denotes a particular degree of freedom.
122
+
123
+
HydroChrono supports two evaluation strategies, depending on how the sea state is defined.
124
+
125
+
**Frequency-domain transfer function (spectrum-based waves).** When the irregular sea state is represented as a linear superposition of \\( N_f \\) wave components,
the double summation over IRF points and frequency components can be factored by swapping the summation order and applying the angle-sum identity. This yields:
This reduces the per-timestep cost from \\( \mathcal{O}(N_{irf} \times N_f) \\) to \\( \mathcal{O}(N_f) \\) — the same cost as a single free-surface elevation evaluation — while producing results identical to the time-domain convolution to machine precision. Crucially, because the wave elevation is evaluated analytically, this formulation has no dependency on the simulation time step or duration, enabling the use of adaptive time integrators.
145
+
146
+
During the ramp-up period (when a cosine or linear ramp modifies \\( \eta \\)), the frequency-domain factoring does not apply. HydroChrono falls back to a batched matrix evaluation that computes \\( \eta \\) at all IRF quadrature points simultaneously via pre-computed trigonometric matrices, keeping the ramp startup efficient.
147
+
148
+
**Interpolation-based evaluation (imported elevation time series).** When the free-surface elevation is provided as an external time series (e.g., from a wave tank measurement or a coupled model), the convolution is evaluated directly by linearly interpolating the stored \\( \eta \\) data at each quadrature point \\( t - \tau_j \\). This path retains the traditional \\( \mathcal{O}(N_{irf}) \\) per-timestep cost.
0 commit comments