from AeroComBAT.FEM import Model
from AeroComBAT.Aerodynamics import calcAIC

# Define the width of the cross-section
x1 = -1
x2 = 1
c = 0.4572
ctip = c/10
croot = c/10
span = .697
p1 = np.array([c/2,0.,0.])
p2 = np.array([c/2,span,0.])
Y_rib = np.linspace(0.,1.,2)
b_s = np.linalg.norm((Y_rib[0],Y_rib[-1]))

matLib = MaterialLib()
matLib.addMat(1,'AL','iso',[71.7e9,.33,2810],.001)
matLib.addMat(2,'Weak_mat','iso',[100,.33,10],.005)
matLib.addMat(3,'AS43501-6*','trans_iso',[142e9,9.8e9,.34,.42,6e9,2000],0.005)

n_ply = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
m_ply = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

# For tension bending coupling
#m_ply = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]
#th_ply = [0,0,0,0,-30,-30,-30,-30,0,0,0,0,30,30,30,30]

noe_dens = 60
chordVec=np.array([1.,0.,0.])
wing1 = Wing(1,p1,p2,croot,ctip,x1,x2,Y_rib,n_ply,m_ply,matLib,name='box',\
    noe=noe_dens,chordVec=chordVec,ref_ax='shearCntr')#,th_ply=th_ply)
Example #2
0
# IMPORT NUMPY PACKAGES
# =====================
import numpy as np
import matplotlib.pyplot as plt

# IMPORT AEROCOMBAT CLASSES
# =========================
from AeroComBAT.Structures import MaterialLib
from AeroComBAT.AircraftParts import Wing
from AeroComBAT.FEM import Model

# ADD MATERIALS TO THE MATERIAL LIBRARY
# =====================================
# Create a material library object
matLib = MaterialLib()
# Add an aluminum material (SI)
matLib.addMat(1,'AL','iso',[68.9e9,.33,2700*2],.00025)
# Add an soft material material (SI)
matLib.addMat(2,'Weak_mat','iso',[100,.33,10],.00025)
# Add material property from Hodges 1999 Asymptotically correct anisotropic
# beam theory (SI)
matLib.addMat(3,'AS43501-6*','trans_iso',[142e9,9.8e9,.34,.42,6e9,20000],0.0005)

# CREATE THE WING
# ===============
# Define the chord length of the model
c = .076
# Define the chord length (this will be the hight of the box beam)
ctip = 0.0076+.001
# Since the wing isn't tapered
Example #3
0
from AeroComBAT.AircraftParts import Wing
import numpy as np
from AeroComBAT.FEM import Model

# Define the width of the cross-section
x1 = -0.8990566037735849
x2 = 0.8990566037735849
c = 1.
ctip = c
croot = c
p1 = np.array([0., 0., 0.])
p2 = np.array([0., 0., 20.])
Y_rib = np.linspace(0., 1., 2)
b_s = np.linalg.norm((Y_rib[0], Y_rib[-1]))

matLib = MaterialLib()
matLib.addMat(1, 'AL', 'iso', [71.7e9, .33, 2810], .005)
matLib.addMat(2, 'Weak_mat', 'iso', [100, .33, 10], .005)

n_ply = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
m_i = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

noe_dens = 2
wing1 = Wing(1,p1,p2,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,name='box',\
    noe=noe_dens,meshSize=3,lam_sym=True)
sbeam1 = wing1.wingSects[0].SuperBeams[0]
xsect = sbeam1.xsect

model = Model()

model.addAircraftParts([wing1])
# IMPORTS:

import sys
import os
import cProfile


sys.path.append(os.path.abspath('..'))

from AeroComBAT.Structures import MaterialLib
from AeroComBAT.AircraftParts import Wing
from AeroComBAT.FEM import Model
import numpy as np

# Add the material property
matLib = MaterialLib()
matLib.addMat(1,'AS43501-6','trans_iso',[20.6e6,1.42e6,.3,.34,.87e6,0.057/386.09],0.005)
matLib.addMat(3,'AS43501-6*','trans_iso',[20.6e6,1.42e6,.34,.42,.87e6,0.057/386.09],0.005)
matLib.addMat(2,'AL','iso',[9900000.,.33,2.53881E-4],.005)

# Layup 3 Configuration
n_i_1 = [1,1,1,1,1,1]
m_i_1 = [2,2,2,2,2,2]
th_1 = [-15,-15,-15,-15,-15,-15]
n_i_2 = [1,1,1,1,1,1]
m_i_2 = [2,2,2,2,2,2]
th_2 = [15,-15,15,-15,15,-15]
n_i_3 = [1,1,1,1,1,1]
m_i_3 = [2,2,2,2,2,2]
th_3 = [15,15,15,15,15,15]
n_i_4 = [1,1,1,1,1,1]
Example #5
0
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 10 08:22:12 2016

