FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
TestWakeBody.h
1#pragma once
2
8#include <fhsim/simobject/SimObject.h>
9#include <fhsim_environment/BodyWake.h>
10#include <fhsim_environment/hydrodynamics/SphereHydro.h>
11#include <memory>
12#include <optional>
13#include <string>
14
15namespace testmodels
16{
17
72class TestWakeBody : public SimObject
73{
74public:
83 TestWakeBody(std::string SimObjectName, ISimObjectCreator* Creator);
84 ~TestWakeBody() override;
85
94 void FinalSetup(double T, const double* X, ISimObjectCreator* Creator) override;
95
101 void PreOdeFcn(double T, const double* X) override;
102
104 void OdeFcn(double T, const double* X, double* XDot) const override;
105
107 const double* Position(double T, const double* X);
109 const double* WaterVelocity(double T, const double* X);
111 const double* Force(double T, const double* X);
112
114 const environment::wake::BodyWake* Wake() const { return m_wake.get(); }
115
116private:
117 int m_positionIndex = 0;
118 int m_velocityIndex = 0;
119 environment::sphere_hydro::Sphere m_sphere;
120 std::optional<environment::sphere_hydro::SphereCaster> m_caster;
121 std::unique_ptr<environment::wake::SingleBodyWake> m_wake;
122 double m_waterVelocity[3] = {0.0, 0.0, 0.0};
123 double m_force[3] = {0.0, 0.0, 0.0};
124};
125
126} // namespace testmodels
Definition TestWakeBody.h:73
void OdeFcn(double T, const double *X, double *XDot) const override
The position moves at the constant velocity.
const environment::wake::BodyWake * Wake() const
The body's BodyWake; never null.
Definition TestWakeBody.h:114
void FinalSetup(double T, const double *X, ISimObjectCreator *Creator) override
const double * WaterVelocity(double T, const double *X)
Output port WaterVelocity [m/s], NED.
TestWakeBody(std::string SimObjectName, ISimObjectCreator *Creator)
const double * Force(double T, const double *X)
Output port Force [N], NED.
const double * Position(double T, const double *X)
Output port Position [m], NED.
void PreOdeFcn(double T, const double *X) override
SimObjects for testing environment functionality.
Definition TestBuoy1.h:17