Skip to content

Merging Buildup Weight Models, Solid Materials Classes#212

Merged
JTrentSmart merged 39 commits intosuavecode:developfrom
JTrentSmart:develop
Apr 23, 2018
Merged

Merging Buildup Weight Models, Solid Materials Classes#212
JTrentSmart merged 39 commits intosuavecode:developfrom
JTrentSmart:develop

Conversation

@JTrentSmart
Copy link
Contributor

Includes buildup weight models intended for eVTOL aircraft and general purpose solid materials classes

Contains the Solids Attribute classes, as well as "first drafts" of the weight correlations methods, which have not yet been tested and debugged.
Fixed a few errors that came from first startup of SUAVE following previous commit
Rib and Epoxy Classes now create proper versions of themselves.

Prop NACA plotting was missing a coordinate value
Debugged and tested methods against Vahana original. Confirmed proper methodology and results accuracy
Changed eStopped_Rotor empty weight method to accomodate SUAVE vehicle structure

Changed Methods organization structure to differentiate Correlation Methods from Buildup Methods
Finished Empty Weight Models for All Vehicle Types.
Copy link
Contributor

@timdmacdo timdmacdo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The inline documentation is good, but the documentation needed for doxygen is mostly missing. Also, at least one of the weight functions is duplicated, and the others look at least very similar. These should be condensed to a single function in a common folder and called as needed.

@@ -0,0 +1,53 @@
# Weights_eStopped_Rotor.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This name is unclear.

@@ -0,0 +1,53 @@
# Weights_eStopped_Rotor.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File needs doxygen tags and documentation.

@@ -0,0 +1,29 @@
# Acrylic.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File needs doxygen tags and documentation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

@@ -0,0 +1,29 @@
# Aluminum.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File needs doxygen tags and documentation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.


def __defaults__(self):

self.UTS = 75e6 # Ultimate Tensile Strength
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since these variables can be used outside of the class they must have verbose names.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to e.g. ultimate_tensile_strength

#
# Created: Aug 2017, J. Smart

# !! CURRENTLY NON-FUNCTIONAL !!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hope it's functional now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleted the file, realized the functionality I planned to add was already available elsewhere.

thrust_motor.omega(conditions)
# link
lift_prop.inputs.omega = lift_motor.outputs.omega
lift_prop.thrust_angle = 90
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change this to radians if possible to avoid confusion later on.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change obsoleted by file deletion.

@@ -0,0 +1,10 @@
"""SUAVE.Methods.Weights.Correlations.eHelicopter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use verbose names for classes and functions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using this to ask generally about verbose names - would "electricHelicopter", etc. be sufficiently verbose?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm gonna say yes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, our naming convention in SUAVE would be "Electric_Helicopter" for the folder, and "electric_helicopter" if this is the method name.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to comply with naming convention


"""

weight = {}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the SUAVE Data class here.

Copy link
Member

@planes planes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Echo what Tim said about using common folders. There's a ton of repeated code. We try to minimize repeated code in SUAVE. If you find a bug in one script then it's hard to be sure that bug doesn't exist in others.

You also need to create a regression script. I expect coveralls to send us all an email about this...

self.features = Earth()
## @ingroup Analyses-Planets
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this showing as different?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason it had three extra lines of whitespace at the bottom. They've been deleted.


self.UTS = 75e6 # Ultimate Tensile Strength
self.USS = 55.2e6 # Ultimate Shear Strength
self.UBS = 0.0 # Ultimate Bearing Strength
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use units, for example * Units.Pascals.
Echo what Tim said, you need descriptive names. Leaving a comment next to it isn't enough, when i'm viewing the results in another script I won't know what UBS is.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to verbose names in compliance with naming convention and added units

@@ -0,0 +1,30 @@
# Rib.py
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is rib?

Is this a component or a material?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's actually just Aluminum with an added minimum width. Suggest changing it to inherit from Aluminum rather than directly from Solid and adding the minimum width.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naming is a bit wierd...is there a better name?