@author: Ben
"""

from AeroComBAT.Structures import MaterialLib, Laminate, XSect, SuperBeam
from AeroComBAT.Aerodynamics import Airfoil
import numpy as np
from AeroComBAT.FEM import Model

# ADD MATERIALS TO THE MATERIAL LIBRARY
# =====================================
# Create a material library object
matLib = MaterialLib()
matLib.addMat(1, "IM7 Uni Tape", "trans_iso", [22950000.0, 1360000.0, 0.34, 0.3, 620000.0, 0.058], 0.005)
matLib.addMat(2, "31IG Rohacell", "trans_iso", [5220.0, 5220.0, 0.34, 0.3, 1885.0, 0.1], 0.19 / 2)
# Add an aluminum material (SI)
matLib.addMat(3, "A-286", "iso", [29.1e3, 29.1e3 / (11.1e3 * 2) - 1, 0.1], 0.005)


# NACA 2412 BOX BEAM
# ==================
# Now let's mesh a NACA2412 box beam. We will use the last of the supported
# meshing routines for this. This is the less restrictive than the 'rectBox'
# routine, and has different laminate mesh interfaces. This time we will also
# make a slightly more interesting mesh using unbalanced and unsymetric
# laminates. First let's initialize the airfoil shape:
# Initialize a chord length of four inches
c3 = 17.68515
import os
# Append the root to the system path
sys.path.append(os.path.abspath('..'))

# IMPORT AEROCOMBAT CLASSES
# =========================
from AeroComBAT.Structures import MaterialLib, Laminate
from AeroComBAT.Utilities import RotationHelper
from AeroComBAT.tabulate import tabulate
import numpy as np


# MATERIAL lIBRARY VALIDATION
# ===========================
# Generate Empty Material Library
matlib = MaterialLib()
# Add a graphite orthotropic material
matlib.addMat(1, 'Graphite-Polymer Composite ortho', 'ortho', \
                [155.0e9, 12.1e9, 12.1e9, .458, .248, .248, 3.2e9, 4.4e9,\
                4.4e9, 1.7e3], .15e-3)
# Add a graphite transversely isotropic material
matlib.addMat(2, 'Graphite-Polymer Composite', 'trans_iso', \
                [155.0e9, 12.1e9, .458, .248, 4.4e9, 1.7e3], .15e-3)
# Add a glass transversely isotropic material
matlib.addMat(3, 'Glass-Polymer Composite', 'trans_iso', \
                [50.0e9, 15.2e9, .428, .254, 4.7e9, 1.2e3], .15e-3)
# Add a T300 transversely isotropic material
matlib.addMat(4, 'T300/5208', 'trans_iso', \
                [181.0e9, 10.3e9, .458, .28, 7.17e9, 1.8e3], .15e-3)
# Add a aluminum isotropic material
matlib.addMat(5, 'AL-2050', 'iso',[75.8, 0.33, 2.7e3], .15e-3)
Example #7
0
# IMPORTS:

import sys
import os
import cProfile

sys.path.append(os.path.abspath('..'))

from AeroComBAT.Structures import MaterialLib
from AeroComBAT.AircraftParts import Wing
from AeroComBAT.FEM import Model
import numpy as np

# Add the material property
matLib = MaterialLib()
matLib.addMat(1, 'AS43501-6', 'trans_iso',
              [20.6e6, 1.42e6, .3, .34, .87e6, 0.057 / 386.09], 0.005)
matLib.addMat(3, 'AS43501-6*', 'trans_iso',
              [20.6e6, 1.42e6, .34, .42, .87e6, 0.057 / 386.09], 0.005)
matLib.addMat(2, 'AL', 'iso', [9900000., .33, 2.53881E-4], .005)

# Layup 3 Configuration
n_i_1 = [1, 1, 1, 1, 1, 1]
m_i_1 = [2, 2, 2, 2, 2, 2]
th_1 = [-15, -15, -15, -15, -15, -15]
n_i_2 = [1, 1, 1, 1, 1, 1]
m_i_2 = [2, 2, 2, 2, 2, 2]
th_2 = [15, -15, 15, -15, 15, -15]
n_i_3 = [1, 1, 1, 1, 1, 1]
m_i_3 = [2, 2, 2, 2, 2, 2]
Example #8
0
# IMPORT AEROCOMBAT CLASSES
# =========================
from AeroComBAT.Structures import MaterialLib, Laminate, XSect, SuperBeam
from AeroComBAT.Aerodynamics import Airfoil
from AeroComBAT.FEM import Model

# IMPORT NUMPY MODULES
# ====================
import numpy as np
import mayavi.mlab as mlab

# ADD MATERIALS TO THE MATERIAL LIBRARY
# =====================================
# Create a material library object
matLib = MaterialLib()
# Add material property from Hodges 1999 Asymptotically correct anisotropic
# beam theory (Imperial)
matLib.addMat(1,'AS43501-6','trans_iso',[20.6e6,1.42e6,.34,.3,.87e6,.1],.005)
# Add material property from Hodges 1999 Asymptotically correct anisotropic
# beam theory (Imperial)
matLib.addMat(2,'AS43501-6*','trans_iso',[20.6e6,1.42e6,.34,.42,.87e6,.1],.005)
# Add an aluminum material (SI)
matLib.addMat(3,'AL','iso',[71.7e9,.33,2810],.005)

# CREATE A WRAPPED RECTANGULAR BOX-BEAM CROSS-SECTION
# ===================================================
# Layup 1 Box beam (0.5 x 0.923 in^2 box with laminate schedule [0]_6)

# Before we make a beam, we must first make the cross-section of that beam. We
# are going to start with a cross-section we used in the third tutorial.
import os

sys.path.append(os.path.abspath('..'))

# IMPORT AEROCOMBAT CLASSES
# =========================
from AeroComBAT.Structures import Node, MaterialLib, CQUADX
from AeroComBAT.Aerodynamics import Airfoil

# IMPORT NUMPY MODULES
# ====================
import numpy as np
import matplotlib.pyplot as plt

# Material Info
mat_lib = MaterialLib()
# Add an aluminum isotropic material
mat_lib.addMat(1, 'AL-2050', 'iso',[75.8, 0.33, 2.7e3], .15e-3)
                

# CQUADX 2D ELEMENT CREATION
# ==========================
# Create a node 1 object
n1 = Node(1,[0.,0.,0.])
# Create a node 2 object
n2 = Node(2,[2.,0.,0.])
# Create a node 3 object
n3 = Node(3,[2.,3.,0.])
# Create a node 4 object
n4 = Node(4,[0.,5.,0.])
# Create a CQUADX element
import sys
import os
# Append the root to the system path
sys.path.append(os.path.abspath('..'))

# IMPORT AEROCOMBAT CLASSES
# =========================
from AeroComBAT.Structures import MaterialLib, Laminate
from AeroComBAT.Utilities import RotationHelper
from AeroComBAT.tabulate import tabulate
import numpy as np

# MATERIAL lIBRARY VALIDATION
# ===========================
# Generate Empty Material Library
matlib = MaterialLib()
# Add a graphite orthotropic material
matlib.addMat(1, 'Graphite-Polymer Composite ortho', 'ortho', \
                [155.0e9, 12.1e9, 12.1e9, .458, .248, .248, 3.2e9, 4.4e9,\
                4.4e9, 1.7e3], .15e-3)
# Add a graphite transversely isotropic material
matlib.addMat(2, 'Graphite-Polymer Composite', 'trans_iso', \
                [155.0e9, 12.1e9, .458, .248, 4.4e9, 1.7e3], .15e-3)
# Add a glass transversely isotropic material
matlib.addMat(3, 'Glass-Polymer Composite', 'trans_iso', \
                [50.0e9, 15.2e9, .428, .254, 4.7e9, 1.2e3], .15e-3)
# Add a T300 transversely isotropic material
matlib.addMat(4, 'T300/5208', 'trans_iso', \
                [181.0e9, 10.3e9, .458, .28, 7.17e9, 1.8e3], .15e-3)
# Add a aluminum isotropic material
matlib.addMat(5, 'AL-2050', 'iso', [75.8, 0.33, 2.7e3], .15e-3)
Example #11
0
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 10 08:22:12 2016

@author: Ben
"""

