pyflightstream 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. pyflightstream/__init__.py +27 -0
  2. pyflightstream/cases/__init__.py +332 -0
  3. pyflightstream/cases/matrix_legacy.py +337 -0
  4. pyflightstream/commands/__init__.py +544 -0
  5. pyflightstream/commands/_meta.yaml +18 -0
  6. pyflightstream/commands/actuators.yaml +167 -0
  7. pyflightstream/commands/advanced_settings.yaml +136 -0
  8. pyflightstream/commands/aeroelastic_coupling.yaml +172 -0
  9. pyflightstream/commands/boundary_conditions.yaml +153 -0
  10. pyflightstream/commands/ccs_wing_mesh.yaml +74 -0
  11. pyflightstream/commands/coordinate_systems.yaml +123 -0
  12. pyflightstream/commands/file_io.yaml +82 -0
  13. pyflightstream/commands/mesh_import_export.yaml +72 -0
  14. pyflightstream/commands/motion_definitions.yaml +185 -0
  15. pyflightstream/commands/probe_points.yaml +116 -0
  16. pyflightstream/commands/runtime_settings.yaml +160 -0
  17. pyflightstream/commands/scenes.yaml +14 -0
  18. pyflightstream/commands/script_controls.yaml +39 -0
  19. pyflightstream/commands/simulation_controls.yaml +30 -0
  20. pyflightstream/commands/solver_analysis.yaml +118 -0
  21. pyflightstream/commands/solver_export.yaml +138 -0
  22. pyflightstream/commands/solver_initialization.yaml +95 -0
  23. pyflightstream/commands/solver_settings.yaml +120 -0
  24. pyflightstream/commands/streamlines.yaml +63 -0
  25. pyflightstream/commands/surface_sections.yaml +145 -0
  26. pyflightstream/commands/sweeper.yaml +115 -0
  27. pyflightstream/commands/unsteady_solver.yaml +68 -0
  28. pyflightstream/commands/volume_sections.yaml +148 -0
  29. pyflightstream/farfield/__init__.py +613 -0
  30. pyflightstream/files/__init__.py +375 -0
  31. pyflightstream/fsi/__init__.py +57 -0
  32. pyflightstream/fsi/beam.py +417 -0
  33. pyflightstream/fsi/centrifugal.py +418 -0
  34. pyflightstream/fsi/cli.py +206 -0
  35. pyflightstream/fsi/config.py +316 -0
  36. pyflightstream/fsi/driver.py +501 -0
  37. pyflightstream/fsi/kinematics.py +153 -0
  38. pyflightstream/fsi/loads.py +740 -0
  39. pyflightstream/fsi/nodes.py +463 -0
  40. pyflightstream/fsi/state.py +181 -0
  41. pyflightstream/post/__init__.py +18 -0
  42. pyflightstream/post/writers.py +195 -0
  43. pyflightstream/probes/__init__.py +453 -0
  44. pyflightstream/probes/geometry.py +281 -0
  45. pyflightstream/probes/planar.py +477 -0
  46. pyflightstream/qa/__init__.py +59 -0
  47. pyflightstream/qa/cli.py +364 -0
  48. pyflightstream/qa/compat.py +285 -0
  49. pyflightstream/qa/drift.py +406 -0
  50. pyflightstream/qa/geometry.py +421 -0
  51. pyflightstream/qa/physics.py +1744 -0
  52. pyflightstream/qa/probes.py +1023 -0
  53. pyflightstream/qa/references/PHY-01.yaml +38 -0
  54. pyflightstream/qa/references/PHY-02.yaml +28 -0
  55. pyflightstream/qa/references/PHY-05.yaml +29 -0
  56. pyflightstream/qa/references/PHY-06.yaml +90 -0
  57. pyflightstream/qa/references/SMI-01.yaml +28 -0
  58. pyflightstream/qa/references/SMI-02.yaml +28 -0
  59. pyflightstream/qa/specs.py +1405 -0
  60. pyflightstream/reference.py +465 -0
  61. pyflightstream/results/__init__.py +547 -0
  62. pyflightstream/run/__init__.py +677 -0
  63. pyflightstream/script/__init__.py +474 -0
  64. pyflightstream/script/helpers.py +844 -0
  65. pyflightstream/versions.py +191 -0
  66. pyflightstream-0.2.0.dist-info/METADATA +88 -0
  67. pyflightstream-0.2.0.dist-info/RECORD +71 -0
  68. pyflightstream-0.2.0.dist-info/WHEEL +5 -0
  69. pyflightstream-0.2.0.dist-info/entry_points.txt +3 -0
  70. pyflightstream-0.2.0.dist-info/licenses/LICENSE +21 -0
  71. pyflightstream-0.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,167 @@
