Spanwise definition control surfaces Python API

21 views
Skip to first unread message

Valentin Le Bailly

unread,
Feb 11, 2026, 6:10:00 AM (12 days ago) Feb 11
to OpenVSP
Hi,

I am trying to define the geometry of a BWB parametrically through the OpenVSP python API. Originally, I performed this on my own PC which runs OpenVSP 3.46, and it all worked perfectly. However as I have to work on a linux server of my school, I have to deal with OpenVSP 3.26.1. After managing subtle differences and making the python file compatible with the 3.26.1 version, I run into a final issue that I can't get right.

I want to define my control surfaces between two predetermined spanwise values along the wing, this is easily done with 'eta' Parm in version 3.46, but that Parm doesn't exist in 3.26.1. After switching to 'Abs_Rel_Flag', 1.0 and setting the correct spanwise positions relative to the projected span (UStart and UEnd) of the wing (some sections have high dihedral), I realized that the control surfaces extended way beyond their supposed end position. I then found some promising answers on this forum that the root and tip cap were included in U, therefore I should scale my control surfaces within [0.3333, 0.6666]. This still doesn't work, most likely given the fact that I put to None the Root Cap of my wing. 

Is there a way to specifically scale UStart and Uend when the wing has no root cap, but has a tip cap, and scale those quantities w.r.t. the span of the wing?

I attached a screenshot in 3.26.1, as you can see the control surface extends over the winglet, although the stop position was given at the tip of the main wing.

Thanks in advance,

Valentin
openvsp_problem.png

Rob McDonald

unread,
Feb 11, 2026, 1:04:49 PM (12 days ago) Feb 11
to OpenVSP
3.26.1 is from January of 2022 -- four years old.

OpenVSP development is very fast considering the size of the project.  You absolutely should not be using something that old.

I work very hard to make things forward compatible (files from old versions should open in newer versions without changes to the geometry), but the reverse is not true.  Obviously, the larger span between versions, the greater the problems you will have.  You will have major problems trying to work across such a huge difference in versions.

Why do you think you have to deal with 3.26.1 on your Linux machine?  I suspect because it has a certain version of Python and that is the last version of OpenVSP compiled for that old Python.

If that is the problem, then you should compile new OpenVSP yourself on the Linux machine with the old Python to make a version of 3.47.0 that works with Python 3.9 (or whatever).

How many wing panels does your wing have (including root and/or tip cap)?  Lets take an example....

(no root cap)
Main wing +1
Winglet +1
Tip cap +1
=
3

This wing's underlying U0N parameterization will run [0,3].  The main wing will run [0,1], which will be divided by N=3 to give U01 running [0,1].

Rob
Reply all
Reply to author
Forward
0 new messages