section=geomSectBeamY, material=concrProp) beamY_mat.setupElasticShear3DSection(preprocessor=prep) columnZconcr_mat = tm.BeamMaterialData(name='columnZconcr_mat', section=geomSectColumnZ, material=concrProp) columnZconcr_mat.setupElasticShear3DSection(preprocessor=prep) # Steel material-section appropiate for 3D beam analysis, including shear # deformations. # Attributes: # steel: steel material ( # name: name of the standard steel profile. Types: IPEShape, HEShape, # UPNShape, AUShape, CHSShape # (defined in materials.sections.structural_shapes.arcelor_metric_shapes) columnZsteel_mat = EC3_materials.HEShape(steel=S235JR, name='HE_200_A') columnZsteel_mat.defElasticShearSection3d(prep) beamXsteel_mat = EC3_materials.IPEShape(steel=S235JR, name='IPE_A_300') beamXsteel_mat.defElasticShearSection3d(prep) # ***FE model - MESH*** # IMPORTANT: it's convenient to generate the mesh of surfaces before meshing # the lines, otherwise, sets of shells can take also beam elements touched by # them beamXconcr_mesh = fem.LinSetToMesh(linSet=beamXconcr, matSect=beamXconcr_mat, elemSize=eSize, vDirLAxZ=xc.Vector([0, 1, 0]), elemType='ElasticBeam3d', dimElemSpace=3,
sctClass = 1 #section class Nd = 7e5 #axial force [N] IPE300 = EC3_materials.IPEShape(steel=S235JR, name='IPE_A_300') alpha_IPE300, beta_IPE300 = IPE300.getBiaxBendCoeffs(Nd, IPE300.getNcRd(sctClass)) alpha_IPE300_comp = 2 beta_IPE300_comp = 5 * Nd / 1093455.0 IPN300 = EC3_materials.IPNShape(steel=S235JR, name='IPN_300') alpha_IPN300, beta_IPN300 = IPN300.getBiaxBendCoeffs(Nd, IPN300.getNcRd(sctClass)) alpha_IPN300_comp = 2 beta_IPN300_comp = 5 * Nd / 1621500.0 HE300 = EC3_materials.HEShape(steel=S235JR, name='HE_300_A') alpha_HE300, beta_HE300 = HE300.getBiaxBendCoeffs(Nd, HE300.getNcRd(sctClass)) alpha_HE300_comp = 2 beta_HE300_comp = 5 * Nd / 2643750.0 SHS175 = EC3_materials.SHSShape(steel=S235JR, name='SHS175x175x8') alpha_SHS175, beta_SHS175 = SHS175.getBiaxBendCoeffs(Nd, SHS175.getNcRd(sctClass)) alpha_SHS175_comp = 1.66 / (1 - 1.13 * (Nd / 1246205.0)**2) beta_SHS175_comp = 1.66 / (1 - 1.13 * (Nd / 1246205.0)**2) RHS250 = EC3_materials.RHSShape(steel=S235JR, name='RHS250x150x16') alpha_RHS250, beta_RHS250 = RHS250.getBiaxBendCoeffs(Nd / 2., RHS250.getNcRd(sctClass)) alpha_RHS250_comp = 1.66 / (1 - 1.13 * (0.5 * Nd / 2702500.0)**2) beta_RHS250_comp = 1.66 / (1 - 1.13 * (0.5 * Nd / 2702500.0)**2)
#Lines generation columns=gridGeom.genLinMultiXYZRegion([ ((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)