FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
marenv::wake::JetProfile Class Reference

#include <PropellerJet.h>

Public Member Functions

 JetProfile (const JetSourceInput &input)
 
bool Active () const
 True if the jet casts anything: T_eff > 0.
 
double AdvanceSpeed () const
 The co-flow speed U = max(u_a, 0), m/s.
 
double Efflux () const
 The efflux velocity Δu₀, m/s; 0 when not active.
 
double InitialSigma () const
 sigma_0 = D_p / sqrt(8), m.
 
double ZoneEnd () const
 x_0 = sigma_0 / c, the end of the zone of flow establishment, m.
 
double RampLength () const
 L_ramp = kJetRampFactor D_p, m.
 
double VelocityScale () const
 The jet's velocity scale U + Δu₀, m/s, against which MayReach() applies a cutoff.
 
JetCentreline At (double x) const
 Centreline amplitude, the onset ramp included, and sigma at x, m downstream of the propeller plane.
 
double CentrelineExcess (double sigma) const
 The centreline excess Δu_c = sqrt(U^2 + q / sigma^2) - U at width sigma, m/s.
 
double DistanceAt (double sigma) const
 The distance x(sigma) >= x_0 at which the established jet has width sigma >= sigma_0, m (closed form).
 
double SigmaAt (double x) const
 The width sigma(x) of the established jet at x >= x_0, m (inverse of DistanceAt()).
 
double PeakAmplitude (double xFrom, double xTo) const
 

Detailed Description

The law of one propeller jet along its axis (doc/wake.md § 4.2), built once per publish.

With U = max(u_a, 0), q = T_eff / (rho pi) and c = kJetSpreadingRate:

  • efflux Δu₀ = sqrt(U^2 + 8 T_eff / (rho pi D_p^2)) - U (actuator disc), evaluated without cancellation;
  • sigma_0 = D_p / sqrt(8), x_0 = sigma_0 / c (1.96 D_p), L_ramp = kJetRampFactor D_p (0.5 D_p);
  • x < 0: 0; 0 <= x <= x_0: amplitude S(x / L_ramp) Δu₀, sigma = sigma_0 (S the onset ramp, OnsetRamp());
  • x > x_0: sigma(x) the inverse of the closed-form x(sigma) of dsigma/dx = c Δu_c / (U + Δu_c), found by safeguarded Newton steps, and Δu_c = sqrt(U^2 + q / sigma^2) - U, so that rho pi sigma^2 (2 U Δu_c + Δu_c^2) = T_eff at every x from the end of the ramp on. T_eff <= 0 casts nothing (Active() false, amplitude 0).

Constructor & Destructor Documentation

◆ JetProfile()

marenv::wake::JetProfile::JetProfile ( const JetSourceInput &  input)
explicit
Parameters
[in]inputThe jet's source; propellerDiameter and rho positive, the strength finite (not checked here: PropellerJet::Publish() validates).

Member Function Documentation

◆ PeakAmplitude()

double marenv::wake::JetProfile::PeakAmplitude ( double  xFrom,
double  xTo 
) const

Upper bound of At(x).amplitude for x in [xFrom, xTo], 0 <= xFrom <= xTo, m.

The amplitude rises over the ramp, is Δu₀ up to x_0 and falls beyond, so the bound is S(xTo / L_ramp) Δu₀ for xTo <= L_ramp, Δu₀ if xFrom <= x_0, else the amplitude at xFrom.


The documentation for this class was generated from the following file: