OpenSeesPyAssistant 1.1
OpenSeesPy for everyone
SteelIShape Class Reference

Class that stores funcions, geometric and mechanical properties of a steel double symmetric I-shape profile. More...

Inheritance diagram for SteelIShape:
Section

Public Member Functions

def __init__ (self, str Type, d, bf, tf, tw, L, r, E, Fy, Fy_web=-1, name_tag="Not Defined")
 The conctructor of the class. More...
 
def Compute_iy (self)
 Compute the gyration radius with respect to the strong axis. More...
 
def Compute_iz (self)
 Compute the gyration radius with respect to the weak axis. More...
 
def ComputeA (self)
 Compute the area of a double symmetric I-profile section with fillets. More...
 
def ComputeIy (self)
 Compute the moment of inertia of a double symmetric I-profile section, with respect to its strong axis with fillets. More...
 
def ComputeIz (self)
 Compute the moment of inertia of a double symmetric I-profile section, with respect to its weak axis with fillets. More...
 
def ComputeWply (self)
 Compute the plastic modulus of a double symmetric I-profile section, with respect to its strong axis with fillets. More...
 
def ComputeWplz (self)
 Compute the plastic modulus of a double symmetric I-profile section, with respect to its weak axis with fillets. More...
 
def ReInit (self)
 Implementation of the homonym abstract method. More...
 
def ShowInfo (self)
 Implementation of the homonym abstract method. More...
 
def UpdateStoredData (self)
 Implementation of the homonym abstract method. More...
 

Public Attributes

 A
 
 bf
 
 d
 
 data
 
 E
 
 Fy
 
 Fy_web
 
 h_1
 
 Iy
 
 iy
 
 Iy_mod
 
 Iz
 
 iz
 
 L
 
 My
 
 name_tag
 
 Npl
 
 r
 
 tf
 
 tw
 
 Type
 
 Wply
 
 Wplz
 

Static Public Attributes

float n = 10.0
 

Detailed Description

Class that stores funcions, geometric and mechanical properties of a steel double symmetric I-shape profile.

The parameter 'n' is used as global throughout the SteelIShape sections to optimise the program (given the fact that is constant everytime).

Parameters
SectionParent abstract class.

Definition at line 22 of file Section.py.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
str  Type,
  d,
  bf,
  tf,
  tw,
  L,
  r,
  E,
  Fy,
  Fy_web = -1,
  name_tag = "Not Defined" 
)

The conctructor of the class.

Parameters
Type(str): Type of the section. It can be 'Col' for column or 'Beam' for beams.
d(float): Depth of the section.
bf(float): Flange's width of the section
tf(float): Flange's thickness of the section
tw(float): Web's thickness of the section
L(float): Effective length of the element associated with this section. If the panel zone is present, exclude its dimension.
r(float): Radius of the weld fillets of the section.
E(float): Young modulus of the section.
Fy(float): Yield strength of the flange of the section. Used as the yield strength of the entire section.
Fy_web(float, optional): Yield strength of the web of the section. Used for panel zone associated to this section. Defaults to -1, e.g. computed in init() as equal to Fy.
name_tag(str, optional): Name TAG of the section. Defaults to "Not Defined".
Exceptions
WrongArgumentType needs to be 'Col' or 'Beam'.
NegativeValued needs to be positive.
NegativeValuebf needs to be positive.
NegativeValuetf needs to be positive.
NegativeValuetw needs to be positive.
NegativeValueL needs to be positive.
NegativeValuer needs to be positive.
NegativeValueE needs to be positive.
NegativeValueFy needs to be positive.
NegativeValueFy_web needs to be positive if different from -1.
InconsistentGeometrytw should be smaller than bf.
InconsistentGeometrytf needs to be smaller than half of d
InconsistentGeometryr should be less than half bf and d

Definition at line 32 of file Section.py.

