Understanding VSPAero

4,731 views
Skip to first unread message

B-ROB

unread,
May 2, 2015, 2:26:40 PM5/2/15
to ope...@googlegroups.com
Is there any documentation that explains the "under the hood" of VSPAero?

From the paragraph provided on VSPAero, I have a few questions.  I'm a tad rusty on this subject area, so please excuse my ignorance.

1. It's inviscid (and a panel method), therefore it can not calculate drag, rotation, separation, etc.  Correct?

2. Does it solve for circulation at each panel?  Is that how you back out induced velocity/pressure/lift at each panel?

3. Does it work on non-lifting surfaces and arbitrary surfaces, like a fuselage?

4. What numerical integration method was used (4th Order Runge Kutta, etc.)?

5. Why does the viewer only show pressure difference on a 2-D surface?  Are you paneling both sides of the wing or applying thin-airfoil theory?

6. I assume it is taking into account compressibility?

7. How did you get James Earl Jones to do the YouTube VSPAero video?

Rob McDonald

unread,
May 2, 2015, 4:33:34 PM5/2/15
to ope...@googlegroups.com
At present, there is no theory document, but I agree, a firm
foundation starts with the basics.

I don't know the answers to all your questions, but I'll do my best.

1) It is an inviscid method. It is more akin to a vortex lattice
method than what some would call a panel method, but they are both
based on linear potential flow theory. A VL method (like Vorlax, AVL,
Tornado, HASC, etc) does not represent thickness via panels on the
surface. Instead, it represents the mean camber surface.

It should predict induced drag.

It also has a form drag calculator that takes into account wetted area
and component supervelocities.

You can pass it a sectional clmax that will be used to limit how hard
wing sections will work -- providing an engineering estimation of 3D
CLmax.

2) I am not exactly sure of the element formulation. Hopefully Dave
can chime in with some more details.

3) It treats non-lifting surfaces in much the same way, but without a
Kutta condition enforced. Consequently, those components will
contribute to moments, but not forces. They will also have an
interference effect on lifting surfaces.

4) There are two places where this question could be relevant --
first, on the element formulation. I am not sure, but I suspect the
elements were integrated analytically. Second, with respect to the
wake relaxation scheme. I don't know the answer here, but I believe
Dave has used a novel approach to the wake relaxation.

5) The VL model is based on a thin surface representation. It is
similar to a 3D thin-airfoil theory.

6) Yes, it has a linear compressibility model. This amounts to a PG
correction for subsonic, and a somewhat more complex approach for
supersonic. The supersonic mode will not capture wave drag due to
volume, or the effect of shocks.

7) Laugh, no JEJ, but at least you didn't say I sounded like Darth Vader...

Overall, the theory for VSPAERO is most similar to that of VORLAX.
That formed the basis; of course this is a from-scratch implementation
and there were many modernizations and improvements implemented along
the way. The differences may be too many for the old manual (NASA CR
2865) to be useful, but if you aren't familiar with VL codes at all,
it provides as good a starting point as any.

VL methods are still a workhorse of industry. They find application
from design, S&C, to aeroelasticity. Check out NASA SP-405 for a nice
overview.

Rob
> --
> You received this message because you are subscribed to the Google Groups
> "OpenVSP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to openvsp+u...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

B-ROB

unread,
May 6, 2015, 1:28:37 AM5/6/15
to ope...@googlegroups.com
1. & 5.) I believe when you represent the geometry with a mean camber line, the accuracy is only good up to about 12% t/c.  Do you concur?

Hugh Blackburn

unread,
May 6, 2015, 8:42:01 AM5/6/15
to ope...@googlegroups.com
Hi Rob

Thanks, I was waiting for VSPAERO to be released before planning to use OpenVSP in earnest.

I would like to use the output from VSPAERO to get (a) drag polar info and (b) trim/stability info. It seems the XXX.history file gives me this information (at least, a point on the polar). Is there some documentation of what the various output terms mean? Well, I can guess most of it, but, for example: how is CD_0 computed? That needs some kind of viscous method (XFOIL? BL model? What?). 

I am reasonably familiar with XFOIL and AVL (and I have the two NASA reports you mention), but would like some more documentation specific to VSPAERO or verified example I could compare to.

thanks
Hugh

Rob McDonald

unread,
May 6, 2015, 11:22:37 AM5/6/15
to ope...@googlegroups.com
I don't think it is quite as straightforward as that.

When you represent the geometry with a mean camber line, you totally
give up on representing some things, while you maintain accuracy in
others -- I'm not quite sure where those other things start to fall
apart.

The thin surface representation leaves you with only a delta Cp. That
means you can get lift and induced drag, but you don't get surface
velocities / Cp. So, for example, if you wanted to use the pressure
peak to predict when the flow would go sonic, you can't really do
that.

I think thickness will eventually start to change the lift curve
slope, but given the myriad other approximations involved in a model
like this, I doubt it will become the dominant approximation for a
while.

That said, it sounds like a good set of test cases.

Rob

Rob McDonald

