FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
environment::wake::detail::SingleBodySource Class Referencefinal

#include <SingleBodySource.h>

+ Inheritance diagram for environment::wake::detail::SingleBodySource:
+ Collaboration diagram for environment::wake::detail::SingleBodySource:

Public Member Functions

 SingleBodySource (const WakeCastingObject &object, const WakeCastState &reference)
 
int NumCarriers () const override
 One carrier.
 
void CarrierPosition (const double *X, int carrier, double pos[3]) const override
 The reference position [m], NED.
 
void CarrierVelocity (const double *X, int carrier, double vel[3]) const override
 The reference velocity [m/s], NED.
 
int NumSources () const override
 One source.
 
int SourceCarriers (int source, int carriers[3]) const override
 The source sits on carrier 0.
 
double SourceArea (const double *, int) const override
 0: the one source weighs 1 in the frame means whatever its area, which CurrentLoad gives only later in the rebuild.
 
SourceLoad EvaluateSource (const double *X, int source, const double sourceVel[3], const double waterVel[3]) const override
 The force only (WakeCastingObject::CurrentLoad along ê_U): there is no private source.
 
double FrontalExtent (const double *X, const marenv::wake::WakeFrame &frame, double rearCentre[3]) const override
 The frontal area [m²] and rear centre of the last EvaluateSource.
 

Detailed Description

One body as a WakeSourceSet: one carrier, its reference, and one source on it (design §3.1, §3.3).

EvaluateSource asks WakeCastingObject::CurrentLoad at the source's inflow along ê_U, the unit relative flow to the filtered source velocity u_s; the object takes the force at its own, unfiltered state velocity (QF12). Below marenv::wake::kMinRelativeFlow it asks nothing and the load, the frontal area and the rear centre are 0. FrontalExtent returns the frontal area and rear centre of that call. A non-finite force or rear centre gives a NaN rear centre, so the lumped source casts nothing, also when relaxed (marenv::wake::MakeLumpedSource, MENV-0020). Made for one WakeCaster::Update; the frontal extent is cached between the two calls.

Constructor & Destructor Documentation

◆ SingleBodySource()

environment::wake::detail::SingleBodySource::SingleBodySource ( const WakeCastingObject &  object,
const WakeCastState &  reference 
)
Parameters
[in]objectThe body; it must outlive this object.
[in]referenceThe body's reference at the step, finite.

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