-
Notifications
You must be signed in to change notification settings - Fork 15
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
hunterbs123
wants to merge
47
commits into
dev_lowra
Choose a base branch
from
develop
base: dev_lowra
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Develop #15
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#HacktoberFest2018