|
FhSim
3.1.0
Marine systems simulation
|
#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. | |
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.
| environment::wake::detail::SingleBodySource::SingleBodySource | ( | const WakeCastingObject & | object, |
| const WakeCastState & | reference | ||
| ) |
| [in] | object | The body; it must outlive this object. |
| [in] | reference | The body's reference at the step, finite. |