Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #15

Open
wants to merge 47 commits into
base: dev_lowra
Choose a base branch
from
Open

Develop #15

wants to merge 47 commits into from

Conversation

hunterbs123
Copy link

#HacktoberFest2018

NormanT7 added 30 commits May 18, 2017 20:16
This first version of the python machup implements a linear
lifting-line solver and the supporting lifting-line grid and
geometry classes. Enough basic functionality is implemented to
handle a simple airplane case with uniform properties across the
wings, dihedral, and control surfaces. All results have been tested
against the existing version of machup to verify the correctness.
Although most of the structure was in for handling sweep, there were
bugs in how the positions of the control and corner points of the
vortices and the section areas were being calculated in the case of
sweep. Tests were implemented to test for correct function in these
areas and the bugs were fixed.
The default is for the LLGrid to use cosine spacing for the
horseshoe vortices. This allows for linear spacing to be used if
desired. Although there aren't any existing lifting-line results to
compare the linear spacing to, a grid convergence study was
performed and the linearly spaced cases converged to the same values
as the cosine spaced cases as more nodes were added.
Calculates lift and drag based on equations given on page 2 of
Phillips text book.
Uses views to keep track of data for each segment instead of dual
indices.
The numpy rot90 function has different function parameters in newer
versions. This function was removed to allow for backwards
compatibility with older versions of numpy.
Implements linear interpolation of airfoil properties across
wingsegment to allow for a different airfoil to be specified at the
root and at the tip. Since the fortran machup interpolates lift and
moment coefficient linearly accross the wing and not airfoil
properties, special interpolations had to be added to allow for
comparison with the fortran version of the code.
The default for control surfaces should be asymmetric deflection.
In addition to adding a test for spanwise integration, this commit
also adds a full plane test for all functionality to date.
Roll, pitch, and yaw rates can now be specified in the aero_state
inputs. The local velocities generated due to these rotation rates
are superimposed on the freestream velocities that are input.
A different percentage of chord can now be specified for the start
and end of a control surface. Also, this commit breaks out the
creation of the control mixing arrays for code clarity.
Local values for the velocity and density can now be passed in
through the aero_state input. Additionally, the lifting-line class
was modified to use a local density in it's solution.
Since the integral of the chord squared along the spanwise direction
is a function of the geometry only, it can be computed by the LLGrid
before solve time.
Attempts to isolate .json inputfile parsing into a method in the
Airplane class.
Allows for geometry objects to be 'connected to' each other. This
allows for the position of one object to be defined relative to
another object.
Extends the interface to allow for a simple monowing airplane to be
built using the python interface instead of just from an inputfile.
Additionally, the airfoil and control surface properties are
factored out into individual classes.
This is in preparation for a file split that will maintain the git
history for the LLModel and LLGrid classes.
This allows for the user to use the LLModel and LLGrid classes
without repetitious code like 'machup.llmodel.LLModel'.
This provides a functionality similar to the online version of
machup until a more general method for specifying control surfaces
and the corresponding deflections can be implemented in a future
release.
Output .json files from the online version of machup may or may not
have control surface properties specified for every wing.
Modifies the method of building geometry from an input file to
follow a more consistent pattern and cleans up related code. Now
specifying an airfoil and a control surface for a wing follow the
same pattern when building from an inputfile and when doing it
programmatically.
This is in preparation to split the python version into it's own
repository.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants