FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
marenv::wake::JetField Class Referenceabstract

#include <JetField.h>

+ Inheritance diagram for marenv::wake::JetField:
+ Collaboration diagram for marenv::wake::JetField:

Public Member Functions

virtual Status Sample (double t, const double pos[3], JetSample &out) const =0
 
virtual JetSampleParts SampleParts (double t, const double pos[3]) const
 
virtual bool MayReach (const WakeQueryRegion &region) const
 

Detailed Description

Anything that answers "what excess velocity does this jet add here, now?" for one registered jet (CONTEXT.md, Jet field; ADR 0003).

A jet field is not a WakeField: it returns a velocity Δu, not a deficit, and the registry adds the jets after the deficits are composed, u = u_amb + d_tot (u_s - u_amb) + sum Δu_j (WakeRegistry::Compose(), WakeComposition::Apply()). It is defined relative to the water at its source and translates with it. The threading contract is that of WakeField::Sample().

Member Function Documentation

◆ MayReach()

virtual bool marenv::wake::JetField::MayReach ( const WakeQueryRegion &  region) const
inlinevirtual

Returns false only if the field, as published now, adds nothing in a region (as WakeField::MayReach(), owner decision R47).

Parameters
[in]regionThe sphere and time interval of the queries, and the cutoff.
Returns
False only if Sample(t, pos) gives Δu = 0 (region.cutoff = 0), or |Δu| below region.cutoff times the jet's velocity scale (region.cutoff > 0; the scale is the implementation's, PropellerJet: U + Δu₀), or a status other than OK, for every pos in the sphere and every t in [region.tBegin, region.tEnd]; true otherwise, or when the field cannot tell. The default returns true. Const and thread-safe.

Reimplemented in marenv::wake::PropellerJet.

◆ Sample()

virtual Status marenv::wake::JetField::Sample ( double  t,
const double  pos[3],
JetSample &  out 
) const
pure virtual

Returns the jet's excess velocity at a position and time (contract C4).

Parameters
[in]tSimulation time, s.
[in]posPosition (x,y,z) to query, m, NED.
[out]outΔu at pos, m/s, NED.
Returns
Status::OK, or Status::ERROR_NOT_SET (Δu = 0) before the first publish or outside the field. Const and thread-safe.

Implemented in marenv::wake::PropellerJet.

◆ SampleParts()

virtual JetSampleParts marenv::wake::JetField::SampleParts ( double  t,
const double  pos[3] 
) const
inlinevirtual

Returns the sample split into the parts its blend weighs, to compose at a later time (as WakeField::SampleParts(), owner ruling R136).

The default holds Sample(t, pos), for a field without a blend. Const and thread-safe.

Reimplemented in marenv::wake::PropellerJet.


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