from AeroComBAT.Structures import MaterialLib, Laminate, XSect, SuperBeam
from AeroComBAT.Aerodynamics import Airfoil
import numpy as np
from AeroComBAT.FEM import Model

# ADD MATERIALS TO THE MATERIAL LIBRARY
# =====================================
# Create a material library object
matLib = MaterialLib()
matLib.addMat(1, 'IM7 Uni Tape', 'trans_iso',
              [22950000., 1360000., .34, .3, 620000., 0.058], .005)
matLib.addMat(2, '31IG Rohacell', 'trans_iso',
              [5220., 5220., .34, .3, 1885., .1], .19 / 2)
# Add an aluminum material (SI)
matLib.addMat(3, 'A-286', 'iso', [29.1e3, 29.1e3 / (11.1e3 * 2) - 1, 0.1],
              .005)

# NACA 2412 BOX BEAM
# ==================
# Now let's mesh a NACA2412 box beam. We will use the last of the supported
# meshing routines for this. This is the less restrictive than the 'rectBox'
# routine, and has different laminate mesh interfaces. This time we will also
# make a slightly more interesting mesh using unbalanced and unsymetric
# laminates. First let's initialize the airfoil shape:
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 10 08:22:12 2016

@author: Ben
"""

from AeroComBAT.Structures import MaterialLib, Laminate, XSect
from AeroComBAT.Aerodynamics import Airfoil
import numpy as np

# ADD MATERIALS TO THE MATERIAL LIBRARY
# =====================================
# Create a material library object
matLib = MaterialLib()
matLib.addMat(1,'A-286','iso',[29.1e3,29.1e3/(11.1e3*2)-1,0.1],.005)



# NACA 2412 BOX BEAM
# ==================
# Now let's mesh a NACA2412 box beam. We will use the last of the supported
# meshing routines for this. This is the less restrictive than the 'rectBox'
# routine, and has different laminate mesh interfaces. This time we will also
# make a slightly more interesting mesh using unbalanced and unsymetric
# laminates. First let's initialize the airfoil shape:
# Initialize a chord length of four inches
# Initialize the non-dimesional locations for the airfoil points to be
# generated:
a = 0.91
Example #13
0
import os

sys.path.append(os.path.abspath('..'))

# IMPORT AEROCOMBAT CLASSES
# =========================
from AeroComBAT.Structures import Node, MaterialLib, CQUADX
from AeroComBAT.Aerodynamics import Airfoil

# IMPORT NUMPY MODULES
# ====================
import numpy as np
import matplotlib.pyplot as plt

# Material Info
mat_lib = MaterialLib()
# Add an aluminum isotropic material
mat_lib.addMat(1, 'AL-2050', 'iso', [75.8, 0.33, 2.7e3], .15e-3)

# CQUADX 2D ELEMENT CREATION
# ==========================
# Create a node 1 object
n1 = Node(1, [0., 0., 0.])
# Create a node 2 object
n2 = Node(2, [2., 0., 0.])
# Create a node 3 object
n3 = Node(3, [2., 3., 0.])
# Create a node 4 object
n4 = Node(4, [0., 5., 0.])
# Create a CQUADX element
elem1 = CQUADX(1, [n1, n2, n3, n4], 1, mat_lib)
from AeroComBAT.AircraftParts import Wing
import numpy as np
from AeroComBAT.FEM import Model

# Define the width of the cross-section
x1 = -0.8990566037735849
x2 = 0.8990566037735849
c = 1.
ctip = c
croot = c
p1 = np.array([0.,0.,0.])
p2 = np.array([0.,0.,20.])
Y_rib = np.linspace(0.,1.,2)
b_s = np.linalg.norm((Y_rib[0],Y_rib[-1]))

matLib = MaterialLib()
matLib.addMat(1,'AL','iso',[71.7e9,.33,2810],.005)
matLib.addMat(2,'Weak_mat','iso',[100,.33,10],.005)

n_ply = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
m_i = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

noe_dens = 2
wing1 = Wing(1,p1,p2,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,name='box',\
    noe=noe_dens,meshSize=3,lam_sym=True)
sbeam1 = wing1.wingSects[0].SuperBeams[0]
xsect = sbeam1.xsect

model  = Model()

model.addAircraftParts([wing1])
Example #15
0
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 10 08:22:12 2016

@author: Ben
"""

from AeroComBAT.Structures import MaterialLib, Laminate, XSect
from AeroComBAT.Aerodynamics import Airfoil
import numpy as np

# ADD MATERIALS TO THE MATERIAL LIBRARY
# =====================================
# Create a material library object
matLib = MaterialLib()
matLib.addMat(1, 'A-286', 'iso', [29.1e3, 29.1e3 / (11.1e3 * 2) - 1, 0.1],
              .005)

# NACA 2412 BOX BEAM
# ==================
# Now let's mesh a NACA2412 box beam. We will use the last of the supported
# meshing routines for this. This is the less restrictive than the 'rectBox'
# routine, and has different laminate mesh interfaces. This time we will also
# make a slightly more interesting mesh using unbalanced and unsymetric
# laminates. First let's initialize the airfoil shape:
# Initialize a chord length of four inches
# Initialize the non-dimesional locations for the airfoil points to be
# generated:
a = 0.91
b = 0.75