32 def __init__(self, Type: str, d, bf, tf, tw, L, r, E, Fy, Fy_web = -1, name_tag = "Not Defined"):
33 """
34 The conctructor of the class.
35
36 @param Type (str): Type of the section. It can be 'Col' for column or 'Beam' for beams.
37 @param d (float): Depth of the section.
38 @param bf (float): Flange's width of the section
39 @param tf (float): Flange's thickness of the section
40 @param tw (float): Web's thickness of the section
41 @param L (float): Effective length of the element associated with this section.
42 If the panel zone is present, exclude its dimension.
43 @param r (float): Radius of the weld fillets of the section.
44 @param E (float): Young modulus of the section.
45 @param Fy (float): Yield strength of the flange of the section. Used as the yield strength of the entire section.
46 @param Fy_web (float, optional): Yield strength of the web of the section. Used for panel zone associated to this section.
47 Defaults to -1, e.g. computed in __init__() as equal to Fy.
48 @param name_tag (str, optional): Name TAG of the section. Defaults to "Not Defined".
49
50 @exception WrongArgument: Type needs to be 'Col' or 'Beam'.
51 @exception NegativeValue: d needs to be positive.
52 @exception NegativeValue: bf needs to be positive.
53 @exception NegativeValue: tf needs to be positive.
54 @exception NegativeValue: tw needs to be positive.
55 @exception NegativeValue: L needs to be positive.
56 @exception NegativeValue: r needs to be positive.
57 @exception NegativeValue: E needs to be positive.
58 @exception NegativeValue: Fy needs to be positive.
59 @exception NegativeValue: Fy_web needs to be positive if different from -1.
60 @exception InconsistentGeometry: tw should be smaller than bf.
61 @exception InconsistentGeometry: tf needs to be smaller than half of d
62 @exception InconsistentGeometry: r should be less than half bf and d
63 """
64 # Check
65 if Type != "Beam" and Type != "Col": raise WrongArgument()
66 if d < 0: raise NegativeValue()
67 if bf < 0: raise NegativeValue()
68 if tf < 0: raise NegativeValue()
69 if tw < 0: raise NegativeValue()
70 if L < 0: raise NegativeValue()
71 if r < 0: raise NegativeValue()
72 if E < 0: raise NegativeValue()
73 if Fy < 0: raise NegativeValue()
74 if Fy_web != -1 and Fy_web < 0: raise NegativeValue()
75 if tw > bf: raise InconsistentGeometry()
76 if tf > d/2: raise InconsistentGeometry()
77 if r > bf/2 or r > d/2: raise InconsistentGeometry()
78
79 # Arguments
80 self.Type = Type
81 self.d = d
82 self.bf = bf
83 self.tf = tf
84 self.tw = tw
85 self.L = L
86 self.r = r
87 self.E = E
88 self.Fy = Fy
89 self.Fy_web = Fy if Fy_web == -1 else Fy_web
90 self.name_tag = name_tag
91
92 # Initialized the parameters that are dependent from others
93 self.ReInit()
94

Member Function Documentation

◆ Compute_iy()

def Compute_iy (   self)

Compute the gyration radius with respect to the strong axis.

Returns
float: The gyration radius with respect to the strong axis.

Definition at line 241 of file Section.py.

241 def Compute_iy(self):
242 """
243 Compute the gyration radius with respect to the strong axis.
244
245 @returns float: The gyration radius with respect to the strong axis.
246 """
247 # Iy : The second moment of inertia with respect to thte strong axis
248 # A : The area
249
250 return math.sqrt(self.Iy/self.A)
251

◆ Compute_iz()

def Compute_iz (   self)

Compute the gyration radius with respect to the weak axis.

Returns
float: The gyration radius with respect to the weak axis.

Definition at line 252 of file Section.py.

252 def Compute_iz(self):
253 """
254 Compute the gyration radius with respect to the weak axis.
255
256 @returns float: The gyration radius with respect to the weak axis.
257 """
258 # Iz : The second moment of inertia with respect to thte weak axis
259 # A : The area
260
261 return math.sqrt(self.Iz/self.A)
262
263

◆ ComputeA()

def ComputeA (   self)

Compute the area of a double symmetric I-profile section with fillets.

Returns
float: Area of the I shape section (with fillets included)

Definition at line 170 of file Section.py.

170 def ComputeA(self):
171 """
172 Compute the area of a double symmetric I-profile section with fillets.
173
174 @returns float: Area of the I shape section (with fillets included)
175 """
176 # d : The depth
177 # bf : The flange's width
178 # tf : The flange's thickness
179 # tw : The web's thickness
180 # r : The weld fillet radius
181
182 # without fillets bf*tf*2 + tw*(d-2*tf)
183 return 2.0*self.bf*self.tf+self.tw*(self.d-2.0*self.tf)+0.8584*self.r**2
184

◆ ComputeIy()