# ----------------------------------------------------------------------
# Network
# ----------------------------------------------------------------------
class Battery_Propeller(Propulsor):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorrect name.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change obsoleted by file deletion.

# Assumed Weights
#-------------------------------------------------------------------------------

weight['Payload'] = mPayload
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add units to everything.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

@@ -0,0 +1,225 @@
# prop.py
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Propellers are already a thing in SUAVE. They are fully defined except weights. I suggest you input a propeller class and obtain all information from the provided class.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The input can be within the method or the empty script. Chefs choice.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to take propeller class as function input.

# Airfoil
#-------------------------------------------------------------------------------

NACA = np.multiply(5 * toc, [0.2969, -0.1260, -0.3516, 0.2843, -0.1015])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wish you asked me about all of this. I have all this stuff figured out for you. Ask me in the meeting tomorrow.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change was discussed in meeting, functionality unaltered.


# Calculate Skin Weight Based on Torsion

tTorsion = My/(2*Solids.BiCF().USS*enclosedArea) # Torsion Skin Thickness
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again unpack solids up top.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to unpack.

weight: Wing Mass [kg]
"""

N = 10 # Number of spanwise points
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Allow these assumptions to be inputted or defaulted.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to function input with default value.

dragInertia = 0
dragLength = 0

for i in range(0,4):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use xrange

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to xrange throughout the project.

@planes
Copy link
Member

planes commented Jan 10, 2018

Hey Jordan. Finish this

@coveralls
Copy link

coveralls commented Feb 19, 2018

Coverage Status

Coverage increased (+1.2%) to 65.003% when pulling 28545b4 on JTrentSmart:develop into 8408ac6 on suavecode:develop.

@@ -0,0 +1,352 @@
# eVTOL_Weights_Buildup_Regression.py
#
# Author: Jordan Smart, Feb. 2018
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Created"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example:

Created: Mar, 2014, SUAVE Team

Modified: Jan, 2016, M. Vegh

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed throughout project to comply with style guide.

# eVTOL_Weights_Buildup_Regression.py
#
# Author: Jordan Smart, Feb. 2018

Copy link
Contributor

@WallyMaier WallyMaier Mar 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add "#Import"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

vehicle.mass_properties.operating_empty = 640. * Units.kg
vehicle.mass_properties.max_takeoff = 1000. * Units.kg

vehicle.reference_area = 12.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Units?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

fuselage = SUAVE.Components.Fuselages.Fuselage()
fuselage.tag = 'fuselage'

fuselage.lengths.total = 5.5
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Units? Not necessary, but might look more consistent.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

# Planet.py
#
# Created:
# Modified: Feb 2016, Andrew Wendorff
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Say when you modified this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't actually modify it, for some reason at one point my version had three extra lines of whitespace at the bottom which have been removed

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put it back! Do:
git checkout develop trunk/SUAVE/Analyses/Planets/Planet.py

@@ -0,0 +1,31 @@
## @ingroup Attributes-Solids

# BiCF.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would change this to a more verbose name, so it's more clear what it is from just the variable name

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to Bidirectional_Carbon_Fiber


def __defaults__(self):

self.ultimateTensileStrength = 0.0 *Units.Pa
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attributes don't match our naming convention.
should be:
self.ultimate_tensile_strength

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to comply with style guide.


def __defaults__(self):

self.ultimateTensileStrength = 600e6 *Units.Pa
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attribute conventions

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to comply with style guide.


def __defaults__(self):

self.ultimateTensileStrength = 75e6 *Units.Pa
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attribute naming conventions are off. should be
self.ultimate_tensile_strength

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to comply with style guide.

@@ -0,0 +1,31 @@
## @ingroup Attributes-Solids

# UniCF.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have a more verbose name for the file. See BiCF.py

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agreed

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above comments

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to comply with style guide.

#-------------------------------------------------------------------------------

def prop(prop,
maximumThrust,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

naming conventions

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to comply with style guide.


def wing(wing,
config,
maxThrust,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

naming convention

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still need to update naming convention for instantiating class

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to comply with style guide.

config SUAVE Config Data Structure
speedOfSound Local Speed of Sound [m/s]
maximumTipMach Allowable Tip Mach Number [Unitless]
diskAreaFactor Disk Area Factor [Unitless]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

be more clear in documentation what Disk Area Factor is

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added more descriptive documentation.

tTorsion = My*dx/(2*BiCF().ultimateShearStrength*torsionArea) # Torsion Skin Thickness
tTorsion = np.maximum(tTorsion,BiCF().minimumGageThickness*np.ones(N)) # Gage Constraint
mTorsion = tTorsion * torsionLength * BiCF().density # Torsion Mass
mCore = Honeycomb().minimumGageThickness*torsionLength*Honeycomb().density*np.ones(N) # Core Mass
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update attribute naming convention

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change obsoleted by switch to unpack of material properties.

Copy link
Member

@planes planes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One other thing to do, make sure to add periods to force float data types.

@@ -0,0 +1,352 @@
# eVTOL_Weights_Buildup_Regression.py
#
# Author: Jordan Smart, Feb. 2018
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example:

Created: Mar, 2014, SUAVE Team

Modified: Jan, 2016, M. Vegh

# Planet.py
#
# Created:
# Modified: Feb 2016, Andrew Wendorff
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put it back! Do:
git checkout develop trunk/SUAVE/Analyses/Planets/Planet.py


# Weights_electricHelicopter.py
#
# Created: Mar 2017, J. Smart
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong style:
# Created: Mar, 2014, SUAVE Team
# Modified: Jan, 2016, M. Vegh

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed throughout project to comply with style guide.


# Weights_electricStoppedRotor.py
#
# Created: Aug 2017, J. Smart
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong titles.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to correct titles.

@@ -0,0 +1,53 @@
# Weights_electricTiltrotor.py
#
# Created: Mar 2017, J. Smart
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

titles.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to correct titles.

boltDiam = 2 * np.sqrt(boltArea/np.pi) # Bolt Diameter
lamThk = F_landing/(boltDiam*bidirectional_carbon_fiber().ultimate_bearing_strength) # Laminate Thickness
lamVol = (np.pi*(20*lamThk)**2)*(lamThk/3) # Laminate Pad volume
massKeel += 4*lamVol*bidirectional_carbon_fiber().density # Mass of 4 Pads
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should unpack these

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to unpack of material properties.


# Calculate Skin Weight Based on Torsion

tTorsion = My/(2*bidirectional_carbon_fiber().ultimate_shear_strength*enclosedArea) # Torsion Skin Thickness
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unpack these

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to unpack of material properties.

# Core Mass

mCore = coreArea*honeycomb().density*np.ones(N)
mGlue += epoxy().minimum_gage_thickness*epoxy().density*skinLength*np.ones(N)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unpack things

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to unpack of material properties.


box = coord * chord
rRoot = (np.amax(box[:,1])-np.amin(box[:,1]))/2
t = np.amax(CF)/(2*np.pi*rRoot*aluminum().ultimate_tensile_strength) + \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unpack things

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to unpack of material properties.


# Calculate Skin Weight Based on Torsion

tTorsion = My*dx/(2*bidirectional_carbon_fiber().ultimate_shear_strength*torsionArea) # Torsion Skin Thickness
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unpack things

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to unpack of material properties.

@@ -0,0 +1,55 @@
## @ ingroup Analyses-Weights
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you tested that @ ingroup works with the space?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Space removed.

Copy link
Contributor

@timdmacdo timdmacdo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are documentation update requests

# Analysis
# ----------------------------------------------------------------------

class Weights_electric_helicopter(Weights):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs doxygen tag

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag added

class Weights_electric_helicopter(Weights):
""" SUAVE.Analyses.Weights.Weights_electricHelicopter()
"""
def __defaults__(self):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functions need documentation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation added.

# Analysis
# ----------------------------------------------------------------------

class Weights_electric_stopped_rotor(Weights):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function documentation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# Analysis
# ----------------------------------------------------------------------

class Weights_electric_tiltrotor(Weights):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function docs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# Acrylic Solid Class
#-------------------------------------------------------------------------------

class acrylic(solid):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function docs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# Wing
#-------------------------------------------------------------------------------

def wing(wing,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function doc format update

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# Wiring
#-------------------------------------------------------------------------------

def wiring(config,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function docs format update

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# Empty
#-------------------------------------------------------------------------------

def empty(config,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function docs format update

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# Empty
#-------------------------------------------------------------------------------

def empty(config,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function docs format update

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# Empty
#-------------------------------------------------------------------------------

def empty(config,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doxygen and function docs format update

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

wing.sweeps.leading_edge = 0. * Units.degrees
wing.sweeps.half_chord = 0. * Units.degrees

wing.xMotor = [0.5, 0.5]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make this naming more clear

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to motor_spanwise_locations

# ----------------------------------------------------------------------

class Weights_electric_helicopter(Weights):
""" SUAVE.Analyses.Weights.Weights_electricHelicopter()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

