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,123 @@
1
+ # Chapter: Scripting reference, Coordinate Systems (SRC-003
2
+ # pp.329-331). Frame index 1 is the reference frame; local frames use
3
+ # indices greater than 1. Auxiliary frames for actuators and motions
4
+ # must exist before solver initialization.
5
+
6
+ CREATE_NEW_COORDINATE_SYSTEM:
7
+ layout: bare
8
+ phase: setup
9
+ args: []
10
+ manual_ref: "SRC-003 p.329"
11
+ versions:
12
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
13
+ notes: >
14
+ Appends a new local coordinate system; configure it afterwards
15
+ with the SET_COORDINATE_SYSTEM commands or EDIT_COORDINATE_SYSTEM.
16
+
17
+ EDIT_COORDINATE_SYSTEM:
18
+ layout: keyword_block
19
+ phase: setup
20
+ args:
21
+ - name: frame
22
+ type: int
23
+ - name: name
24
+ type: str
25
+ - name: origin_x
26
+ type: float
27
+ - name: origin_y
28
+ type: float
29
+ - name: origin_z
30
+ type: float
31
+ - name: vector_x_x
32
+ type: float
33
+ - name: vector_x_y
34
+ type: float
35
+ - name: vector_x_z
36
+ type: float
37
+ - name: vector_y_x
38
+ type: float
39
+ - name: vector_y_y
40
+ type: float
41
+ - name: vector_y_z
42
+ type: float
43
+ - name: vector_z_x
44
+ type: float
45
+ - name: vector_z_y
46
+ type: float
47
+ - name: vector_z_z
48
+ type: float
49
+ manual_ref: "SRC-003 p.329"
50
+ versions:
51
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
52
+ notes: >
53
+ Full edit of a local frame: origin and the three axis vectors,
54
+ all expressed in the reference frame.
55
+
56
+ SET_COORDINATE_SYSTEM_ORIGIN:
57
+ layout: inline
58
+ phase: setup
59
+ args:
60
+ - name: frame
61
+ type: int
62
+ - name: x
63
+ type: float
64
+ - name: y
65
+ type: float
66
+ - name: z
67
+ type: float
68
+ - name: units
69
+ type: enum
70
+ values: [INCH, MILLIMETER, OTHER, FEET, MILE, METER, KILOMETER,
71
+ MILS, MICRON, CENTIMETER, MICROINCH]
72
+ manual_ref: "SRC-003 pp.329-330"
73
+ versions:
74
+ "26.120": {status: documented}
75
+ notes: >
76
+ Origin position relative to the reference coordinate system.
77
+
78
+ SET_COORDINATE_SYSTEM_AXIS:
79
+ layout: inline
80
+ phase: setup
81
+ args:
82
+ - name: frame
83
+ type: int
84
+ - name: axis
85
+ type: enum
86
+ values: [X, Y, Z]
87
+ - name: nx
88
+ type: float
89
+ - name: ny
90
+ type: float
91
+ - name: nz
92
+ type: float
93
+ - name: normalize_frame
94
+ type: enum
95
+ values: ["TRUE", "FALSE"]
96
+ manual_ref: "SRC-003 p.330"
97
+ versions:
98
+ "26.120": {status: documented}
99
+ notes: >
100
+ Sets one axis direction vector of a local frame; the vector is
101
+ normalized automatically, and NORMALIZE_FRAME TRUE renormalizes
102
+ the whole frame after the update.
103
+
104
+ ROTATE_COORDINATE_SYSTEM:
105
+ layout: keyword_block
106
+ phase: setup
107
+ args:
108
+ - name: frame
109
+ type: int
110
+ - name: rotation_frame
111
+ type: int
112
+ - name: rotation_axis
113
+ type: enum
114
+ values: [X, Y, Z, "1", "2", "3"]
115
+ - name: angle
116
+ type: float
117
+ unit: "deg"
118
+ manual_ref: "SRC-003 p.330"
119
+ versions:
120
+ "26.120": {status: documented}
121
+ notes: >
122
+ Rotates the local coordinate system FRAME about ROTATION_AXIS of
123
+ ROTATION_FRAME by ANGLE degrees.
@@ -0,0 +1,82 @@
1
+ # Chapter: Scripting, Opening, Closing and Saving (SRC-003 p.282) and
2
+ # Output Status (p.283).
3
+
4
+ OPEN:
5
+ layout: param_lines
6
+ phase: geometry
7
+ args:
8
+ - name: filename
9
+ type: path
10
+ - name: load_solver_initialization
11
+ type: enum
12
+ values: [ENABLE, DISABLE]
13
+ required: false
14
+ manual_ref: "SRC-003 p.282"
15
+ versions:
16
+ "26.100": {status: documented, note: "SRC-725 p.281, same grammar as 26.120"}
17
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
18
+ notes: >
19
+ Opens an existing simulation (.fsm) file. The optional
20
+ LOAD_SOLVER_INITIALIZATION ENABLE line loads the solver
21
+ initialization stored in the opened file.
22
+
23
+ SAVEAS:
24
+ layout: param_lines
25
+ phase: control
26
+ args:
27
+ - name: filename
28
+ type: path
29
+ manual_ref: "SRC-003 p.282"
30
+ versions:
31
+ "26.100": {status: documented, note: "SRC-725 p.281, same grammar as 26.120"}
32
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
33
+ notes: >
34
+ Saves the current simulation to the given .fsm path.
35
+
36
+ NEW_SIMULATION:
37
+ layout: bare
38
+ phase: geometry
39
+ args: []
40
+ manual_ref: "SRC-003 p.282"
41
+ versions:
42
+ "26.100": {status: documented, note: "SRC-725 p.281, same grammar as 26.120"}
43
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
44
+
45
+ CLOSE_FLIGHTSTREAM:
46
+ layout: bare
47
+ phase: control
48
+ args: []
49
+ manual_ref: "SRC-003 p.282"
50
+ versions:
51
+ "26.100": {status: documented, note: "SRC-725 p.281, same grammar as 26.120"}
52
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
53
+ notes: >
54
+ Closes FlightStream and exits; the natural last command of a
55
+ headless batch script.
56
+
57
+ EXPORT_LOG:
58
+ layout: param_lines
59
+ phase: control
60
+ args:
61
+ - name: filename
62
+ type: path
63
+ manual_ref: "SRC-003 p.283"
64
+ versions:
65
+ "26.100": {status: documented, note: "SRC-725 p.282, same grammar as 26.120"}
66
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
67
+ notes: >
68
+ Exports the log window messages to a text file; the probe harness
69
+ reads it for sentinel markers and error patterns.
70
+
71
+ OUTPUT_SETTINGS_AND_STATUS:
72
+ layout: param_lines
73
+ phase: control
74
+ args:
75
+ - name: filename
76
+ type: path
77
+ manual_ref: "SRC-003 p.283"
78
+ versions:
79
+ "26.100": {status: documented, note: "SRC-725 p.282, same grammar as 26.120"}
80
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
81
+ notes: >
82
+ Writes the fluid properties and solver status to a file.
@@ -0,0 +1,72 @@
1
+ # Chapter: Mesh Import / Export (SRC-003 pp.307-308).
2
+
3
+ IMPORT:
4
+ layout: keyword_block
5
+ phase: geometry
6
+ args:
7
+ - name: units
8
+ type: enum
9
+ values: [INCH, MILLIMETER, OTHER, FEET, MILE, METER, KILOMETER, MILS, MICRON, CENTIMETER, MICROINCH]
10
+ - name: file_type
11
+ type: enum
12
+ values: [STL, TRI, P3D, INP, STRUCTURED_QUAD, UNSTRUCTURED_QUAD, LAWGS, VTK, AC, FAC, OBJ]
13
+ - name: file
14
+ type: path
15
+ - name: clear
16
+ type: bool
17
+ required: false
18
+ manual_ref: "SRC-003 p.307"
19
+ versions:
20
+ "26.100": {status: documented, note: "SRC-725 p.306, same grammar as 26.120"}
21
+ "26.120": {status: documented}
22
+ notes: >
23
+ Imports a surface mesh into the simulation as a KEY VALUE block:
24
+ length units of the mesh file, one of eleven mesh formats, and the
25
+ file path. The optional bare CLEAR keyword deletes every existing
26
+ geometry boundary before the import (SRC-003 p.307).
27
+
28
+ CCS_IMPORT:
29
+ layout: keyword_block
30
+ phase: geometry
31
+ args:
32
+ - name: close_component_ends
33
+ type: enum
34
+ values: [ENABLE, DISABLE]
35
+ - name: update_properties
36
+ type: enum
37
+ values: [ENABLE, DISABLE]
38
+ - name: clear_existing
39
+ type: enum
40
+ values: [ENABLE, DISABLE]
41
+ - name: file
42
+ type: path
43
+ manual_ref: "SRC-003 p.307"
44
+ versions:
45
+ "26.100": {status: documented, note: "SRC-725 p.306, same grammar as 26.120"}
46
+ "26.120": {status: documented}
47
+ notes: >
48
+ Imports a Component Cross-Section (CCS) geometry file. The toggles
49
+ control hole-filling at component ends, whether the simulation
50
+ properties stored in the file are applied, and whether existing
51
+ geometry boundaries are deleted first (SRC-003 p.307).
52
+
53
+ EXPORT_SURFACE_MESH:
54
+ layout: inline
55
+ phase: geometry
56
+ args:
57
+ - name: file_type
58
+ type: enum
59
+ values: [STL, TRI, OBJ]
60
+ - name: surface
61
+ type: int
62
+ - name: file
63
+ type: path
64
+ own_line: true
65
+ manual_ref: "SRC-003 pp.307-308"
66
+ versions:
67
+ "26.100": {status: documented, note: "SRC-725 pp.306-307, same grammar as 26.120"}
68
+ "26.120": {status: documented}
69
+ notes: >
70
+ Exports one geometry surface (first surface is index 1) or all
71
+ surfaces (-1) to STL, TRI, or OBJ; the destination path follows on
72
+ the next line (SRC-003 pp.307-308).
@@ -0,0 +1,185 @@
1
+ # Chapter: Scripting reference, Motion Definitions (SRC-003
2
+ # pp.332-336). M1 drafts the rotary motion path and the FSI seam
3
+ # commands (FR-23); the 6DOF family and custom motion tables await the
4
+ # cases that exercise them.
5
+
6
+ CREATE_NEW_MOTION:
7
+ layout: inline
8
+ phase: setup
9
+ args:
10
+ - name: type
11
+ type: enum
12
+ values: [ROTARY, 6DOF, CUSTOM]
13
+ manual_ref: "SRC-003 p.332"
14
+ versions:
15
+ "26.120": {status: documented}
16
+ notes: >
17
+ Rotary motion is the blade-resolved alternative to the actuator
18
+ disc surrogate (SRC-003 p.234); it requires the unsteady solver.
19
+
20
+ SET_MOTION_BOUNDARIES:
21
+ layout: payload_lines
22
+ phase: setup
23
+ args:
24
+ - name: motion_id
25
+ type: int
26
+ - name: num_boundaries
27
+ type: int
28
+ - name: boundary_indices
29
+ type: int_list
30
+ required: false
31
+ manual_ref: "SRC-003 p.332"
32
+ versions:
33
+ "26.120": {status: documented}
34
+ notes: >
35
+ Assigns geometry boundaries to the motion; the comma-separated
36
+ index line follows. NUM_BOUNDARIES -1 selects all boundaries and
37
+ takes no index line.
38
+
39
+ SET_MOTION_MOVING_FRAMES:
40
+ layout: payload_lines
41
+ phase: setup
42
+ args:
43
+ - name: motion_id
44
+ type: int
45
+ - name: num_frames
46
+ type: int
47
+ - name: frame_indices
48
+ type: int_list
49
+ required: false
50
+ manual_ref: "SRC-003 p.332"
51
+ versions:
52
+ "26.120": {status: documented}
53
+ notes: >
54
+ Attaches user-defined local frames to the motion; -1 selects all
55
+ local coordinate systems and takes no index line.
56
+
57
+ SET_MOTION_COORDINATE_SYSTEM:
58
+ layout: inline
59
+ phase: setup
60
+ args:
61
+ - name: motion_id
62
+ type: int
63
+ - name: coordinate_system_id
64
+ type: int
65
+ manual_ref: "SRC-003 p.332"
66
+ versions:
67
+ "26.120": {status: documented}
68
+
69
+ SET_MOTION_START_TIME:
70
+ layout: inline
71
+ phase: setup
72
+ args:
73
+ - name: motion_id
74
+ type: int
75
+ - name: start_time
76
+ type: float
77
+ unit: "s"
78
+ manual_ref: "SRC-003 p.332"
79
+ versions:
80
+ "26.120": {status: broken, report: "reports/compat/CMP-26120_2026-07-21_full.yaml", note: "script processing aborted at the command: the log exported before it exists, the one after it never appeared (END sentinel missing)"}
81
+ notes: >
82
+ Start of the motion within the solver physical time; enables
83
+ converging a steady base flow before the motion begins.
84
+
85
+ SET_MOTION_ROTOR_AXIS:
86
+ layout: inline
87
+ phase: setup
88
+ args:
89
+ - name: motion_id
90
+ type: int
91
+ - name: axis
92
+ type: enum
93
+ values: [X, Y, Z, "1", "2", "3"]
94
+ manual_ref: "SRC-003 p.333"
95
+ versions:
96
+ "26.120": {status: documented}
97
+
98
+ SET_MOTION_ROTOR_RPM:
99
+ layout: inline
100
+ phase: setup
101
+ args:
102
+ - name: motion_id
103
+ type: int
104
+ - name: rpm
105
+ type: float
106
+ unit: "rev/min"
107
+ manual_ref: "SRC-003 p.333"
108
+ versions:
109
+ "26.120": {status: documented}
110
+
111
+ SET_MOTION_SLIPSTREAM_WAKE_STABILIZATION:
112
+ layout: inline
113
+ phase: setup
114
+ args:
115
+ - name: motion_id
116
+ type: int
117
+ - name: wake_stabilization
118
+ type: enum
119
+ values: [ENABLE, DISABLE]
120
+ - name: num_blades
121
+ type: int
122
+ manual_ref: "SRC-003 p.333"
123
+ versions:
124
+ "26.120": {status: documented}
125
+
126
+ SET_MOTION_FSI_EXECUTABLE:
127
+ layout: inline
128
+ phase: setup
129
+ args:
130
+ - name: motion_id
131
+ type: int
132
+ - name: show_console
133
+ type: enum
134
+ values: [ENABLE, DISABLE]
135
+ - name: export_load_distributions
136
+ type: enum
137
+ values: [ENABLE, DISABLE]
138
+ - name: executable_path
139
+ type: path
140
+ own_line: true
141
+ manual_ref: "SRC-003 pp.335-336"
142
+ versions:
143
+ "26.120": {status: documented}
144
+ notes: >
145
+ FSI seam (FR-23): FlightStream calls the external structural
146
+ executable per coupling step; the executable path follows on the
147
+ line after the inline arguments. EXPORT_LOAD_DISTRIBUTIONS also
148
+ writes the aerodynamic load distributions file alongside the
149
+ default interpolated loads file. Dry run finding (2026-07-21,
150
+ reports/RPT-005): build 7012026 rejects this command as
151
+ unrecognized despite the manual-exact grammar; the implemented
152
+ interface is the Aeroelastic Coupling Toolbox family (SRC-003
153
+ pp.375-376, aeroelastic_coupling.yaml). Candidate broken;
154
+ promotion via the next validity sweep (PLN-019).
155
+
156
+ SET_MOTION_FSI_STRUCTURAL_NODES:
157
+ layout: inline
158
+ phase: setup
159
+ args:
160
+ - name: motion_id
161
+ type: int
162
+ - name: nodes_path
163
+ type: path
164
+ own_line: true
165
+ manual_ref: "SRC-003 p.336"
166
+ versions:
167
+ "26.120": {status: documented}
168
+ notes: >
169
+ Imports the structural displacement node set; the file path
170
+ follows on the line after the motion index. Dry run finding
171
+ (2026-07-21, reports/RPT-005): build 7012026 rejects this command
172
+ as unrecognized; the implemented import is
173
+ IMPORT_AEROELASTIC_STRUCTURAL_NODES (SRC-003 p.375,
174
+ aeroelastic_coupling.yaml). Candidate broken; promotion via the
175
+ next validity sweep (PLN-019).
176
+
177
+ DELETE_MOTION:
178
+ layout: inline
179
+ phase: setup
180
+ args:
181
+ - name: motion_id
182
+ type: int
183
+ manual_ref: "SRC-003 p.336"
184
+ versions:
185
+ "26.120": {status: documented}
@@ -0,0 +1,116 @@
1
+ # Chapter: Scripting reference, Post Processing, Probe Points
2
+ # (SRC-003 pp.362-363). Probe exports carry velocity components, both
3
+ # pressure coefficient forms, Mach and the boundary layer state flags
4
+ # together (SRC-003 p.249), which is what the flux integration work
5
+ # consumes downstream.
6
+
7
+ NEW_PROBE_POINT:
8
+ layout: inline
9
+ phase: analysis
10
+ args:
11
+ - name: type
12
+ type: enum
13
+ values: [VOLUME, SURFACE]
14
+ - name: x
15
+ type: float
16
+ - name: y
17
+ type: float
18
+ - name: z
19
+ type: float
20
+ manual_ref: "SRC-003 p.362"
21
+ versions:
22
+ "26.100": {status: documented, note: "SRC-725 p.361, same grammar as 26.120"}
23
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
24
+
25
+ NEW_PROBE_LINE:
26
+ layout: inline
27
+ phase: analysis
28
+ args:
29
+ - name: numpts
30
+ type: int
31
+ - name: x1
32
+ type: float
33
+ - name: y1
34
+ type: float
35
+ - name: z1
36
+ type: float
37
+ - name: x2
38
+ type: float
39
+ - name: y2
40
+ type: float
41
+ - name: z2
42
+ type: float
43
+ manual_ref: "SRC-003 p.362"
44
+ versions:
45
+ "26.100": {status: documented, note: "SRC-725 p.361, same grammar as 26.120"}
46
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
47
+ notes: >
48
+ Survey line with NUMPTS probe vertices between the start and end
49
+ coordinates.
50
+
51
+ UPDATE_PROBE_POINTS:
52
+ layout: bare
53
+ phase: analysis
54
+ args: []
55
+ manual_ref: "SRC-003 p.362"
56
+ versions:
57
+ "26.100": {status: documented, note: "SRC-725 p.361, same grammar as 26.120"}
58
+ "26.120": {status: documented}
59
+ notes: >
60
+ Refreshes the probe values from the current solution; run it
61
+ before exporting.
62
+
63
+ PROBE_POINTS_IMPORT:
64
+ layout: param_lines
65
+ phase: analysis
66
+ args:
67
+ - name: units
68
+ type: enum
69
+ values: [INCH, MILLIMETER, OTHER, FEET, MILE, METER, KILOMETER,
70
+ MILS, MICRON, CENTIMETER, MICROINCH]
71
+ - name: frame
72
+ type: int
73
+ - name: filename
74
+ type: path
75
+ manual_ref: "SRC-003 pp.362-363"
76
+ versions:
77
+ "26.100": {status: documented, note: "SRC-725 pp.361-362, same grammar as 26.120"}
78
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
79
+ notes: >
80
+ Imports a probe lattice from a CSV file whose rows are
81
+ X,Y,Z,TYPE with TYPE 0 for surface and 1 for volume probes; the
82
+ first line holds the point count. This is the programmatic path
83
+ for probe lattice generation. The 26.120 round trip verified that
84
+ the export preserves the imported row order and count
85
+ (reports/RPT-004_probe-roundtrip-order_2026-07-21.md), the
86
+ loading contract of the probe planner.
87
+
88
+ EXPORT_PROBE_POINTS:
89
+ layout: param_lines
90
+ phase: export
91
+ args:
92
+ - name: filename
93
+ type: path
94
+ manual_ref: "SRC-003 p.363"
95
+ versions:
96
+ "26.100": {status: documented, note: "SRC-725 p.362, same grammar as 26.120"}
97
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}
98
+ notes: >
99
+ Rows follow the probe creation order, preserved from an imported
100
+ lattice (26.120 build 7012026 round trip,
101
+ reports/RPT-004_probe-roundtrip-order_2026-07-21.md). The
102
+ boundary-layer columns are populated for near-surface probes
103
+ regardless of the viscous toggles (REYNOLDS_AVERAGED_DRAG_FORCES,
104
+ SET_SOLVER_VISCOUS_COUPLING, SET_INVISCID_LOADS; author's
105
+ correction and control experiment, same report): their inertness
106
+ is geometric, probes away from the wall export zeros. Parsed by
107
+ results.parse_probe_points.
108
+
109
+ DELETE_PROBE_POINTS:
110
+ layout: bare
111
+ phase: analysis
112
+ args: []
113
+ manual_ref: "SRC-003 p.363"
114
+ versions:
115
+ "26.100": {status: documented, note: "SRC-725 p.362, same grammar as 26.120"}
116
+ "26.120": {status: verified, report: "reports/compat/CMP-26120_2026-07-21_full.yaml"}