def ComputeIy (   self)

Compute the moment of inertia of a double symmetric I-profile section, with respect to its strong axis with fillets.

Returns
float: The moment of inertia with respect to the strong axis.

Definition at line 185 of file Section.py.

185 def ComputeIy(self):
186 """
187 Compute the moment of inertia of a double symmetric I-profile section, with respect to its strong axis with fillets.
188
189 @returns float: The moment of inertia with respect to the strong axis.
190 """
191 # d : The depth
192 # bf : The flange's width
193 # tf : The flange's thickness
194 # tw : The web's thickness
195 # r : The weld fillet radius
196
197 # without fillets: bf*tf/2*(d-tf)**2 + bf*tf**3/6 + (d-tf*2)**3*tf/12
198 return (self.bf*self.d**3.0-(self.bf-self.tw)*(self.d-2.0*self.tf)**3)/12.0+0.8584*self.r**2*(0.5*self.d-self.tf-0.4467*self.r/2.0)**2
199

◆ ComputeIz()

def ComputeIz (   self)

Compute the moment of inertia of a double symmetric I-profile section, with respect to its weak axis with fillets.

Returns
float: The moment of inertia with respect to the weak axis.

Definition at line 200 of file Section.py.

200 def ComputeIz(self):
201 """
202 Compute the moment of inertia of a double symmetric I-profile section, with respect to its weak axis with fillets.
203
204 @returns float: The moment of inertia with respect to the weak axis.
205 """
206 # d : The depth
207 # bf : The flange's width
208 # tf : The flange's thickness
209 # tw : The web's thickness
210 # r : The weld fillet radius
211
212 return (self.tf*self.bf**3)/6.0+((self.d-2.0*self.tf)*self.tw**3)/12.0+0.8584*self.r**2*(0.5*self.tw+0.2234*self.r)**2
213

◆ ComputeWply()

def ComputeWply (   self)

Compute the plastic modulus of a double symmetric I-profile section, with respect to its strong axis with fillets.

Returns
float: The plastic modulus with respect to the strong axis.

Definition at line 214 of file Section.py.

214 def ComputeWply(self):
215 """
216 Compute the plastic modulus of a double symmetric I-profile section, with respect to its strong axis with fillets.
217
218 @returns float: The plastic modulus with respect to the strong axis.
219 """
220 # d : The depth
221 # bf : The flange's width
222 # tf : The flange's thickness
223 # tw : The web's thickness
224 # r : The weld fillet radius
225
226 return self.bf*self.tf*(self.d-self.tf)+(self.d-2.0*self.tf)**2.0*(self.tw/4.0)+0.4292*self.r**2*(self.d-2.0*self.tf-0.4467*self.r)
227

◆ ComputeWplz()

def ComputeWplz (   self)

Compute the plastic modulus of a double symmetric I-profile section, with respect to its weak axis with fillets.

Returns
float: The plastic modulus with respect to the weak axis.

Definition at line 228 of file Section.py.

228 def ComputeWplz(self):
229 """
230 Compute the plastic modulus of a double symmetric I-profile section, with respect to its weak axis with fillets.
231
232 @returns float: The plastic modulus with respect to the weak axis.
233 """
234 # d : The depth
235 # bf : The flange's width
236 # tf : The flange's thickness
237 # tw : The web's thickness
238 # r : The weld fillet radius
239 return (self.tf*self.bf**2)/2+(self.d-2.0*self.tf)*(self.tw**2/4.0)+0.4292*self.r**2*(self.tw+0.4467*self.r)
240

◆ ReInit()

def ReInit (   self)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Definition at line 95 of file Section.py.

95 def ReInit(self):
96 """
97 Implementation of the homonym abstract method.
98 See parent class DataManagement for detailed information.
99 """
100 # Member
101 self.h_1 = self.d - 2.0*self.r -2.0*self.tf
102 self.A = self.ComputeA()
103 self.Npl = self.A*self.Fy
104 self.Iy = self.ComputeIy()
105 self.Iz = self.ComputeIz()
106 self.Wply = self.ComputeWply()
107 self.Wplz = self.ComputeWplz()
108 self.My = self.Fy*self.Wply
109 self.Iy_mod = self.Iy*(n + 1.0)/n
110 self.iz = self.Compute_iz()
111 self.iy = self.Compute_iy()
112
113 # Data storage for loading/saving
114 self.UpdateStoredData()
115
Module with the parent abstract class DataManagement.

