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):
((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: