Delta-cp blowing up in unsteady case

199 views
Skip to first unread message

marc.umb...@gmail.com

unread,
Sep 28, 2023, 4:34:19 AM9/28/23
to OpenVSP
Hi All,
I have been running some unsteady sims (and fixed the NaN issue by reducing tesselation), but I still have the delta-CP blowing up to unreasonable values.  Further, in steady cases CP also seems a bit high at +/- 400 for a set of rather conventional lifting surfaces.  Anyone see the issue with this mesh/method?
unsteady_cp_blowing_up.png
cp_blowing_up.vsp3

flashnag

unread,
Dec 5, 2023, 8:46:52 PM12/5/23
to OpenVSP
Hi Marc,
   I am struggling to get the unsteady solution to work. I made a very simple wing model and the steady cases work fine, such as

vspaero -omp 4 -qstab wing02_DegenGeom

But am getting the error when running

vspaero -omp 4 -unsteady wing02_DegenGeom
Could not open the group file for input!

what is the group file and how is it formatted?
Thanks.

Rob McDonald

unread,
Dec 6, 2023, 12:45:21 AM12/6/23
to OpenVSP
Technically the -qstab run is an unsteady run.

Are you running with rotating blades (propellers or rotors)?  If not, there is probably no reason to run in unsteady mode.

Try setting your case up through the GUI, learn from that.

Right now, there are problems setting up symmetrical propellers.  Until that gets fixed, copy/paste your props so you have separate propellers if you're going to do unsteady analysis.

Rob

flashnag

unread,
Dec 6, 2023, 11:14:44 AM12/6/23
to OpenVSP
Hi Rob,
 First off, thanks, the help. I really enjoy tinkering with openvsp.
   I am not trying to model rotors or rotor wash, just general time-domain solutions with maneuvers or external store drops.  I am trying to emulate the examples shown in the youtube videos.
Is it possible to share the two unsteady example shown in the videos, the wing and tail and wing and pod drops?

Day 3 Demo: VSPAERO Command Line and Dynamic Motion

I have been searching to find a definition for some of the parameters in the .vspaero file, such as GeometryIsDynamic = 3, which I got from the video.

I did get a model to run by reusing a group file generated from the GUI for a supported unsteady setup

$ vspaero -omp 4 -unsteady wing02_DegenGeom

wing02_DegenGeom.vspaero
Sref = 42.637795
Cref = 2.500000
Bref = 17.055118
X_cg = 2.500000
Y_cg = 0.000000
Z_cg = 0.000000
Mach = 0.000000
AoA = 5.500000
Beta = 0.000000
Vinf = 100.000000
Vref = 100.000000
Machref = 0.250000
Rho = 0.002377
ReCref = 10000000.000000
ClMax = -1.000000
MaxTurningAngle = -1.000000
Symmetry = NO
FarDist = -1.000000
NumWakeNodes = 64
WakeIters = 5
NumberOfControlGroups = 0
Preconditioner = Matrix
Karman-Tsien Correction = N
Stability Type = 0
TimeStep = 0.1
NumberOfTimeSteps = 60
Num Unsteady Groups = 1


wing02_DegenGeom.groups
1
#
GroupName = Fixed_Group
NumberOfComponents = 1
1
GeometryIsFixed = 1
GeometryIsDynamic = 3
GeometryIsARotor = 0
RotorDiameter = 0.000000
OVec = 0.000000 0.000000 0.000000
RVec = 0.000000 0.000000 0.000000
Velocity = 0.000000 0.000000 0.000000
Acceleration = 0.000000 0.000000 -32.2
Omega = 0.000000
Mass = 1.000000
Ixx = 1.000000
Iyy = 2.000000
Izz = 2.000000
Ixy = 0.000000
Ixz = 0.000000
Iyz = 0.000000
#
wing02_DegenGeom.vspaero
wing02.vsp3
wing02_DegenGeom.groups

Rob McDonald

unread,
Dec 6, 2023, 4:15:50 PM12/6/23
to OpenVSP
I have never done this sort of analysis.  Perhaps someone else on the list can be of more help.

Rob

Brandon Litherland

unread,
Dec 7, 2023, 9:42:49 AM12/7/23
to OpenVSP
So, this is a complicated topic to dive into and it's been a long time since I went into the source code to find this stuff. I'll do my best to explain here.

As Rob stated, VSPAERO is set to run unsteady pitch, roll, and yaw perturbations with the -p/q/rstab options.  This can be run from the GUI as well.  These are effectively a single period perturbation of unit amplitude in the pitch, roll, and yaw directions.  VSPAERO has a separate block(s) of code to run this unsteady case where a maximum angle and omega are defined.  It's hard-coded and can't be adjusted by the user.

An Unsteady run is different.  These are usually the cases resulting from performing a rotating blades analysis with props and rotors (from the GUI) but the capabilities don't stop there.  The Groups file tells the unsteady solver what components belong in which group and then how to set motion for each group.  For a typical rotating blades analysis, you'll find that the rotors are all defined in their respective groups with the GeometryIsARotor flag as True (1) and everything else is Fixed.  For a Fixed group, GeometryIsDynamic will be zero.  Let's break down how each component could possibly move in simple terms.  It's either fixed (not moving), moving at a constant rate/acceleration, moving periodically, or free to move (6DoF).  Yes, the motion could be defined in much more complex arrangements but this is what VSPAERO understands for now.  Each of these are accessible through the GeometryIsDynamic term.  Source code where you can see these options is here: https://github.com/OpenVSP/OpenVSP/blob/4ba939ff18997266a5d3993067948ff0b74735bf/src/vsp_aero/Solver/ComponentGroup.C#L559
GID = 0 >> Fixed
GID = 1 >> Prescribed motion (Origin vector, Rotation vector, velocity (XYZ), Accleration (XYZ), Omega (about Rvec))
GID = 2 >> Periodic motion (Omega and AngleMax (more on this)
GID = 3 >> Six Degree of Freedom (Requires Mass and Inertias, Acceleration and Velocities, the works)

The issue with trying to run periodic motion (for now) is that the input parser for VSPAERO isn't reading the AngleMax variable into the solver setup.  That parameter is used for the -p/q/rstab runs and could alter how those analyses behave if you overwrite it.  Not enough people have wanted this extra feature yet so it's not readily available.  However if you REALLY need this feature, you can alter the VSPAERO source code to let you use it.  Of course, you'll have to download the source code and build it yourself for this to work.

Line 780 (https://github.com/OpenVSP/OpenVSP/blob/449833486603c9bc69bbbd41ceceb7703b0d890d/src/vsp_aero/solver/ComponentGroup.C#L780) of the ComponentGroup.C file is where the input file scan happens.  Altering this section of code to scan for "AngleMax = NNN" where NNN is your maximum angle in radians will activate the option for you to use GID = 2.  Rebuild OpenVSP when you've made these changes. Setting this and some Omega and Rvec will enable a run like my pitching wing/tail demo.

So unless you have a really good reason to want to run an analysis like this, I would leave it be.

- Brandon

flashnag

unread,
Dec 10, 2023, 8:04:55 PM12/10/23
to OpenVSP
Thanks Brandon, I appreciate the helpful response, especially pointing to the source code. I'll have a look and play around with with it.
-neal
Reply all
Reply to author
Forward
0 new messages