Пример #1
0
    def calculate_viscous_effects(self, S_wave):
        """
        Calculate viscous forces and damping with the given wave spectrum.

        Note that this can be iterative, as the transfer functions will be
        re-calculated using previously-calculated viscous effects.
        """
        assert len(S_wave) == len(self.w)
        H_wave = self.transfer_function_from_wave_elevation()
        self.Bv, self.Fvc, self.Fvv = self.morison.total_drag(self.w, H_wave,
                                                              S_wave)

        # Fvv is the actual force/unit wave height at each wave
        # frequency -- to get the spectrum, it's like the first-order
        # wave force spectrum.
        self.viscous_force_spectrum = response_spectrum(self.Fvv, S_wave)
Пример #2
0
    def response_spectrum(self, S_wave, second_order=True, viscous=True):
        """Convenience method which calculates the response spectrum
        """
        S1 = self.hydro_info.first_order_force_spectrum(self.w, S_wave)
        if second_order:
            S2 = self.hydro_info.second_order_force_spectrum(self.w, S_wave)
        else:
            S2 = zeros_like(S1)
        if viscous:
            self.calculate_viscous_effects(S_wave)
            Sv = self.viscous_force_spectrum
        else:
            Sv = zeros_like(S1)
        self.calculate_wave_drift_damping(S_wave)

        # XXX this doesn't work well if second_order or viscous is set
        # to False -- transfer_function() will use previously-calculated values

        H = self.transfer_function()
        SF = S1 + S2 + Sv
        Sx = response_spectrum(H[:, :, :6], SF)
        return Sx
Пример #3
0
 def first_order_force_spectrum(self, w, S_wave, heading=0):
     # Interpolate complex wave excitation force
     X = self.X(w, heading)
     return response_spectrum(X, S_wave)
Пример #4
0
 def first_order_force_spectrum(self, w, S_wave, heading=0):
     # Interpolate complex wave excitation force
     X = self.X(w, heading)
     return response_spectrum(X, S_wave)