diff options
| -rw-r--r-- | __init__.py | 4 | ||||
| -rw-r--r-- | creator.py | 32 | ||||
| -rw-r--r-- | main.py | 16 | 
3 files changed, 29 insertions, 23 deletions
| diff --git a/__init__.py b/__init__.py index 5e916af..dc031d0 100644 --- a/__init__.py +++ b/__init__.py @@ -13,5 +13,5 @@  # You should have received a copy of the GNU General Public License
  # along with this program.  If not, see <https://www.gnu.org/licenses/>.
  __author__ = "Marius Peter"
 -__version__ = "2.3"
 -__revision__ = "2.3.1"
 +# __version__ = "2.3"
 +# __revision__ = "2.3.1"
 @@ -70,10 +70,7 @@ class Coordinates:      def __str__(self):
          return type(self).__name__
 -    def add_mass(self, mass):
 -        self.mass = len(self.x_u) * mass
 -
 -    def print_coord(self, round):
 +    def print_info(self, round):
          """
          Print all the component's coordinates to the terminal.
 @@ -83,15 +80,15 @@ class Coordinates:          print('Component:', str(self))
          print('Chord length:', self.chord)
          print('Semi-span:', self.semi_span)
 +        print('Mass:', self.mass)
          print('============================')
          print('x_u the upper x-coordinates:\n', np.around(self.x_u, round))
          print('y_u the upper y-coordinates:\n', np.around(self.y_u, round))
          print('x_l the lower x-coordinates:\n', np.around(self.x_l, round))
          print('y_l the lower y-coordinates:\n', np.around(self.y_l, round))
 -        # print('\n')
          return None
 -    def save_coord(self, save_dir_path, number):
 +    def save_info(self, save_dir_path, number):
          """
          Save all the object's coordinates (must be full path).
          """
 @@ -100,7 +97,7 @@ class Coordinates:          full_path = os.path.join(save_dir_path, file_name)
          try:
              with open(full_path, 'w') as sys.stdout:
 -                self.print_coord(2)
 +                self.print_info(2)
                  # This line required to reset behavior of sys.stdout
                  sys.stdout = sys.__stdout__
                  print('Successfully wrote to file {}'.format(full_path))
 @@ -112,7 +109,7 @@ class Coordinates:          return None
 -    def pack_coord(self):
 +    def pack_info(self):
          self.coord.append(self.x_u)
          self.coord.append(self.y_u)
          self.coord.append(self.x_l)
 @@ -244,9 +241,12 @@ class Airfoil(Coordinates):              self.x_l.append(get_lower_coordinates(x)[0])
              self.y_l.append(get_lower_coordinates(x)[1])
 -        super().pack_coord()
 +        super().pack_info()
          return None
 +    def add_mass(self, mass):
 +        self.mass = mass
 +
  class Spar(Coordinates):
      """Contains a single spar's location."""
 @@ -285,9 +285,12 @@ class Spar(Coordinates):          self.x_l.append(x_l[spar_x_l])
          self.y_l.append(y_l[spar_x_l])
 -        super().pack_coord()
 +        super().pack_info()
          return None
 +    def add_mass(self, mass):
 +        self.mass = len(self.x_u) * mass
 +
  class Stringer(Coordinates):
      """Contains the coordinates of all stringers."""
 @@ -296,8 +299,8 @@ class Stringer(Coordinates):      def __init__(self):
          super().__init__(parent.chord, parent.semi_span)
 -    def add_coord(self, airfoil_coord, spar_coord, stringer_u_1, stringer_u_2,
 -                  stringer_l_1, stringer_l_2):
 +    def add_coord(self, airfoil_coord, spar_coord,
 +                  stringer_u_1, stringer_u_2, stringer_l_1, stringer_l_2):
          """
          Add equally distributed stringers to four airfoil locations
          (upper nose, lower nose, upper surface, lower surface).
 @@ -365,9 +368,12 @@ class Stringer(Coordinates):              self.y_l.append(airfoil_y_l[index])
              x += interval
 -        super().pack_coord()
 +        super().pack_info()
          return None
 +    def add_mass(self, mass):
 +        self.mass = len(self.x_u) * mass + len(self.x_l) * mass
 +
  def plot(airfoil, spar, stringer):
      """This function plots the elements passed as arguments."""
 @@ -21,7 +21,7 @@ import random  import time  start_time = time.time() -CHORD_LENGTH = 10 +CHORD_LENGTH = 100  SEMI_SPAN = 200  # masss @@ -45,7 +45,7 @@ def main():          # Define NACA airfoil coordinates and mass          af.add_naca(2412)          af.add_mass(AIRFOIL_MASS) -        af.print_coord(2) +        af.print_info(2)          # Create spar instance          af.spar = creator.Spar() @@ -53,22 +53,22 @@ def main():          af.spar.add_coord(af.coord, 0.15)          af.spar.add_coord(af.coord, 0.55)          af.spar.add_mass(SPAR_MASS) -        af.spar.print_coord(2) +        af.spar.print_info(2)          # Create stringer instance          af.stringer = creator.Stringer()          # Compute the stringer coordinates from their quantity in each zone          af.stringer.add_coord(af.coord, af.spar.coord, 4, 7, 5, 6)          af.stringer.add_mass(STRINGER_MASS) -        af.stringer.print_coord(2) +        af.stringer.print_info(2)          # Plot components with matplotlib          # creator.plot(af, af.spar, af.stringer) -        # Save component coordinates -        af.save_coord(SAVE_PATH, _) -        af.spar.save_coord(SAVE_PATH, _) -        af.stringer.save_coord(SAVE_PATH, _) +        # Save component info +        af.save_info(SAVE_PATH, _) +        af.spar.save_info(SAVE_PATH, _) +        af.stringer.save_info(SAVE_PATH, _)      # Print final execution time      print("--- %s seconds ---" % (time.time() - start_time)) | 
