IndisputableMonolith.Flight.Thrust
IndisputableMonolith/Flight/Thrust.lean · 45 lines · 3 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Flight.Medium
3import IndisputableMonolith.Flight.Pressure
4
5/-!
6# Flight Thrust Layer
7
8Defines a minimal “thrust observable” interface.
9
10At this stage, we do not attempt a full continuum derivation (surface integrals,
11control volumes, etc.). Instead we:
12- define a vector type,
13- define a placeholder thrust observable,
14- provide hypothesis interfaces that can later be strengthened.
15-/
16
17namespace IndisputableMonolith
18namespace Flight
19namespace Thrust
20
21open IndisputableMonolith.Flight
22
23/-- Minimal 3-vector type for thrust/acceleration. -/
24abbrev Vec3 := ℝ × ℝ × ℝ
25
26/-- Placeholder thrust observable on a medium state.
27
28This will be refined to a pressure-gradient / control-volume expression.
29-/
30noncomputable def thrustVector (_S : Medium.MediumState) : Vec3 := (0, 0, 0)
31
32/-- Aggregate thrust over a finite tick window `[t0, t0+N)`.
33
34At this stage we treat the thrust vector as externally provided per tick.
35-/
36noncomputable def netThrust (f : ℕ → Vec3) (t0 N : ℕ) : Vec3 :=
37 ( (Finset.range N).sum (fun k => (f (t0 + k)).1)
38 , (Finset.range N).sum (fun k => (f (t0 + k)).2.1)
39 , (Finset.range N).sum (fun k => (f (t0 + k)).2.2) )
40
41end Thrust
42end Flight
43end IndisputableMonolith
44
45