1
+ # Chapter: Scripting reference, Actuators (SRC-003 pp.323-324).
2
+ # Actuator discs are the linearized propeller slipstream surrogate
3
+ # (SRC-003 pp.185-187); they are defined before solver initialization.
4
+
5
+ CREATE_NEW_ACTUATOR:
6
+ layout: inline
7
+ phase: setup
8
+ args:
9
+ - name: type
10
+ type: enum
11
+ values: [PROPELLER]
12
+ - name: subtype
13
+ type: enum
14
+ values: [CUSTOM, ELLIPTICAL]
15
+ required: false
16
+ - name: name
17
+ type: str
18
+ manual_ref: "SRC-003 p.323"
19
+ versions:
20
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
21
+ notes: >
22
+ SUBTYPE selects the thrust profile model and applies only to the
23
+ PROPELLER type. CUSTOM imports a radial force distribution;
24
+ ELLIPTICAL is specified by net thrust and RPM (SRC-003 p.185).
25
+
26
+ SET_ACTUATOR_NAME:
27
+ layout: inline
28
+ phase: setup
29
+ args:
30
+ - name: actuator_index
31
+ type: int
32
+ - name: name
33
+ type: str
34
+ manual_ref: "SRC-003 p.323"
35
+ versions:
36
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
37
+
38
+ SET_ACTUATOR_AXIS:
39
+ layout: inline
40
+ phase: setup
41
+ args:
42
+ - name: actuator_index
43
+ type: int
44
+ - name: frame
45
+ type: int
46
+ - name: axis
47
+ type: enum
48
+ values: [X, Y, Z]
49
+ - name: offset
50
+ type: float
51
+ unit: "simulation length units"
52
+ manual_ref: "SRC-003 p.323"
53
+ versions:
54
+ "26.120": {status: documented}
55
+ notes: >
56
+ Places the actuator disc on an axis of a local coordinate system
57
+ (frame index greater than 1); the frame must exist before this
58
+ call, which is the pre-solver definition discipline the builder
59
+ enforces at M2.
60
+
61
+ SET_ACTUATOR_RADIUS:
62
+ layout: inline
63
+ phase: setup
64
+ args:
65
+ - name: actuator_index
66
+ type: int
67
+ - name: r_tip
68
+ type: float
69
+ unit: "simulation length units"
70
+ - name: r_hub
71
+ type: float
72
+ unit: "simulation length units"
73
+ manual_ref: "SRC-003 p.323"
74
+ versions:
75
+ "26.120": {status: documented}
76
+
77
+ SET_PROP_ACTUATOR_RPM:
78
+ layout: inline
79
+ phase: setup
80
+ args:
81
+ - name: actuator_index
82
+ type: int
83
+ - name: rpm
84
+ type: float
85
+ unit: "rev/min"
86
+ manual_ref: "SRC-003 p.323"
87
+ versions:
88
+ "26.120": {status: documented}
89
+ notes: >
90
+ Sign selects the rotation direction about the actuator axis.
91
+
92
+ SET_PROP_ACTUATOR_PROFILE:
93
+ layout: inline
94
+ phase: setup
95
+ args:
96
+ - name: actuator_index
97
+ type: int
98
+ - name: units_type
99
+ type: enum
100
+ values: [NEWTONS, KILO-NEWTONS, POUND-FORCE, KILOGRAM-FORCE]
101
+ - name: n_blades
102
+ type: int
103
+ - name: file_name
104
+ type: path
105
+ own_line: true
106
+ manual_ref: "SRC-003 pp.323-324"
107
+ versions:
108
+ "26.120": {status: documented}
109
+ notes: >
110
+ Imports a custom radial thrust profile; the TXT file path follows
111
+ on the line after the inline arguments. UNITS_TYPE gives the force
112
+ unit used inside the file.
113
+
114
+ SET_PROP_ACTUATOR_THRUST:
115
+ layout: inline
116
+ phase: setup
117
+ args:
118
+ - name: actuator_index
119
+ type: int
120
+ - name: ct
121
+ type: float
122
+ - name: thrust_type
123
+ type: enum
124
+ values: [COEFFICIENT, NEWTONS, POUNDS]
125
+ manual_ref: "SRC-003 p.324"
126
+ versions:
127
+ "26.120": {status: documented}
128
+ notes: >
129
+ Net thrust of the disc. The manual warns to verify that the
130
+ coefficient convention matches the solver formulation and
131
+ recommends dimensional thrust to avoid ambiguity (SRC-003 p.187).
132
+
133
+ SET_PROP_ACTUATOR_SWIRL:
134
+ layout: inline
135
+ phase: setup
136
+ args:
137
+ - name: actuator_index
138
+ type: int
139
+ - name: swirl_factor
140
+ type: float
141
+ manual_ref: "SRC-003 p.324"
142
+ versions:
143
+ "26.120": {status: documented}
144
+ notes: >
145
+ Fraction between 0 and 1 of the swirl velocity kept downstream;
146
+ values below 1 mimic a stator de-swirling the slipstream
147
+ (SRC-003 p.186).
148
+
149
+ ENABLE_ACTUATOR:
150
+ layout: inline
151
+ phase: setup
152
+ args:
153
+ - name: actuator_index
154
+ type: int
155
+ manual_ref: "SRC-003 p.324"
156
+ versions:
157
+ "26.120": {status: documented}
158
+
159
+ DELETE_ACTUATOR:
160
+ layout: inline
161
+ phase: setup
162
+ args:
163
+ - name: actuator_index
164
+ type: int
165
+ manual_ref: "SRC-003 p.324"
166
+ versions:
167
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
@@ -0,0 +1,136 @@
1
+ # Chapter: Scripting reference, Advanced Settings (SRC-003
2
+ # pp.344-346). Only the entries needed by the core steady path are
3
+ # drafted at M1; the remaining toggles of the chapter await the cases
4
+ # that exercise them.
5
+
6
+ SET_SOLVER_CONVERGENCE_ITERATIONS:
7
+ layout: inline
8
+ phase: init
9
+ args:
10
+ - name: value
11
+ type: int
12
+ manual_ref: "SRC-003 p.344"
13
+ versions:
14
+ "26.120": {status: documented}
15
+ notes: >
16
+ Number of iterations the solver must remain below the convergence
17
+ threshold before convergence is declared.
18
+
19
+ SOLVER_MINIMUM_CP:
20
+ layout: inline
21
+ phase: init
22
+ args:
23
+ - name: cp
24
+ type: float
25
+ manual_ref: "SRC-003 p.345"
26
+ versions:
27
+ "26.120": {status: documented}
28
+ notes: >
29
+ Lower limiter on the pressure coefficient; the solver default is
30
+ -20 (SRC-003 p.221).
31
+
32
+ REYNOLDS_AVERAGED_DRAG_FORCES:
33
+ layout: inline
34
+ phase: init
35
+ args:
36
+ - name: mode
37
+ type: enum
38
+ values: [ENABLE, DISABLE]
39
+ manual_ref: "SRC-003 p.344"
40
+ versions:
41
+ "26.120": {status: documented}
42
+ notes: >
43
+ Toggles the Reynolds-averaged (flat plate) boundary layer
44
+ calculations.
45
+
46
+ SOLVER_SET_MESH_INDUCED_WAKE_VELOCITY:
47
+ layout: inline
48
+ phase: init
49
+ args:
50
+ - name: mode
51
+ type: enum
52
+ values: [ENABLE, DISABLE]
53
+ manual_ref: "SRC-003 p.344"
54
+ versions:
55
+ "26.120": {status: documented}
56
+
57
+ SOLVER_SET_FARFIELD_LAYERS:
58
+ layout: inline
59
+ phase: init
60
+ args:
61
+ - name: layers
62
+ type: int
63
+ manual_ref: "SRC-003 p.344"
64
+ versions:
65
+ "26.120": {status: documented}
66
+ notes: >
67
+ Far-field agglomeration layer count, integer between 1 and 5;
68
+ the solver default is 3.
69
+
70
+ SOLVER_UNSTEADY_PRESSURE_AND_KUTTA:
71
+ layout: inline
72
+ phase: init
73
+ args:
74
+ - name: mode
75
+ type: enum
76
+ values: [ENABLE, DISABLE]
77
+ manual_ref: "SRC-003 p.344"
78
+ versions:
79
+ "26.120": {status: documented}
80
+ notes: >
81
+ Toggles the unsteady Bernoulli and Kutta terms of the unsteady
82
+ solver.
83
+
84
+ SET_WAKE_TERMINATION_TIME_STEPS:
85
+ layout: inline
86
+ phase: init
87
+ args:
88
+ - name: time_steps
89
+ type: int
90
+ manual_ref: "SRC-003 p.344"
91
+ versions:
92
+ "26.120": {status: documented}
93
+ notes: >
94
+ Number of time steps after which a wake vortex filament edge that
95
+ lost all of its strength is removed from the simulation.
96
+
97
+ SET_WAKE_ON_WAKE_INDUCTION:
98
+ layout: inline
99
+ phase: init
100
+ args:
101
+ - name: mode
102
+ type: enum
103
+ values: [ENABLE, DISABLE]
104
+ manual_ref: "SRC-003 pp.344-345"
105
+ versions:
106
+ "26.120": {status: documented}
107
+ notes: >
108
+ Toggles the wake-on-wake induced velocity computation.
109
+
110
+ ADDITIONAL_WAKE_RELAXATION_ITERATION:
111
+ layout: inline
112
+ phase: init
113
+ args:
114
+ - name: mode
115
+ type: enum
116
+ values: [ENABLE, DISABLE]
117
+ manual_ref: "SRC-003 p.345"
118
+ versions:
119
+ "26.120": {status: documented}
120
+ notes: >
121
+ Performs one additional wake relaxation iteration.
122
+
123
+ AEROELASTIC_RBF_TYPE:
124
+ layout: inline
125
+ phase: init
126
+ args:
127
+ - name: rbf_type
128
+ type: enum
129
+ values: [WENDLAND_C2, GAUSSIAN, THIN_PLATE_SPLINE, MULTI_QUADRATIC, INV_MULTI_QUADRATIC]
130
+ manual_ref: "SRC-003 p.345"
131
+ versions:
132
+ "26.120": {status: documented}
133
+ notes: >
134
+ RBF mesh morphing algorithm of the aeroelastic coupling; the
135
+ solver also accepts the numeric labels 1 to 5 documented on the
136
+ same page, the emitter uses the names.
@@ -0,0 +1,172 @@
1
+ # Aeroelastic Coupling Toolbox scripting commands (SRC-003 pp.375-376;
2
+ # new in 26.1 per the release notes). This is the command family the
3
+ # solver actually implements for FSI coupling: the SET_MOTION_FSI pair
4
+ # of the motion chapter (SRC-003 pp.335-336) is rejected as
5
+ # unrecognized by build 7012026 (WP1 dry run evidence,
6
+ # reports/RPT-005_fsi-dry-run_2026-07-21.md). All eleven commands of
7
+ # this family were exercised successfully in that dry run on 26.120;
8
+ # formal Tier 2 promotion follows the next validity sweep (PLN-019).
9
+ #
10
+ # Behavior finding on build 7012026 (WP7 probes,
11
+ # reports/RPT-007_soft-pilot-morphing-investigation_2026-07-21.md):
12
+ # the coupling loop runs end to end, and FSIDisp.txt is read every
13
+ # step, but the mesh morphing is silently NOT applied to boundaries
14
+ # attached to a rotary motion definition; a motionless boundary morphs
15
+ # correctly with the same command sequence. Two-way rotor FSI is
16
+ # therefore blocked in this build (candidate solver defect; the
17
+ # documented workflow at SRC-003 p.273 names rotors). A malformed
18
+ # FSIDisp.txt crashes the solver (access violation) instead of
19
+ # raising an error.
20
+
21
+ EXECUTE_AEROELASTIC_ANALYSIS:
22
+ layout: bare
23
+ phase: exec
24
+ args: []
25
+ manual_ref: "SRC-003 p.375"
26
+ versions:
27
+ "26.120": {status: documented}
28
+ notes: >
29
+ Runs the steady-state aeroelastic analysis. For unsteady coupling
30
+ the manual instructs the regular solver execution with
31
+ SET_AEROELASTIC_COUPLING_IN_UNSTEADY enabled instead (SRC-003
32
+ p.275).
33
+
34
+ ASSIGN_AEROELASTIC_SURFACES:
35
+ layout: payload_lines
36
+ phase: init
37
+ args:
38
+ - name: num_boundaries
39
+ type: int
40
+ - name: boundary_indices
41
+ type: int_list
42
+ separator: newline
43
+ required: false
44
+ manual_ref: "SRC-003 p.375"
45
+ versions:
46
+ "26.120": {status: documented}
47
+ notes: >
48
+ Mesh boundaries whose deflections the toolbox interpolates; one
49
+ index per line after the count, -1 selects all boundaries with no
50
+ index lines.
51
+
52
+ ASSIGN_AEROELASTIC_COORDINATE_SYSTEMS:
53
+ layout: payload_lines
54
+ phase: init
55
+ args:
56
+ - name: num_index
57
+ type: int
58
+ - name: frame_indices
59
+ type: int_list
60
+ separator: newline
61
+ required: false
62
+ manual_ref: "SRC-003 p.375"
63
+ versions:
64
+ "26.120": {status: documented}
65
+ notes: >
66
+ Links user-defined coordinate systems for the aeroelastic
67
+ interpolation, one index per line after the count; index 1 (the
68
+ reference frame) is rejected by the solver per the manual.
69
+
70
+ IMPORT_AEROELASTIC_STRUCTURAL_NODES:
71
+ layout: inline
72
+ phase: init
73
+ args:
74
+ - name: structural_coordinate_system
75
+ type: int
76
+ - name: delete_existing
77
+ type: enum
78
+ values: [ENABLE, DISABLE]
79
+ - name: nodes_path
80
+ type: path
81
+ own_line: true
82
+ manual_ref: "SRC-003 p.375"
83
+ versions:
84
+ "26.120": {status: documented}
85
+ notes: >
86
+ Imports the structural node list; the file is three comma
87
+ separated columns X,Y,Z per node (SRC-003 p.274), interpreted in
88
+ the given coordinate system. The node order fixes the FSIDisp.txt
89
+ displacement order.
90
+
91
+ DELETE_AEROELASTIC_STRUCTURAL_NODES:
92
+ layout: bare
93
+ phase: init
94
+ args: []
95
+ manual_ref: "SRC-003 p.375"
96
+ versions:
97
+ "26.120": {status: documented}
98
+ notes: Deletes all imported structural nodes.
99
+
100
+ SET_AEROELASTIC_WORKING_DIRECTORY:
101
+ layout: inline
102
+ phase: init
103
+ args:
104
+ - name: directory_path
105
+ type: path
106
+ own_line: true
107
+ manual_ref: "SRC-003 p.375"
108
+ versions:
109
+ "26.120": {status: documented}
110
+ notes: >
111
+ Runtime folder of the coupling: FlightStream writes FSIDisp.txt
112
+ and the loads exports there and executes the runtime command
113
+ there (SRC-003 pp.274-275). The dry run confirmed it is the
114
+ working directory of the external executable's process.
115
+
116
+ SET_AEROELASTIC_POST_PROCESSING_SCRIPT:
117
+ layout: inline
118
+ phase: init
119
+ args:
120
+ - name: script_path
121
+ type: path
122
+ own_line: true
123
+ manual_ref: "SRC-003 p.376"
124
+ versions:
125
+ "26.120": {status: documented}
126
+ notes: >
127
+ FlightStream script executed between FSI iterations, before the
128
+ external executable; the documented mechanism for exporting the
129
+ aerodynamic forces the executable consumes (SRC-003 p.275), for
130
+ example the surface section loads export.
131
+
132
+ SET_AEROELASTIC_STRUCTURAL_EXECUTION_COMMAND:
133
+ layout: inline
134
+ phase: init
135
+ args:
136
+ - name: command
137
+ type: str
138
+ own_line: true
139
+ manual_ref: "SRC-003 p.376"
140
+ versions:
141
+ "26.120": {status: documented}
142
+ notes: >
143
+ Full command executed per coupling iteration in the working
144
+ directory. The dry run observed a bare invocation: no arguments
145
+ are appended by the solver.
146
+
147
+ SET_AEROELASTIC_ITERATIONS:
148
+ layout: inline
149
+ phase: init
150
+ args:
151
+ - name: num_iterations
152
+ type: int
153
+ manual_ref: "SRC-003 p.376"
154
+ versions:
155
+ "26.120": {status: documented}
156
+ notes: >
157
+ Two-way coupling iterations: the total count in steady mode, the
158
+ count per time step in unsteady mode (SRC-003 p.275).
159
+
160
+ SET_AEROELASTIC_COUPLING_IN_UNSTEADY:
161
+ layout: inline
162
+ phase: init
163
+ args:
164
+ - name: state
165
+ type: enum
166
+ values: [ENABLE, DISABLE]
167
+ manual_ref: "SRC-003 p.376"
168
+ versions:
169
+ "26.120": {status: documented}
170
+ notes: >
171
+ Toggles the FSI execution inside the unsteady solver; with ENABLE
172
+ the coupling runs on the regular solver start.
@@ -0,0 +1,153 @@
1
+ # Chapter: Scripting reference, Boundary Conditions families used by
2
+ # the core steady path: Trailing Edges (SRC-003 pp.319-320), Wake
3
+ # Termination Nodes (p.321), Free-Stream Velocity (p.322), Fluid
4
+ # Properties (p.328).
5
+
6
+ AUTO_DETECT_TRAILING_EDGES:
7
+ layout: bare
8
+ phase: setup
9
+ args: []
10
+ manual_ref: "SRC-003 p.319"
11
+ versions:
12
+ "26.100": {status: documented, note: "SRC-725 p.318, same grammar as 26.120"}
13
+ "26.120": {status: documented}
14
+ notes: >
15
+ Finds and marks all trailing edge nodes in the geometry. Trailing
16
+ edge marking controls where the wake is shed, so it must precede
17
+ solver initialization.
18
+
19
+ SET_TRAILING_EDGE_TYPE:
20
+ layout: inline
21
+ phase: setup
22
+ args:
23
+ - name: te_index
24
+ type: int
25
+ - name: type
26
+ type: enum
27
+ values: [STANDARD, RELAXED, JET_OUTFLOW, VORTEX_SHEDDING]
28
+ manual_ref: "SRC-003 pp.319-320"
29
+ versions:
30
+ "26.120": {status: documented}
31
+ notes: >
32
+ STANDARD sheds the full net circulation (Kutta factor 1.0);
33
+ RELAXED sheds half, approximating body carryover at non-lifting
34
+ trailing edges such as wing-fuselage junctions (SRC-003 p.164).
35
+
36
+ DISABLE_WAKE_NODES_ON_TRAILING_EDGE:
37
+ layout: inline
38
+ phase: setup
39
+ args:
40
+ - name: te_index
41
+ type: int
42
+ manual_ref: "SRC-003 p.320"
43
+ versions:
44
+ "26.120": {status: documented}
45
+
46
+ AUTO_DETECT_WAKE_TERMINATION_NODES:
47
+ layout: bare
48
+ phase: setup
49
+ args: []
50
+ manual_ref: "SRC-003 p.321"
51
+ versions:
52
+ "26.100": {status: documented, note: "SRC-725 p.320, same grammar as 26.120"}
53
+ "26.120": {status: documented}
54
+ notes: >
55
+ Finds and marks all wake termination nodes in the geometry.
56
+
57
+ SET_FREESTREAM:
58
+ layout: inline
59
+ phase: setup
60
+ args:
61
+ - name: type
62
+ type: enum
63
+ values: [CONSTANT, CUSTOM, ROTATION]
64
+ - name: filetype
65
+ type: enum
66
+ values: [STRUCTURED, UNSTRUCTURED]
67
+ required: false
68
+ - name: frame
69
+ type: int
70
+ required: false
71
+ - name: axis
72
+ type: enum
73
+ values: [X, Y, Z]
74
+ required: false
75
+ - name: angular_velocity
76
+ type: float
77
+ unit: "rev/min"
78
+ required: false
79
+ - name: filename
80
+ type: path
81
+ required: false
82
+ own_line: true
83
+ manual_ref: "SRC-003 p.322"
84
+ versions:
85
+ "26.100": {status: documented, note: "SRC-725 p.321, same grammar as 26.120"}
86
+ "26.120": {status: documented}
87
+ notes: >
88
+ CONSTANT needs no further input. CUSTOM appends a FILETYPE token
89
+ (STRUCTURED or UNSTRUCTURED) and takes the profile file path on
90
+ the next line. ROTATION appends frame index, axis (X, Y or Z) and
91
+ angular velocity in RPM. Which optional arguments each type takes
92
+ is conditional; the free_stream helper enforces the valid
93
+ combinations (SRC-003 p.322).
94
+
95
+ FLUID_PROPERTIES:
96
+ layout: keyword_block
97
+ phase: setup
98
+ args:
99
+ - name: density
100
+ type: float
101
+ unit: "kg/m^3"
102
+ - name: pressure
103
+ type: float
104
+ unit: "Pa"
105
+ - name: temperature
106
+ type: float
107
+ unit: "K"
108
+ - name: viscosity
109
+ type: float
110
+ unit: "Pa s"
111
+ - name: specific_heat_ratio
112
+ type: float
113
+ manual_ref: "SRC-003 p.328"
114
+ versions:
115
+ "26.100": {status: documented, note: "SRC-725 p.327, same grammar as 26.120"}
116
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
117
+ notes: >
118
+ Sets the working fluid state as KEY VALUE lines. Sonic velocity is
119
+ derived from temperature and specific heat ratio; it is no longer
120
+ an independent input (SRC-003 p.328).
121
+
122
+ AIR_ALTITUDE:
123
+ layout: inline
124
+ phase: setup
125
+ args:
126
+ - name: value
127
+ type: float
128
+ - name: units
129
+ type: enum
130
+ values: [FEET, METERS]
131
+ manual_ref: "SRC-003 p.328"
132
+ versions:
133
+ "26.120": {status: broken, report: "reports/compat/CMP-26120_2026-07-21_full.yaml", note: "the command ran (script processing continued past it) but its effect was not observed; expected: the settings dump reports the 5000 m standa"}
134
+ notes: >
135
+ Sets the air properties from a standard-atmosphere altitude.
136
+
137
+ SONIC_VELOCITY:
138
+ layout: inline
139
+ phase: setup
140
+ args:
141
+ - name: value
142
+ type: float
143
+ unit: "m/s"
144
+ manual_ref: "SRC-003 p.328"
145
+ versions:
146
+ "26.100": {status: removed, note: "Already deprecated in 26.1: the solver warns and ignores the value (SRC-725 p.327)."}
147
+ "26.120":
148
+ status: removed
149
+ successor: null
150
+ note: >
151
+ No longer supported; the solver throws a deprecation warning
152
+ and ignores the value. Sonic velocity now follows from
153
+ temperature and specific heat ratio (SRC-003 p.328).
@@ -0,0 +1,74 @@
1
+ # Chapter: Scripting reference, CCS Wing Mesh (SRC-003 pp.297-299).
2
+ # Only the gapped control-surface command is drafted so far: it is the
3
+ # family member whose grammar is version-sensitive (the SPACE and AXIS
4
+ # parameters added at 26.12); the remaining family entries await a
5
+ # dedicated chapter pass.
6
+
7
+ NEW_CCS_WING_CONTROL_SURFACE:
8
+ layout: inline
9
+ phase: geometry
10
+ args:
11
+ - name: name
12
+ type: str
13
+ - name: v0
14
+ type: float
15
+ - name: v1
16
+ type: float
17
+ - name: u0
18
+ type: float
19
+ - name: u1
20
+ type: float
21
+ - name: hinge_height
22
+ type: float
23
+ - name: angle
24
+ type: float
25
+ unit: "deg"
26
+ - name: slot_gap
27
+ type: float
28
+ unit: "percent of span"
29
+ - name: space
30
+ type: enum
31
+ values: [REAL, PARAMETRIC]
32
+ required: false
33
+ - name: axis
34
+ type: enum
35
+ values: [X, Y, Z]
36
+ required: false
37
+ manual_ref: "SRC-003 p.299"
38
+ versions:
39
+ "26.100":
40
+ status: documented
41
+ note: >-
42
+ SRC-725 p.298: eight-argument form; the SPACE and AXIS
43
+ parameters do not exist in 26.1, so spanwise placement is
44
+ parametric only
45
+ args:
46
+ - name: name
47
+ type: str
48
+ - name: v0
49
+ type: float
50
+ - name: v1
51
+ type: float
52
+ - name: u0
53
+ type: float
54
+ - name: u1
55
+ type: float
56
+ - name: hinge_height
57
+ type: float
58
+ - name: angle
59
+ type: float
60
+ unit: "deg"
61
+ - name: slot_gap
62
+ type: float
63
+ unit: "percent of span"
64
+ "26.120": {status: documented}
65
+ notes: >
66
+ Creates a gapped control surface on a CCS wing component. V0 and
67
+ V1 are the spanwise limits, U0 and U1 the chordwise depths from
68
+ the trailing edge, all parametric in 0 to 1; HINGE_HEIGHT is the
69
+ parametric hinge location through the airfoil thickness, ANGLE the
70
+ deflection, and SLOT_GAP a percentage of span. The optional SPACE
71
+ and AXIS pair exists only from 26.12: SPACE selects REAL or
72
+ PARAMETRIC interpretation of the spanwise coordinates, and AXIS
73
+ names the Reference-frame axis used when SPACE is REAL (SRC-003
74
+ p.299). The 26.1 grammar has neither parameter (SRC-725 p.298).