OpenVSP API problem in Actuator Disk in new version 3.46.0

55 views
Skip to first unread message

Matin Nafari

unread,
Dec 10, 2025, 9:41:49 AM (7 days ago) Dec 10
to OpenVSP
Hi,
I was switching the API I wrote before for vsp 3.44.5 to the new version vsp 3.46.0
but I faced a problem; in the previous version there was a flag called "ActuatorDiskFlag" I think, which is not exists now. so I put the prop geometry in my thin set in the GUI and also considered it in the code as bellow:

vsp.SetIntAnalysisInput('VSPAEROSweep', 'ActuatorDiskFlag', {int32(solver_settings.ActuatorDiskFlag)})
if solver_settings.ActuatorDiskFlag==1
VAS_id = vsp.FindContainersWithName("VSPAEROSettings");
vsp.SetParmVal( VAS_id{1}, 'RotorRPM', 'Rotor_0', flight_condition.rpm);
vsp.SetParmVal( VAS_id{1}, 'RotorCP', 'Rotor_0', CP);
vsp.SetParmVal( VAS_id{1}, 'RotorCT', 'Rotor_0', CT);
vsp.SetParmVal( VAS_id{1}, 'RotorRPM', 'Rotor_1', -flight_condition.rpm);
vsp.SetParmVal( VAS_id{1}, 'RotorCP', 'Rotor_1', CP);
vsp.SetParmVal( VAS_id{1}, 'RotorCT', 'Rotor_1', CT);
end

vsp.SetIntAnalysisInput('VSPAEROComputeGeometry', 'GeomSet', int32([3,0]))
vsp.SetIntAnalysisInput('VSPAEROComputeGeometry', 'ThinGeomSet', int32([4,0]))



note that the syntax is for the MATLAB, so do not consider it as error.

now when it launches the solver, is solves it without considering the disks. what the problem?

Thanks

Matin

Rob McDonald

unread,
Dec 10, 2025, 10:48:35 AM (7 days ago) Dec 10
to OpenVSP
Interesting.

Are you using a direct Matlab compile of the API, or are you using it through some sort of Python gateway?

Yes, the ActuatorDisk flag was changed / simplified.  If there is a disk in the model, it will be represented as an actuator disk.

The question is really about any propellers / rotors that are represented as blades.  How should they be modeled?

The new flag is: 'PropBladesMode' and it can take the values:

/*! Enum for the ways VSPAERO can treat propeller blades. */
enum VSPAERO_PROP_MODE { VSPAERO_PROP_STATIC, /*!< Model propellers as static, non-rotating blades -- i.e. used as a wing. */
VSPAERO_PROP_UNSTEADY, /*!< Model propellers as unsteady rotating blades */
VSPAERO_PROP_PSEUDO_STEADY, /*!< Model propellers with pseudo steady model */
VSPAERO_PROP_NUM_MODES, /*!< Number of ways to model propeller blades in VSPAERO */
};

I encourage you to work through the GUI to update to the new version of VSPAERO -- then, once you know what changes are needed, you can make your adjustments to your use of the API.

Rob

Matin Nafari

unread,
Dec 13, 2025, 3:36:22 PM (4 days ago) Dec 13
to OpenVSP
Actually I an using python environment "pyenv" in MATLAB.

but still have problem. I added the propellers to my thin set (as disk) and when I run it in GUI it solves without  any problem. but when I run through API, it runs the solver but does not consider the disk in the solution. I compared the "filename".vspaero file created in two methods and in the first one there were some lines like NumberOfRotors = ... and their properties which wasn't there in the case of running through API. so I was thinking maybe I have to add something on the input analysis of "VSPAEROSweep" or something in the API. Do you know what is the problem and what should I add / consider that I am not doing?

Rob McDonald

unread,
Dec 13, 2025, 3:39:39 PM (4 days ago) Dec 13
to OpenVSP
Thanks for the reference to Matlab pyenv.  I may check that out.

You're going to have to post more of your example and test case for anyone to help you.  Right now, it would take a lot of work to get set up to try to duplicate your problem.  Nobody has time to do that.  If we can't duplicate your problem, we can't help solve it.

Rob

Matin Nafari

unread,
Dec 14, 2025, 8:02:02 AM (3 days ago) Dec 14
to OpenVSP

actually I found the solution

I removed these two Analyses and the problem solved!

vsp.ExecAnalysis('DegenGeom');
vsp.ExecAnalysis('VSPAEROComputeGeometry');

Thanks

Rob McDonald

unread,
Dec 14, 2025, 12:18:17 PM (3 days ago) Dec 14
to OpenVSP
That is interesting.

You should not need the 'DegenGeom' -- but you should need the VSPAEROComputeGeometry.

That said, it needs to be told the same Sets as the VSPAEROSweep analysis.  I suspect it was not configured correctly.

Rob
Reply all
Reply to author
Forward
0 new messages