FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
WakeAccumulator.h
1#pragma once
4
5#include <marenv/wake/Superposition.h>
6#include <marenv/wake/WakeField.h>
7#include <marenv/wake/WakeTypes.h>
8
9namespace marenv::wake
10{
15{
16 double deficit;
17 double sourceVelocity[3];
19
21 void Apply(double vel[3]) const
22 {
23 for (int i = 0; i < 3; ++i)
24 vel[i] += deficit * (sourceVelocity[i] - vel[i]);
25 }
26};
27
52{
53public:
56 double Add(const WakeField& field, double t, const double pos[3]);
57
60 double Add(const WakeSample& sample);
61
64 double Add(const WakeSampleParts& parts, double t);
65
69 double AddOwn(const WakeField& field, double t, const double pos[3]);
70
74 double AddOwn(const WakeSample& sample);
75
79 double AddOwn(const WakeSampleParts& parts, double t);
80
83
84private:
86 double Weigh(const WakeSample& sample);
87
88 MomentumFluxSum m_registered;
89 double m_own = 0.0;
90 bool m_hasOwn = false;
91 double m_weightSum = 0.0;
92 double m_weightedVel[3] = {0.0, 0.0, 0.0};
93 int m_numSources = 0;
94};
95} // namespace marenv::wake
Definition Superposition.h:83
Definition WakeAccumulator.h:52
double AddOwn(const WakeSampleParts &parts, double t)
WakeComposition Result() const
The composed deficit, the deficit-weighted source velocity (zero without a deficit) and the number of...
double Add(const WakeSampleParts &parts, double t)
double AddOwn(const WakeField &field, double t, const double pos[3])
double AddOwn(const WakeSample &sample)
double Add(const WakeSample &sample)
double Add(const WakeField &field, double t, const double pos[3])
Definition WakeField.h:50
Definition WakeAccumulator.h:15
int numSources
Number of wake fields with a non-zero deficit.
Definition WakeAccumulator.h:18
double sourceVelocity[3]
Deficit-weighted mean of the source velocities u_s,i, m/s, NED; zero when d_tot = 0.
Definition WakeAccumulator.h:17
void Apply(double vel[3]) const
Applies the wake in place to a water velocity: vel += d_tot (u_s - vel).
Definition WakeAccumulator.h:21
double deficit
d_tot = 1 - (1 - D) (1 - d_own), D the momentum-flux composition of the registered d_i (R95),...
Definition WakeAccumulator.h:16
Definition WakeSampleParts.h:111
Definition WakeTypes.h:21