|
| virtual Status | Sample (double t, const double pos[3], JetSample &out) const =0 |
| |
| virtual JetSampleParts | SampleParts (double t, const double pos[3]) const |
| |
| virtual bool | MayReach (const WakeQueryRegion ®ion) const |
| |
|
virtual std::uint64_t | Revision () const |
| | The change signal of the jet, as WakeField::Revision(); the default, for a field that cannot tell, returns 0.
|
| |
|
virtual bool | StaticFrom (double t) const |
| | Whether Sample() stays the same from t on until Revision() changes, as WakeField::StaticFrom(); the default returns false.
|
| |
|
virtual void | SampleMany (double t, std::span< const std::array< double, 3 > > positions, std::span< JetSample > out, std::span< Status > status) const |
| | Samples many points at one time, as WakeField::SampleMany(); the default calls Sample() at each point.
|
| |
|
virtual void | Sketch (double t, FieldSketch &out) const |
| | Appends the jet's axis at t for a visualiser, as JetField::Sketch(); the default appends nothing.
|
| |
Anything that answers "what excess velocity does this jet add here, now?" for one registered jet (CONTEXT.md, Jet field; ADR 0003).
A jet field is not a WakeField: it returns a velocity Δu, not a deficit, and the registry adds the jets after the deficits are composed, u = u_amb + d_tot (u_s - u_amb) + sum Δu_j (WakeRegistry::Compose(), WakeComposition::Apply()). It is defined relative to the water at its source and translates with it. The threading contract is that of WakeField::Sample().