예제 #1
0
HE300= EC3_materials.HEShape(steel=S235JR,name='HE_300_A')
c3_1=HE300.getClassInternalPartInCompression(S235JR)
c3_2=HE300.getClassInternalPartInBending(S235JR)
c3_3=HE300.getClassOutstandPartInCompression(S235JR)


SHS175= EC3_materials.SHSShape(steel=S235JR,name='SHS175x175x8')
c4_1=SHS175.getClassInternalPartInCompression(S235JR)
c4_2=SHS175.getClassInternalPartInBending(S235JR)


RHS250= EC3_materials.RHSShape(steel=S235JR,name='RHS250x150x16')
c5_1=RHS250.getClassInternalPartInCompression(S235JR)
c5_2=RHS250.getClassInternalPartInBending(S235JR)

UPN400=EC3_materials.UPNShape(steel=S235JR,name='UPN_400')
c6_1=UPN400.getClassInternalPartInCompression(S235JR)
c6_2=UPN400.getClassInternalPartInBending(S235JR)
c6_3=UPN400.getClassOutstandPartInCompression(S235JR)

ratioLst=[c1_1-3,c1_2-1,c1_3-1,
          c2_1-1,c2_2-1,c2_3-1,
          c3_1-1,c3_2-1,c3_3-1,
          c4_1-1,c4_2-1,
          c5_1-1,c5_2-1,
          c6_1-1,c6_2-1,c6_3-1]

import os
from misc_utils import log_messages as lmsg
fname= os.path.basename(__file__)
if (abs(sum(ratioLst)/len(ratioLst))<1e-5):
예제 #2
0
    ((0,0,0),(0,0,10)),
    ((4,0,0),(4,0,10))],'columns')
beams=gridGeom.genLinMultiXYZRegion([
    ((0,0,5),(4,0,5)),
    ((0,0,10),(4,0,10))],'beams')
diagonals=gridGeom.genSetLinFromMultiLstXYZPnt([
    ((0,0,5),(4,0,0)),
    ((0,0,5),(4,0,10))],'diagonals')

#Materials
steel=EC3_materials.S235JR
steel.gammaM=1.0
steel_prop=tm.MaterialData(name='steel',E=steel.E,nu=steel.nu,rho=steel.rho)
column_mat=EC3_materials.HEShape(steel,'HE_140_B')
column_mat.defElasticShearSection3d(prep)
beam_mat=EC3_materials.UPNShape(steel,'UPN_80')
beam_mat.defElasticShearSection3d(prep)
diag_mat=EC3_materials.SHSShape(steel,'SHS50x50x2_5')
xcDiagSteel=steel.defElasticMaterial(prep)

#                         ***FE model - MESH***
#Meshing
#Steel elements: local Z-axis corresponds to weak axis of the steel shape

columns_mesh=fem.LinSetToMesh(columns,column_mat,0.25,xc.Vector([1,0,0]))
beams_mesh=fem.LinSetToMesh(beams,beam_mat,0.25,xc.Vector([0,0,1]))
fem.multi_mesh(prep,[columns_mesh,beams_mesh],sectGeom='Y')  #mesh these sets and creates property 'sectionGeometry' for each element)

diagonals_mesh=fem.LinSetToMesh(diagonals,xcDiagSteel,100,xc.Vector([1,0,0]),'Truss',3,None)
diagonals_mesh.generateMesh(prep)
for e in diagonals.getElements: