Write a custom Field or Disturbance¶
Draft
This guide is scaffolded. The outline below marks what it should cover.
Most extensions are a new Disturbance on an
existing Field — a new gravity source, a new flow.
A genuinely new physical kind is a new Field subclass.
To cover¶
- New disturbance (common case) — subclass
Disturbance, implementcontribute_at_sym(point, t), set thecombiningflag (additive / averaged / baseline), add it to the field instance. - Estimable disturbance — carry
State/Noisedeclarations so the disturbance becomes an EKF-estimated state (asCraftWindBubbledoes). - Body-anchored disturbance — emit it from a
FieldSourcepart so it rides a craft. - New field kind (rare) — subclass
Field/SuperposedField, setvalue_shape(the CasADi-MX value type) and override_zero_value()(the additive identity); for compound combining, overridevalue_at_sym()itself (seeFluidField/FluidState).
Source material¶
- Reference: Fields
- Concepts: Fields and disturbances
- Code:
manta/fields/base.py,manta/fields/gravity.py(simple disturbances),manta/fields/fluid.py(compound value)