unread,
May 6, 2015, 11:34:02 AM5/6/15
to ope...@googlegroups.com
Hugh,

The CD_0 calculated by VSPAERO is extremely simple at this point. It
is based on a handbook-style form drag buildup.

It does adjust Re and Cf for local chord, but it does not use a form
factor equation that is sensitive to thickness or fineness. It very
roughly approximates the wetted area -- it does not use a more precise
wetted area calculated by VSP.

Wing-type components:
https://github.com/OpenVSP/OpenVSP/blob/master/src/vsp_aero/solver/VSP_Solver.C#L2614

Body-type components:
https://github.com/OpenVSP/OpenVSP/blob/master/src/vsp_aero/solver/VSP_Solver.C#L2662

You will very possibly want to do you your own form factor buildup --
including components not used in the VSPAERO analysis -- and massaging
your form and inteference factors to match your own configuration.

For now, VSPAERO does not have the ability to deflect control
surfaces, so unless you're using an all-moving tail (and do some
manual work), you won't be able to directly look at trim.

VSPAERO does have a mode to calculate stability derivatives. It is
not available from the VSP GUI at this time, but you can get at it by
running VSPAERO from the command line. Check out the -stab option.

Rob

Hugh Blackburn

unread,
May 6, 2015, 6:17:46 PM5/6/15
to ope...@googlegroups.com
Thanks Rob,  that's very useful.

I guess by "trim and stability" I basically meant: backing out the neutral point for the aircraft and d(Cmy)/d(Cl) at the current CG location. I think I should be able to back these out of my CG location choice and Cmy info in the history file. I will check out the -stab command-line option.  (And I'm happy to try a bit of scripting to automate my VSPAERO runs.)

Next I wanted to look at incorporating fuselages etc, so I will check out the links you've provided.

Hugh

Rob McDonald

unread,
May 6, 2015, 6:35:51 PM5/6/15
to ope...@googlegroups.com
Yes, neutral point / static margin stuff should be easy enough to come
by and has no need for control surfaces.

If you just want to find the neutral point, it is probably easiest to
set the CG to (0,0,0) for your first runs -- and treat it as a true
reference point.

Then, choose your desired SM, set the CG accordingly, and then proceed
with the full -stab analysis if you need.

Rob

B-ROB

unread,
May 25, 2015, 10:14:55 PM5/25/15
to ope...@googlegroups.com
Rob,

What stability derivatives does VSP calculate?  All of them or just a few?

Rob McDonald

unread,
May 26, 2015, 12:16:40 AM5/26/15
to ope...@googlegroups.com
You access it via the -stab option on the command line to the solver
-- I haven't made a GUI front end for that yet. It will write out a
*.stab file with all the results.

It will calculate derivatives of nine components with respect to
alpha, beta, Mach, P, Q, R (roll, pitch, yaw rate).

It calculates nine components because it calculates both wind and body
axis components for force, so CFx, CFy, CFz, CMx, CMy, CMz, CL, CD,
CS.

Rob

Hugh Blackburn

unread,
May 26, 2015, 10:58:02 PM5/26/15
to ope...@googlegroups.com
Hi again Rob

Could you give some guidance about files and using the command-line solvers?  I can't find documentation or a starting point other than maybe CR-2865, seemingly written before command-line arguments were common anyway!

thanks
Hugh

Rob McDonald

unread,
May 26, 2015, 11:56:41 PM5/26/15
to ope...@googlegroups.com
If you run vspaero from the command line with no arguments, it will
print out a list of the available options. The two most immediately
useful are -setup and (for this conversation) -stab.

The -setup option will write out a default input file that controls
the flow condition, reference quantities, and solver parameters. You
can pass additional parameters to set some of those variables.

The parameters in the setup file are described in the tutorial on the
Wiki. It may be a little bit out of date, but I expect some updates
to come soon.

http://www.openvsp.org/wiki/doku.php?id=vspaerotutorial

Rob

Nicolas Gonthier

unread,
Jun 22, 2015, 8:18:00 AM6/22/15
to ope...@googlegroups.com
Rob,

Does it exist a command line that we can use to read Reference quantites (from the vsp3 file) and CG position (after Mass properties computation) to write the setup input file of VSPAERO ? 

Or we need to parse those two file to write the .vspaero file ?

Thanks

Nicolas

Rob McDonald

unread,
Jun 22, 2015, 8:46:32 AM6/22/15
to ope...@googlegroups.com
Both may be accessed via the API or the built-in scripting. While it
may sometimes be a good idea to parse the output of VSP's analysis, I
don't ever recommend anyone parse the *.vsp3 file (in or out). Use
the API or scripting instead.

The reference quantities are simply regular Parms that you might get
like any other.

For the mass properties, you'll need to execute mass props first

http://www.openvsp.org/wiki/doku.php?id=api

ComputeMassProps( int set, int num_slices );

Then access the results of that computation via:

http://www.openvsp.org/wiki/doku.php?id=api#results

Rob
Reply all
Reply to author
Forward
0 new messages