summaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
authorMarius Peter <blendoit@gmail.com>2019-06-30 16:01:37 -0700
committerMarius Peter <blendoit@gmail.com>2019-06-30 16:01:37 -0700
commitf36281a373f5cf34a594c098c483a7d4b46c2377 (patch)
tree780ae3e173daab682198a7ee9cc3e99315f86bb0 /main.py
parent21678d4029eab07ed831b7a55289dc1b750bb3f9 (diff)
add example
Diffstat (limited to 'main.py')
-rw-r--r--main.py121
1 files changed, 0 insertions, 121 deletions
diff --git a/main.py b/main.py
deleted file mode 100644
index c0d90ae..0000000
--- a/main.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# This file is part of Marius Peter's airfoil analysis package (this program).
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-
-import creator # Create geometry
-import evaluator # Evaluate geometry
-import generator # Iteratevely evaluate instances of geometry and optimize
-import numpy as np
-
-import time
-start_time = time.time()
-
-# Airfoil dimensions
-NACA_NUM = 2412
-CHORD_LENGTH = 2 # inches
-SEMI_SPAN = 150 # inches
-
-# Thicknesses
-SPAR_THICKNESS = 0.4
-SKIN_THICKNESS = 0.1
-
-# Component masses
-AIRFOIL_MASS = 10 # lbs
-SPAR_MASS = 10 # lbs
-STRINGER_MASS = 5 # lbs
-
-# Area
-SPAR_CAP_AREA = 0.3 # sqin
-STRINGER_AREA = 0.1 # sqin
-
-# Amount of stringers
-TOP_STRINGERS = 6
-BOTTOM_STRINGERS = 4
-NOSE_TOP_STRINGERS = 3
-NOSE_BOTTOM_STRINGERS = 5
-
-# population information & save path
-POP_SIZE = 1
-SAVE_PATH = 'C:/Users/blend/github/UCLA_MAE_154B/save'
-
-
-def main():
- """
- Create an airfoil;
- Evaluate an airfoil;
- Generate a population of airfoils & optimize.
- """
-
- # Interate through all wings in population, creating and evaluating them.
- for _ in range(1, POP_SIZE + 1):
-
- # Create airfoil instance
- af = creator.Airfoil.from_dimensions(CHORD_LENGTH, SEMI_SPAN)
- # Define NACA airfoil coordinates and mass
- af.add_naca(NACA_NUM)
- af.add_mass(AIRFOIL_MASS)
- # af.info_print(2)
- af.info_save(SAVE_PATH, _)
-
- # Create spar instance
- af.spar = creator.Spar()
- # Define the spar coordinates and mass, stored in single spar object
- af.spar.add_coord(af, 0.23)
- af.spar.add_coord(af, 0.57)
- # Automatically adds spar caps for each spar defined previously
- af.spar.add_spar_caps(SPAR_CAP_AREA)
- af.spar.add_mass(SPAR_MASS)
- af.spar.add_webs(SPAR_THICKNESS)
- # af.spar.info_print(2)
- af.spar.info_save(SAVE_PATH, _)
-
- # Create stringer instance
- af.stringer = creator.Stringer()
- # Compute the stringer coordinates from their quantity in each zone
- af.stringer.add_coord(af,
- NOSE_TOP_STRINGERS,
- TOP_STRINGERS,
- NOSE_BOTTOM_STRINGERS,
- BOTTOM_STRINGERS)
- af.stringer.add_area(STRINGER_AREA)
- af.stringer.add_mass(STRINGER_MASS)
- af.stringer.add_webs(SKIN_THICKNESS)
- # af.stringer.info_print(2)
- af.stringer.info_save(SAVE_PATH, _)
-
- # Plot components with matplotlib
- # creator.plot_geom(af, True)
-
- # Evaluator object contains airfoil analysis results.
- eval = evaluator.Evaluator(af)
- # The analysis is performed in the evaluator.py module.
- eval.analysis(1, 1)
- # eval.info_print(2)
- eval.info_save(SAVE_PATH, _)
- # evaluator.plot_geom(eval)
- # evaluator.plot_lift(eval)
-
- pop = generator.Population(10)
-
- # print(help(creator))
- # print(help(evaluator))
- # print(help(generator))
-
- # Print final execution time
- print("--- %s seconds ---" % (time.time() - start_time))
-
-
-if __name__ == '__main__':
- main()
Copyright 2019--2024 Marius PETER