◆ ShowInfo()

def ShowInfo (   self)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Definition at line 145 of file Section.py.

145 def ShowInfo(self):
146 """
147 Implementation of the homonym abstract method.
148 See parent class DataManagement for detailed information.
149 """
150 print("")
151 print("Requested info for steel I shape section of type = {} and name tag = {}".format(self.Type, self.name_tag))
152 print("d = {} mm".format(self.d/mm_unit))
153 print("Fy = {} MPa".format(self.Fy/MPa_unit))
154 print("Fy web = {} MPa".format(self.Fy_web/MPa_unit))
155 print("E = {} GPa".format(self.E/GPa_unit))
156 print("h_1 = {} mm".format(self.h_1/mm_unit))
157 print("A = {} mm2".format(self.A/mm2_unit))
158 print("Iy = {} mm4".format(self.Iy/mm4_unit))
159 print("Iz = {} mm4".format(self.Iz/mm4_unit))
160 print("Wply = {} mm3".format(self.Wply/mm3_unit))
161 print("Wplz = {} mm3".format(self.Wplz/mm3_unit))
162 print("Iy_mod = {} mm4".format(self.Iy_mod/mm4_unit))
163 print("iy = {} mm".format(self.iy/mm_unit))
164 print("iz = {} mm".format(self.iz/mm_unit))
165 print("My = {} kNm".format(self.My/kNm_unit))
166 print("Npl = {} kN".format(self.Npl/kN_unit))
167 print("")
168
169

◆ UpdateStoredData()

def UpdateStoredData (   self)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Definition at line 116 of file Section.py.

116 def UpdateStoredData(self):
117 """
118 Implementation of the homonym abstract method.
119 See parent class DataManagement for detailed information.
120 """
121 self.data = [["INFO_TYPE", "SteelIShape"], # Tag for differentiating different data
122 ["name_tag", self.name_tag],
123 ["Type", self.Type],
124 ["d", self.d],
125 ["bf", self.bf],
126 ["tf", self.tf],
127 ["tw", self.tw],
128 ["L", self.L],
129 ["r", self.r],
130 ["h_1", self.h_1],
131 ["E", self.E],
132 ["Fy", self.Fy],
133 ["Fy_web", self.Fy_web],
134 ["A", self.A],
135 ["Iy", self.Iy],
136 ["Iz", self.Iz],
137 ["Wply", self.Wply],
138 ["Wplz", self.Wplz],
139 ["Iy_mod", self.Iy_mod],
140 ["iy", self.iy],
141 ["iz", self.iz],
142 ["Npl", self.Npl],
143 ["My", self.My]]
144

Member Data Documentation

◆ A

A

Definition at line 102 of file Section.py.

◆ bf

bf

Definition at line 82 of file Section.py.

◆ d

d

Definition at line 81 of file Section.py.

◆ data

data

Definition at line 121 of file Section.py.

◆ E

E

Definition at line 87 of file Section.py.

◆ Fy

Fy

Definition at line 88 of file Section.py.

◆ Fy_web

Fy_web

Definition at line 89 of file Section.py.

◆ h_1

h_1

Definition at line 101 of file Section.py.

◆ Iy

Iy

Definition at line 104 of file Section.py.

◆ iy

iy

Definition at line 111 of file Section.py.

◆ Iy_mod

Iy_mod

Definition at line 109 of file Section.py.

◆ Iz

Iz

Definition at line 105 of file Section.py.

◆ iz

iz

Definition at line 110 of file Section.py.

◆ L

L

Definition at line 85 of file Section.py.

◆ My

My

Definition at line 108 of file Section.py.

◆ n

float n = 10.0
static

Definition at line 30 of file Section.py.

◆ name_tag

name_tag

Definition at line 90 of file Section.py.

◆ Npl

Npl

Definition at line 103 of file Section.py.

◆ r

r

Definition at line 86 of file Section.py.

◆ tf

tf

Definition at line 83 of file Section.py.

◆ tw

tw

Definition at line 84 of file Section.py.

◆ Type

Type

Definition at line 80 of file Section.py.

◆ Wply

Wply

Definition at line 106 of file Section.py.

◆ Wplz

Wplz

Definition at line 107 of file Section.py.


The documentation for this class was generated from the following file: