set_va! rotates the body about the origin and nothing else, and the YAML condition.yaw_rate is read into ConditionSettings and never used.
Reference point. set_va!(body_aero, va, omega) (src/body_aerodynamics.jl:1091) sets each panel's inflow to va - omega × control_point (:1106). The Python package takes the rotation about a reference point, va_i -= omega × (cp_i - r0) (src/VSM/core/BodyAerodynamics.py:559, keyword reference_point, awegroup/Vortex-Step-Method@b5cd5f1). Here the only way to move the pivot is kite_body_origin, which shifts the whole geometry. The moment reference point (Solver.reference_point) and the rotation centre are therefore independent inputs in Python and can only be matched here by moving the mesh.
yaw_rate ignored. ConditionSettings.yaw_rate (src/settings.jl:15, [°/s]) is in every shipped vsm_settings*.yaml, but set_va!(body_aero, settings) (src/body_aerodynamics.jl:1186-1197) reads only alpha, beta and wind_speed and calls set_va!(body_aero, va) with no omega. A non-zero yaw_rate in a settings file has no effect; examples/V3_kite.jl and examples/pyramid_model.jl only print it in plot titles.
Proposal: a reference_point keyword on set_va! (default the origin, so results do not move), and either pass yaw_rate through as omega about the body z axis or remove the field. The per-panel set_va!(body_aero, va_distribution::AbstractMatrix; pitch_rate_dist) method would take the same keyword.
Found while surveying the Python package for #113.
set_va!rotates the body about the origin and nothing else, and the YAMLcondition.yaw_rateis read intoConditionSettingsand never used.Reference point.
set_va!(body_aero, va, omega)(src/body_aerodynamics.jl:1091) sets each panel's inflow tova - omega × control_point(:1106). The Python package takes the rotation about a reference point,va_i -= omega × (cp_i - r0)(src/VSM/core/BodyAerodynamics.py:559, keywordreference_point, awegroup/Vortex-Step-Method@b5cd5f1). Here the only way to move the pivot iskite_body_origin, which shifts the whole geometry. The moment reference point (Solver.reference_point) and the rotation centre are therefore independent inputs in Python and can only be matched here by moving the mesh.yaw_rateignored.ConditionSettings.yaw_rate(src/settings.jl:15,[°/s]) is in every shippedvsm_settings*.yaml, butset_va!(body_aero, settings)(src/body_aerodynamics.jl:1186-1197) reads onlyalpha,betaandwind_speedand callsset_va!(body_aero, va)with noomega. A non-zeroyaw_ratein a settings file has no effect;examples/V3_kite.jlandexamples/pyramid_model.jlonly print it in plot titles.Proposal: a
reference_pointkeyword onset_va!(default the origin, so results do not move), and either passyaw_ratethrough asomegaabout the body z axis or remove the field. The per-panelset_va!(body_aero, va_distribution::AbstractMatrix; pitch_rate_dist)method would take the same keyword.Found while surveying the Python package for #113.