40#include <fhsim/ISimObjectLogger.h>
41#include <fhsim_environment/WakeSchedule.h>
42#include <fhsim_environment/WakeSourceSet.h>
43#include <marenv/wake/JetField.h>
54class EnvironmentProvider;
82 void Register(EnvironmentProvider& environment);
92 void Update(
double T,
const double* X,
const PropelledObject&
object, ISimObjectLogger& logger);
95 const std::string&
Id()
const {
return m_id; }
97 std::shared_ptr<const marenv::wake::JetField>
Field()
const;
103 const WakeSchedule&
Schedule()
const {
return m_schedule; }
107 bool SkipUnusableInput(
double T,
const WakeCastState& reference,
const PropellerJetInput& input, ISimObjectLogger& logger);
109 void CheckThrustDrift(
double T,
double effectiveThrust, ISimObjectLogger& logger);
111 void Rebuild(
double T,
const PropellerJetInput& input,
double flowSpeed, ISimObjectLogger& logger);
114 WakeSettings m_settings;
116 WakeSchedule m_schedule;
117 EnvironmentProvider* m_environment =
nullptr;
118 std::shared_ptr<marenv::wake::PropellerJet> m_jet;
120 double m_sourceVelocity[3] = {0.0, 0.0, 0.0};
121 bool m_skippingUnusable =
false;
122 double m_frozenThrust = 0.0;
Definition PropellerJetCaster.h:66
std::shared_ptr< const marenv::wake::JetField > Field() const
The registered jet, for marenv::wake::WakeQuery::excludeJet; null before Register().
const WakeSchedule & Schedule() const
The schedule: rebuild count, Freeze state and the last |ΔT_eff|/T_eff.
Definition PropellerJetCaster.h:103
const std::string & Id() const
The registry id, <name>/jet.
Definition PropellerJetCaster.h:95
void Update(double T, const double *X, const PropelledObject &object, ISimObjectLogger &logger)
const double * SourceVelocity() const
The filtered source velocity u_s [m/s], NED.
Definition PropellerJetCaster.h:101
const marenv::wake::JetSourceInput & LastInput() const
The jet input of the last rebuild, ρ included, T_eff after relaxation; all zero before the first.
Definition PropellerJetCaster.h:99
void Register(EnvironmentProvider &environment)
PropellerJetCaster(const std::string &name, const WakeSettings &settings, double rho)
The casters behind BodyWake; internal, not for SimObjects (ENV-0102).
Definition CasterStep.h:19