FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
GriddedWake.h
1#pragma once
3
4#include <marenv/grid/UniformGrid3.h>
5#include <marenv/marenv.h>
6#include <marenv/wake/WakeBlend.h>
7#include <marenv/wake/WakeField.h>
8#include <marenv/wake/WakeTypes.h>
9
10#include <memory>
11#include <string>
12
13namespace marenv::wake
14{
23{
26 double sourceVelocity[3];
27 std::string warning;
28
36 bool Deficit(double t, const double pos[3], double& deficit) const;
37
45 bool Sample(double t, const double pos[3], WakeSample& out) const;
46
53 void ToFrame(double t, const double pos[3], double xi[3]) const;
54};
55
89class GriddedWake : public WakeField
90{
91public:
92 GriddedWake() = default;
93 ~GriddedWake() override = default;
94
104 void Publish(std::shared_ptr<const GriddedSnapshot> snapshot, double blendTime = 0.0);
105
114 Status Sample(double t, const double pos[3], WakeSample& out) const override;
115
121 WakeSampleParts SampleParts(double t, const double pos[3]) const override;
122
123private:
125
127 static Status SampleState(const Blend::State* state, double t, const double pos[3], WakeSample& out);
128
129 Blend m_blend;
130};
131} // namespace marenv::wake
Definition UniformGrid3.h:27
Definition GriddedWake.h:90
void Publish(std::shared_ptr< const GriddedSnapshot > snapshot, double blendTime=0.0)
Status Sample(double t, const double pos[3], WakeSample &out) const override
WakeSampleParts SampleParts(double t, const double pos[3]) const override
Definition WakeField.h:50
Status
Definition marenv.h:40
Definition GriddedWake.h:23
grid::UniformGrid3< double > logRatio
L = sum log(1 - d_i) at the nodes, frame coordinates.
Definition GriddedWake.h:25
void ToFrame(double t, const double pos[3], double xi[3]) const
std::string warning
Resolution warning of WakeBuilder::Finish; empty when x_start >= 1.5 cells for every source.
Definition GriddedWake.h:27
bool Deficit(double t, const double pos[3], double &deficit) const
double sourceVelocity[3]
Source velocity u_s of the sources, m/s, NED.
Definition GriddedWake.h:26
bool Sample(double t, const double pos[3], WakeSample &out) const
WakeFrame frame
Frame of the grid; pose(t) = origin + velocity (t - t0).
Definition GriddedWake.h:24
Definition WakeTypes.h:66
Definition WakeSampleParts.h:111
Definition WakeTypes.h:21