diff options
| -rw-r--r-- | creator.py | 39 | ||||
| -rw-r--r-- | main.py | 33 | 
2 files changed, 42 insertions, 30 deletions
| @@ -59,11 +59,12 @@ class Coordinates:          self.x_l = []
          self.y_l = []
          # Coordinates x_u, y_u, x_l, y_l packed in single list
 -        self.coordinates = []
 +        self.coord = []
 +        # The airfoil components know the Coordinates instance's coords
          global parent
          parent = self
 -    def print_coord(self, round):
 +    def print_component(self, round):
          """
          Print all the component's coordinates to the terminal.
 @@ -100,6 +101,12 @@ class Coordinates:          self.print_coord(4)
          return None
 +    def pack_coord(self):
 +        self.coord.append(self.x_u)
 +        self.coord.append(self.y_u)
 +        self.coord.append(self.x_l)
 +        self.coord.append(self.y_l)
 +
  class Airfoil(Coordinates):
      """This class enables the creation of a single NACA airfoil."""
 @@ -227,11 +234,7 @@ class Airfoil(Coordinates):              self.x_l.append(get_lower_coordinates(x)[0])
              self.y_l.append(get_lower_coordinates(x)[1])
 -        self.coordinates.append(self.x_u)
 -        self.coordinates.append(self.y_u)
 -        self.coordinates.append(self.x_l)
 -        self.coordinates.append(self.y_l)
 -
 +        super().pack_coord()
          return None
 @@ -271,6 +274,8 @@ class Spar(Coordinates):          self.y_u.append(y_u[spar_x_u])
          self.x_l.append(x_l[spar_x_l])
          self.y_l.append(y_l[spar_x_l])
 +
 +        super().pack_coord()
          return None
 @@ -281,17 +286,25 @@ class Stringer():      def __init__(self):
          super().__init__(parent.chord, parent.semi_span)
 -    def add_stringer(self, *density):
 +    def add_stringer(self, coordinates, den_u_1, den_u_2, den_l_1, den_l_2):
          """
 -        Add stringers to the wing from their distribution density between spars.
 -        First half of density[] concerns stringer distribution on
 +        Add stringers to the wing from their density distribution.
          Parameters:
 -        material: stringer material
 -        *density:
 +        den_u_1: upper nose stringer density (until first spar)
 +        den_u_2: upper surface stringer density
 +        den_l_1: lower nose stringer density (until first spar)
 +        den_l_2: lower surface stringer density
 +        Returns:
 +        None
          """
 -
 +        # Airfoil surface coordinates
 +        # unpacked from 'coordinates' (list of lists in 'Airfoil').
 +        x_u = coordinates[0]
 +        y_u = coordinates[1]
 +        x_l = coordinates[2]
 +        y_l = coordinates[3]
          # Find interval between leading edge and first upper stringer,
          # from density parameter den_u_1.
          interval = self.spar_x_u[0] / (den_u_1 * self.spar_x_u[0])
 @@ -19,7 +19,7 @@ import random  import time  start_time = time.time() -CHORD_LENGTH = 100 +CHORD_LENGTH = 10  SEMI_SPAN = 200  POP_SIZE = 1 @@ -36,31 +36,30 @@ def main():          af = creator.Airfoil()          # Define NACA airfoil coordinates          af.naca(2412) -        # Print coordinates of af to terminal -        af.print_coord(4) + +        print(af.coord)          # Create spar instance          af.spar = creator.Spar()          # Define the spar coordinates -        af.spar.add_spar(af.coordinates, 0.15) -        af.spar.add_spar(af.coordinates, 0.55) +        af.spar.add_spar(af.coord, 0.15) +        af.spar.add_spar(af.coord, 0.55)          # Print coordinates of af.spar to terminal -        af.spar.print_coord(4) -        # Create stringer instance -        af.stringer = creator.Stringer() -        # Define the stringer coordinates -        af.stringer.add_stringer(af.coordinates, 0.15) -        af.stringer.add_stringer(af.coordinates, 0.55) -        # Print coordinates of af.stringer to terminal -        af.stringer.print_coord(4) +        # # Create stringer instance +        # af.stringer = creator.Stringer() +        # # Define the stringer coordinates +        # af.stringer.add_stringer(af.coordinates, 0.15) +        # af.stringer.add_stringer(af.coordinates, 0.55) +        # # Print coordinates of af.stringer to terminal +        # af.stringer.print_coord(4)          # Plot components with matplotlib -        creator.plot(af, af.spar, af.stringer) +        creator.plot(af, af.spar) -        # Save component coordinates -        af.save_coord(SAVE_PATH) -        af.spar.save_coord(SAVE_PATH) +        # # Save component coordinates +        # af.save_coord(SAVE_PATH) +        # af.spar.save_coord(SAVE_PATH)      # Print final execution time      print("--- %s seconds ---" % (time.time() - start_time)) | 