# ----------------------------------------------------------------------

class Weights_electric_stopped_rotor(Weights):
""" SUAVE.Analyses.Weights.Weights_electricStoppedRotor()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

documentation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tag and documentation added.

#-------------------------------------------------------------------------------

def prop(prop,
maximum_thrust,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a lot of this data can be gathered from the propeller: Number of blades and some ratios.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Number of blades changed to reference propeller data. User can override defaults to use propeller data if desired, but since the method depends on an assumed and approximate geometry for the prop, I prefer to leave them with default values to remain workable.


# Calculate Skin Weight Based on Torsion

tTorsion = My*dx/(2*BiCF_USS*torsionArea) # Torsion Skin Thickness
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lineup comments.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments aligned.

@suavecode suavecode deleted a comment from JTrentSmart Apr 12, 2018
@@ -3,7 +3,10 @@
## @ingroup Analyses
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct tag? (I don't know)

@@ -0,0 +1,65 @@
## @ingroup Attributes-Solids

# Honeycomb.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be better to make this "Carbon_Fiber_Honeycomb"? Im curious if there will ever be aluminum honeycomb?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea. Changed.

@@ -0,0 +1,30 @@
# Rib.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naming is a bit wierd...is there a better name?

maximum_g_load = 3.8,
landing_impact_factor = 3.5,
safety_factor = 1.5):
""" weight = SUAVE.Methods.Weights.Buildups.Common.fuselage(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this part of comment necessary?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe so. The Documentation guide only says that this section should be a description of the function, and I think a full location of the function and the default values are good, immediate references that someone would want to be able to quickly check on the documentation.

shear_center = 0.25,
speed_of_sound = 340.294,
tip_max_mach_number = 0.65):
"""weight = SUAVE.Methods.Weights.Buildups.Common.prop(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replied above.

shear_center_location = 0.25,
margin_factor = 1.2):

"""weight = SUAVE.Methods.Weights.Buildups.Common.wing(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replied above.

def wiring(config,
motor_spanwise_locations,
max_power_draw):
""" weight = SUAVE.Methods.Weights.Buildups.Common.wiring(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replied above.

disk_area_factor = 1.15,
max_thrust_to_weight_ratio = 1.1,
motor_efficiency = 0.85 * 0.98):
"""weight = SUAVE.Methods.Weights.Buildups.Electric_Helicopter.empty(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replied above.

@JTrentSmart JTrentSmart merged commit 0d7716a into suavecode:develop Apr 23, 2018
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.

6 participants